首先,我认为,它知道什么是我们的东西有一个BPSK系统是非常重要的:
一个BPSK系统的星座[-A,A]在这种情况下,[-1,1] 信噪比将从0 dB至40分贝
我的事情,答案是在此函数而变化:
Y = AWGN(...);来自matlab central:
y = awgn(x,snr)将白高斯噪声加到向量信号x上。标量snr指定每个采样的信噪比,单位为dB。如果x 很复杂,awgn会增加复杂的噪音。此语法假定x的功率为0 dBW。
y = awgn(x,snr,sigpower)与上面的语法相同,只是 sigpower是以dBW为单位的x的幂。
y = awgn(x,snr,'measured')与y = awgn(x,snr)相同,除了在添加噪声之前测量x的幂。
您使用y = awgn(x,snr,'measured'),因此您不必担心,因为matlab为您提供所有功能,测量信号的功率,然后应用于通道噪声用获得该SNR比率所需的方差。
让我们看看如何能这样呢
SNRbit = Eb/No = A^2/No = dmin^2 /4N0
the constelation [A,-A] in this case is [-1,1] so
10 log10(A^2/N0) = 10 log10(1/N0) = SNRbitdb
SNRlineal = 10^(0.1*SNRdb)
与
这样:
noise_var=0.5/(EbN0_lin); % s^2=N0/2
和信号将是这样的
y = s + sqrt(noise_var)*randn(1,size);
所以你的情况,我会产生的信号,你做的:
>> N = 100; %number of samples
>> s = 2*round(rand(N,1))-1; %bpsk modulation
然后制备SNR从0变化到40dB
>> SNR_DB = 0:1:40;
该calulating所有更多钞票信号之后:在这一点上
>> y = zeros(100,length(SNR_DB));
>> for i = 1:41
y(:,i) = awgn(s,SNR_DB(i),'measured');
end
看到的是使用的信号的最佳方式星座图是这样的:
>> scatterplot(y(:,1));
>> scatterplot(y(:,41));
你可以看到一个不好的信号0分贝等于功率信号和一个非常好的信号信号大于40分贝的噪音。 Eb/No =功率信号 - 功率噪声db,所以0表示功率噪声等于信号功率,40 db表示功率大于噪声功率的信号功率大于
然后为你绘制计算mse,matlab有一个对于函数此
ERR = immse(X,Y)描述
例如
ERR = immse(X,Y)的 阵列X之间计算均方误差(MSE)以及Y. X和Y可以是任何维度的数组,但必须是 相同的尺寸和等级。
与此
这样:
>> for i = 1:41
err(i) = immse(s,y(:,i));
end
>> stem(SNR_DB,err)
对于情节,因为我们在DB工作,它应该是beeter用数轴
谢谢您的回答沿与情节,但很少有事情不清楚。你能澄清一下吗? (1)由于'awgn'处理信号噪声部分,研究文章中的大部分时间都不清楚噪声方差和信号变化。在写论文的时候,我也需要提到这一点,因此我提出了这个问题。能否请你说什么是信号和噪声理论上应书面的变化?(2)我不明白怎么个值的1来自公式中'A^2 = 1' – SKM
我纠正问题的公式( 2),你在哪里,这是不正确的。对于第一个问题,据我所知,这里重要的是信号的每比特能量和噪声方差。 – anquegi
对不起,听起来很嘈杂。我无法理解'dmin^2/4N0'是什么,并且找不到任何参考如何得到这个值,noise_var = 0.5 /(EbN0_lin); %s^2 = N0/2'。你能否请你解释/提供你如何得到这个价值的参考。感谢您的时间和精力。 – SKM