配列操作と符号誤り率測定プログラムについて
6 views (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
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 を別の意味合いを持つ変数として使いますと、予期せぬ結果になる可能性がありますので、ご注意ください。
More Answers (0)
See Also
Categories
Find more on Transmitters and Receivers in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!