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