matlab 如何在观测数据中加入信噪比为5%的噪声?

y=awgn(x,5)是否正确?

matlab中awgn函数用来在信号中加入高斯白噪声,用法为:

y = awgn(x,SNR)

信噪比SNR以dB为单位。题目要求信噪比为5%,那就是大噪声中的小信号。

如果纯信号为幅值为1的正弦信号,代码如下:

clear all;

close all;

x=0:0.2:10;

data1=sin(x);

plot(x,data1);

hold on;

data2=awgn(data1,10*log10(0.05));

plot(x,data2,'r-');

hold off;

运行结果如下图,蓝色是纯信号,红色是加了5%信噪比高斯白噪声的信号。

追问

10*log10(0.05)中第1个10是指什么?

追答

SNR是用分贝表示的,公式里乘以10得到的值才是分贝数。

追问

你所举的例子中,才加了5%的噪音,为什么差了这么远?

温馨提示:答案为网友推荐,仅供参考
相似回答