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%的噪音,为什么差了这么远?