官方淘宝店 易迪拓培训 旧站入口
首页 > 无线通信 > 通信技术学习讨论 > Matlab里高斯噪声的表达式

Matlab里高斯噪声的表达式

12-16
模型和代码来自"Principles of Comm. Systems Simulation w/ Wireless App." 的9.2.2节(作者为 W.H. Tranter, T.S. Rappaport等人)。
模型中只考虑高斯噪声对随机比特流的影响。
信号用d = round(rand(1)); 表示。
为什么噪声就是sigma*randn(1); 呢?   (sigma是噪声的标准差)
我看了上下文,也没有找到依据在哪里啊。
全部代码如下:
snrdB_min=-3;snrdB_max=8;
snrdB=snrdB_min:1:snrdB_max;
Nsymbols=input('Enter number of symbols>');
snr=10.^(snrdB/10);
%h=waitbar(0, 'SNR Iteraction');
len_snr=length(snrdB);
for j=1:len_snr
%    waitbar(j/len_snr)
    sigma=sqrt(1/(2*snr(j)));
    error_count=0;
    for k=1:Nsymbols
        d = round(rand(1));
        %d = rand(1)
        x_d=2*d-1;
        n_d=sigma*randn(1);
        y_d=x_d+n_d;
        if y_d>0
            d_est=1;
        else
            d_est=0;
        end
        if (d_est ~= d)
            error_count=error_count+1;
        end
    end
    errors(j)=error_count;
end
%close(h)
ber_sim=errors/Nsymbols;
ber_theor=q(sqrt(2*snr));
semilogy(snrdB, ber_theor, snrdB, ber_sim, 'o');
%plot(snrdB, ber_theor, snrdB, ber_sim, 'o');
axis([snrdB_min snrdB_max 0.0001 1])
xlabel('SNR in dB')
ylabel('BER')
legend('Theoretical', 'Simulation')
grid on

自细看代码,sigma是用snr和信号功率为1计算出来的。

我看到的n_d这个变量是用randn生成的,因此是高斯啊

谢谢。是我看错了。我help randn,看到normally distributed,就理解成均匀了。
话说normal和uniform我常常搞混,每次要想一下才能区分。

Top