我试图通过16-QAM调制器,AWGN信道,解调器放置二进制矢量并最终测量BER。由于某种原因,即使我改变了矢量的长度,它也会一直给我BER = 0。 (我本来应该用Rayleigh频道来做,但我还没有。)
当我做同样但没有调制器时,我得到BER!=0
这很好
我在这里失踪了什么?
这是我的代码:
Sig = randi([0 1],1,1E5);
SigMod=qammod(Sig,16);
y=awgn(SigMod,50);
SigDemod=qamdemod(y,16);
z=SigDemod>0;
BER = biterr(Sig,z)
答案 0 :(得分:0)
awgn
的第二个输入是SNR ,以dB为单位。在您的示例中,您的SNR为50 dB,这会产生非常小的BER。
尝试降低SNR,例如降低到5 dB,您会发现一些误码。
答案 1 :(得分:0)
尝试在Matlab中看到这个例子:
SNR = 3; frameLen = 100;
x = randi([0 1],frameLen,1);
y = awgn(2 * x-1,SNR);
z = y> 0;
biterr(x,z)