分享

关于matlab中awgn函数中参数作用的测试

 yidiantou 2017-09-22

matlab中加性白噪声awgn函数主要格式是awgn(sig,SNR,sigpower)

对于sigpower参数进行了一下测试,其表示的作用应该是作为SNR参考0db的信号功率


以这段代码对参数作用进行测试:

----------------------------------------------------------------

t = 0:pi/64:10*pi;

sig = sqrt(200)*sin(t);             %产生功率为100的信号

var0 = var(sig);

nsig1 = awgn(sig,10,0) - sig;

nsig2 = awgn(sig,10,'measured') - sig;

var1 = var(nsig1);

var2 = var(nsig2);

----------------------------------------------------------------

得到的结果是

var0 =

   100

var1 =

   0.0955

var2 =

   10.4792

也就是说虽然信号功率为100,SNR设置为10,第二个的SNR仍然以0db作为基准生成了噪声,噪声方差约0.1。

而当采用参数measured的时候,噪声基准则以信号实际功率为准,生成了方差约10的噪声。

----------------------------------------------------------------

----------------------------------------------------------------

进一步验证可以通过下面代码确定,仅供参考:

----------------------------------------------------------------

sig = sqrt(200)*sin(t);              %产生功率为100的信号

var0 = var(sig);

nsig1 = awgn(sig,10,10) - sig;

nsig2 = awgn(sig,10,20) - sig;

var1 = var(nsig1);

var2 = var(nsig2);

----------------------------------------------------------------

得到的结果是

var0 =

   100

var1 =

   1.0252

var2 =

   10.6724

----------------------------------------------------------------

----------------------------------------------------------------

sig1 = sqrt(200)*sin(t);             %产生功率为100的信号

sig2 = sqrt(2)*sin(t);                 %产生功率为1的信号

var0_1 = var(sig1);

var0_2 = var(sig2);

nsig1 = awgn(sig1,10,'measured') - sig1;

nsig2 = awgn(sig2,10,'measured') - sig2;

var1 = var(nsig1);

var2 = var(nsig2);

----------------------------------------------------------------

得到的结果是

var0_1 =

    100

var0_2 =

    1.0000

var1 =

    9.7096

var2 =

    0.0995


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多