QAM 调制 Matlab 的 BER 结果

BER result for QAM modulation Matlab

我正在尝试将二进制矢量通过 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) 

awgn 的第二个输入是 SNR dB。在您的示例中,您的 SNR 为 50 dB,这给出了非常小的 BER。

尝试降低 SNR,例如降低到 5 dB,您会观察到一些误码。

尝试在 Matlab 中查看此示例:

信噪比=3; frameLen = 100;

x = randi([0 1], frameLen, 1);

y = awgn(2*x-1, 信噪比);

z = y > 0;

biterr(x, z)