简体   繁体   English

QAM调制的BER结果Matlab

[英]BER result for QAM modulation Matlab

I'm trying to put a binary vector through a 16-QAM modulator, AWGN channel, demodulator and measure the BER in the end. 我试图通过16-QAM调制器,AWGN通道,解调器输入二进制矢量,并最终测量BER。 for some reason it keeps giving me BER=0, even after if I change the length of the vector. 由于某种原因,即使我更改了向量的长度,它也一直给我BER = 0。 (I'm supposed to do it with a Rayleigh channel later, but I'm not even there yet). (我应该稍后使用Rayleigh频道进行此操作,但现在还没有)。
when I do the same but without a modulator I get BER!=0 which is fine. 当我这样做但没有调制器时,我得到BER!=0 ,这很好。
what am i missing here? 我在这里想念什么?
here's my code: 这是我的代码:

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) 

The second input to awgn is SNR in dB . awgn的第二个输入是SNR ,单位为dB In your example you have a SNR of 50 dB, which gives a very small BER. 在您的示例中,SNR为50 dB,因此BER很小。

Try reducing the SNR, for example to 5 dB, and you will observe some bit errors. 尝试将SNR降低到例如5 dB,您会发现一些误码。

Try to see this example in Matlab: 尝试在Matlab中查看以下示例:

SNR = 3; 信噪比= 3; frameLen = 100; frameLen = 100;

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

y = awgn(2*x-1, SNR); y = awgn(2 * x-1,SNR);

z = y > 0; z = y> 0;

biterr(x, z) biterr(x,z)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM