BPSK modulation and SNR : Matlab
考虑一个加性高斯白噪声(AWGN)通信信道,在该信道中传输从BPSK调制中获取值的信号。然后,接收到的噪声信号为:
-我想估计信号
因此,该图在X轴上具有SNR范围,在Y轴上具有在已知信号值和估计值之间得到的均方误差,即
问题1:如何定义信噪比? SNR的公式是否为
问题2:但是,我不知道噪声方差的值是多少,那么一个噪声如何增加?
这就是我所做的。
1 2 3 4 5 6 7 8 9 10 11 12 |
请在错误的地方纠正我。谢谢。
首先,我认为了解BPSK系统的功能很重要:
在这种情况下,BPSK系统的星座为[-A,A] [-1,1]
SNR从0 db到40 db不等
我认为答案在此功能中:
y = awgn(...);从Matlab Central:
y = awgn(x,snr) adds white Gaussian noise to the vector signal x. The
scalar snr specifies the signal-to-noise ratio per sample, in dB. If x
is complex, awgn adds complex noise. This syntax assumes that the
power of x is 0 dBW.y = awgn(x,snr,sigpower) is the same as the syntax above, except that
sigpower is the power of x in dBW.y = awgn(x,snr,'measured') is the same as y = awgn(x,snr), except that
awgn measures the power of x before adding noise.
您使用y = awgn(x,snr,'measured'),因此您无需担心,因为matlab为您提供了所有功能,测量了信号的功率,然后应用具有获得信噪比。
让我们看看这怎么发生
1 2 3 4 5 6 7 |
因此:
1 | noise_var=0.5/(EbN0_lin); % s^2=N0/2 |
信号将是这样的
因此,在您的情况下,我将像您一样生成信号:
然后准备SNR在0到40 db之间变化
1 | >> SNR_DB = 0:1:40; |
之后,计算所有可能的信号:
此时,查看信号的最佳方法是使用星座图,如下所示:
1 2 | >> scatterplot(y(:,1)); >> scatterplot(y(:,41)); |
您会看到不良信号0 db噪声与信号功率相等,而非常好的信号大于40 DB噪声。 Eb / No =功率信号-功率噪声db,因此0表示功率噪声等于信号功率,40 db表示信号功率大于或大于噪声功率
然后为您绘图计算mse,matlab为此提供了一个功能
err = immse(X,Y) Description
example
err = immse(X,Y) calculates the mean-squared error (MSE) between the
arrays X and Y. X and Y can be arrays of any dimension, but must be of
the same size and class.
所以这样:
对于绘图,并且由于我们在db中工作,因此最好使用对数轴