matlab中用awgn函数加噪声的问题

我想用matlab在信号x上加一个信噪比为5dB的高斯白噪声,我使用的是awgn这个函数,help里解释是awgn的第一个参数是信号,第二个参数是信噪比,按照这样做进行检验的结果信噪比不是5dB是怎么回事?
下面是一小段代码:
>> x=randn(1,10);
>> y=awgn(x,5);
>> snr=10*log10((x*x')/((x-y)*(x-y)'));
>> snr

snr =

5.4170
谢谢,我试了不同信噪比的加噪声,结果是都围绕指定的信噪比有些波动,我想应该就是你说的原因吧

噪声是随机的,不可能那么精确就是5,这个波动是允许的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-05
y = awgn(x,snr)这个函数默认x的功率是0dBW
第2个回答  2012-09-29
我觉得是你的信号样本太少了,只有样本数足够的情况下,才可以说是服从高斯分布,还是随机分布或者其他。所以结果波动比较大