在原始信号上加噪声,首先要产生噪声。Matlab有两个函数可以产生噪声,wgn( )和awgn( )。
1. WGN:产生高斯白噪声
y = wgn(m,n,p)
y = wgn(m,n,p) %产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度。
y = wgn(m,n,p,imp)
y = wgn(m,n,p,imp) %以欧姆(Ohm)为单位指定负载阻抗。
y = wgn(m,n,p,imp,state)
y = wgn(m,n,p,imp,state) %重置RANDN的状态。
2. AWGN:在某一信号中加入高斯白噪声
y = awgn(x,SNR)
y = awgn(x,SNR) %在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。
举例如下:
clear,clc;
N=0:1000;
fs=1024;
t=N./fs;
y=3*sin(2*pi*t);
x=wgn(1,1001,2);
i=y+x;
% i=awgn(y,2);
subplot(3,1,1),plot(x);
subplot(3,1,2),plot(y);
subplot(3,1,3),plot(i);
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/03087bf40ad162d9f0254c8719dfa9ec8b13cd65?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)