当前位置:趣知科普网>母婴教育>学习交流>

MATLAB wgn函数产生高斯白噪声程序

学习交流 阅读(1.5W)

MATLAB产生整个频带内的高斯白噪声,并对其时域波形频谱作出分析。

操作方法

(01)产生高斯白噪声信号信号参数:时宽5s。MATLAB程序:fs=100;T=5;n=round(T*fs);%采样点个数t=linspace(0,T,n);y=wgn(1,n,0);%LFM信号注:这边wgn函数中前两个参数分别为要产生的信号矩阵的行数与列数,第三个参数为噪声信号的功率,这边设置为0就是0dbW。

(02)高斯白噪声信号时域频域波形:在设置的0~5s时宽范围内,是杂乱无章的噪声。这边幅度并不为1,因为我们设置的0dbW(相当于1W)是统计意义上的噪声功率,每个时刻的瞬时功率不一定为AB程序:figure;plot(t,y);title('高斯白噪声信号时域');xlabel('t/s');ylabel('幅度');运行结果:

MATLAB wgn函数产生高斯白噪声程序

(03)高斯白噪声频谱:可以看到,频谱分量铺满了整个频带,但由于只是对一个样本作频谱分析,并没有得到统计意义上均匀的功率谱。MATLAB程序:fft_y=fftshift(fft(y));f=linspace(-fs/2,fs/2,n);figure;plot(f,abs(fft_y));title('高斯白噪声信号频谱');xlabel('f/Hz');ylabel('幅度');运行结果:

MATLAB wgn函数产生高斯白噪声程序 第2张

特别提示

若要得到指定频带内的噪声信号,通过一个FIR滤波器即可。