2017-07-28 521 views
1

考虑到一个加性高斯白噪声(AWGN)通信信道,其中传输来自BPSK调制的信号。然后,接收到的有噪信号是:y[k] = s[k] + w[k]其中s[k]是+ 1,-1符号,而w[k]是零均值白高斯噪声。BPSK调制和信噪比:Matlab

- 我想估计信号s并通过从0:40 dB变化SNR来评估性能。假设估计的信号是hat_s

所以,这个图表会具有在X轴上SNR范围和Y轴的已知信号值和即估计值之间获得的均方误差,s[k] - hat_s[k]

问题1:如何定义信号信噪比? SNR的公式是sigma^2/sigma^2_w。我对分子这个词感到困惑:通常认为信号的方差σ2通常是什么?

问题2:但是,我不知道噪音方差的价值是什么,所以如何增加噪音?

这就是我所做的。

N = 100; %number of samples 
s = 2*round(rand(N,1))-1; 
%bpsk modulation 
y = awgn(s,10,'measured'); %adding noise but I don't know 
the variance of the signal and noise 

%estimation using least squares 

hat_s = y./s; 


mse_s = ((s-hat_s).^2)/N; 

请纠正我的错在哪里。谢谢。

回答

1

首先,我认为,它知道什么是我们的东西有一个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)); 

scatter plot 40 db

scatter plot 0 db

你可以看到一个不好的信号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) 

enter image description here

对于情节,因为我们在DB工作,它应该是beeter用数轴

+0

谢谢您的回答沿与情节,但很少有事情不清楚。你能澄清一下吗? (1)由于'awgn'处理信号噪声部分,研究文章中的大部分时间都不清楚噪声方差和信号变化。在写论文的时候,我也需要提到这一点,因此我提出了这个问题。能否请你说什么是信号和噪声理论上应书面的变化?(2)我不明白怎么个值的1来自公式中'A^2 = 1' – SKM

+0

我纠正问题的公式( 2),你在哪里,这是不正确的。对于第一个问题,据我所知,这里重要的是信号的每比特能量和噪声方差。 – anquegi

+0

对不起,听起来很嘈杂。我无法理解'dmin^2/4N0'是什么,并且找不到任何参考如何得到这个值,noise_var = 0.5 /(EbN0_lin); %s^2 = N0/2'。你能否请你解释/提供你如何得到这个价值的参考。感谢您的时间和精力。 – SKM