配列操作と符号誤り率測定プログラムについて

2 views (last 30 days)
N/A
N/A on 12 Nov 2019
Commented: N/A on 15 Nov 2019
Transmitter2とReceiverの各行を比較し符号誤り率を測定するプログラムを作成したいです。そこで、下記のようなプログラムを作成してみましたが、「%(Transmitterの配列をiだけずらしたものをTranmitter2に代入する)」というプログラムを書くことができませんでした。どのようにプログラムを書けばいいですか?ご回答お待ちしております。
※「%(Transmitterの配列をiだけずらしたものをTranmitter2に代入する)」プログラムについて
Transmitterの配列は、「Transmitter(1):1、Transmitter(2):1、Transmitter(3):1、Transmiter(4):0、Transmitter(5):0、Transmitter(6):0、Transmitter(7):1、Transmitter(8):0、Transmiter(9):0、Transmitter(10):1、・・・・・」となっています。
i=1の時には、「Transmitter2(1):1、Transmitter2(2):1、Transmitter2(3):0、Transmiter2(4):0、Transmitter2(5):0、Transmitter2(6):1、Transmitter2(7):0、Transmitter2(8):0、Transmiter2(9):1、Transmitter2(10):1、・・・・・」
i=2の時には、「Transmitter2(1):1、Transmitter2(2):0、Transmitter2(3):0、Transmiter2(4):0、Transmitter2(5):1、Transmitter2(6):0、Transmitter2(7):0、Transmitter2(8):1、Transmiter2(9):0、Transmitter2(10):0、・・・・・」にしたいです。
MinBER = 10;
for i=1:1:128
%(Transmitterの配列をiだけずらしたものをTranmitter2に代入する)
nt = numel(Transmitter2);
nr = numel(Receiver);
if nr<nt
Transmitter2(nr,:) = [];
l = nr;
end
if nr>nt
Receiver(nt,:) = [];
l = nt;
end
ber = biterr(Transmitter2, Receiver);
ber1 = ber/l;
if ber1 < MinBER
MinBER = ber1;
end
if ber1 > MinBER
MinBER = MinBER;
end
end

Accepted Answer

Naoya
Naoya on 15 Nov 2019
Transmitter を i 個分だけずらすということで、例えば以下の様な操作は如何でしょうか?
% Transmitter と同じサイズの Transmitter2 ベクトルを0 で初期化
Transmitter2 = zeros( size(Transmitter));
% Transmitter2 に i個ずらした Transmitter1 に割り当てる
Transmitter2(1:end-i) = Transmitter(i:end);
※ 変数 i は、MATLAB では、通常、複素数の虚数として表されます。
複素数を扱うベースバンドでのシミュレーションを行う場合、 i を別の意味合いを持つ変数として使いますと、予期せぬ結果になる可能性がありますので、ご注意ください。
  1 Comment
N/A
N/A on 15 Nov 2019
ご回答頂きありがとうございます。配列をずらすことが出来ました。

Sign in to comment.

More Answers (0)

Products


Release

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!