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 |
|