16-QAMの変調と復調を行い、理論上とシミュレートされたBERを比較しようとしています。16-QAM変調と復調 - グラフの1行が欠けています
私はではありません。グラフでsimulation
を取得しています。
私のコードで何が間違っているのか理解できません。誰か助けてくれますか?
M=16;
SNR_db = [0 2 4 6 8 10 12];
x = randi([0,M-1],1000,1);
hmod = modem.qammod(16);
hdemod = modem.qamdemod(hmod,'SymbolOrder', 'Gray');
tx = zeros(1,1000);
for n=1:1000
tx(n) = modulate(hmod, x(n));
end
rx = zeros(1,1000);
rx_demod = zeros(1,1000);
for j = 1:7
err = zeros(1,7);
err_t = zeros(1,7);
for n = 1:1000
rx(n) = awgn(tx(n), SNR_db(j));
rx_demod(n) = demodulate(hdemod, rx(n));
if(rx_demod(n)~=x(n))
err(j) = err(j)+1;
end
end
% err_t = err_t + err;
end
theoryBer = 3/2*erfc(sqrt(0.1*(10.^(SNR_db/10))));
figure
semilogy(SNR_db,theoryBer,'-',SNR_db, err, '^-');
grid on
legend('theory', 'simulation');
xlabel('Es/No, dB')
ylabel('Symbol Error Rate')
title('Symbol error probability curve for 16-QAM modulation')
申し訳ありませんが、あなたはあなたの問題をより具体的なことができますか?私はあなたのコードを実行することができ、そこに数字があります。私は実際に何か問題を見ることができません! –
私はこれを見ることができます:http://img401.imageshack.us/img401/5017/so1w.png –
ループの各反復でエラー数 "err"を上書きしています。理論的な曲線は確率の点ではあるものの、errは復調された信号が送信された信号と一致しない場合のカウントなので、正しいとはいえません。 – rajb245