AWGN Build vs Randn 噪声不匹配

信息处理 matlab 噪音 数字通信 功率谱密度 信噪比
2022-02-17 04:52:25

我在两种不同的情况下使用相同的 SNR 产生噪声,一次使用内置命令 AWGN 命令,第二次使用具有正确缩放比例的 randn 函数,但是在每种情况下我得到不同的噪声功率。

以下是使用不同技术生成噪声的脚本。谁能帮助我为什么我没有得到正确的结果?

方法一

  A=[1-1i 1+1i 2-1i 2+1i  3+1i  3-3i]
    Norm=sum(abs(A).^2)/length(A);
    flipud(A);
    snrdb=0;
    snrlin=10^((snrdb)/10);
Noise=sqrt(Norm/(2*snrlin))*(randn(size(A,1),size(A,2))+1i*randn(size(A,1),size(A,2))); 

方法二

B=awgn(A,snrdb,'measured');
Noise2=B-A;

结果如下:

>> sum(abs(C).^2)/length(C)

ans =

    3.6551

>> sum(abs(Noise).^2)/length(Noise)

ans =

    6.4898

信号功率为

>> sum(abs(A).^2)/length(A)

ans =7

这似乎 randn 在估计信号的功率和 awgn 这种情况下做得更好,但在不同的情况下,结果是不同的,可能会得到不同的结果。谁能告诉我如何更改使用内置命令和 randn 产生的噪声的代码给我相同的结果。

0个回答
没有发现任何回复~