配列操作と符号誤り率測定プログラムについて
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Naoya
le 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 を別の意味合いを持つ変数として使いますと、予期せぬ結果になる可能性がありますので、ご注意ください。
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!