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

6 visualizaciones (últimos 30 días)
N/A
N/A el 12 de Nov. de 2019
Comentada: N/A el 15 de Nov. de 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

Respuesta aceptada

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

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Productos


Versión

R2016b

Community Treasure Hunt

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

Start Hunting!