MATLAB wgn函数产生高斯白噪声程序
的有关信息介绍如下:MATLAB产生整个频带内的高斯白噪声,并对其时域波形频谱作出分析。
产生高斯白噪声信号
信号参数:时宽5s。
MATLAB程序:
fs=100;
T=5;
n=round(T*fs);%采样点个数
t=linspace(0,T,n);
y=wgn(1,n,0);%LFM信号
注:这边wgn函数中前两个参数分别为要产生的信号矩阵的行数与列数,第三个参数为噪声信号的功率,这边设置为0就是0dbW。
高斯白噪声信号时域频域波形:
在设置的0~5s时宽范围内,是杂乱无章的噪声。这边幅度并不为1,因为我们设置的0dbW(相当于1W)是统计意义上的噪声功率,每个时刻的瞬时功率不一定为1.
MATLAB程序:
figure;
plot(t,y);
title('高斯白噪声信号时域');
xlabel('t/s');
ylabel('幅度');
运行结果:
高斯白噪声频谱:
可以看到,频谱分量铺满了整个频带,但由于只是对一个样本作频谱分析,并没有得到统计意义上均匀的功率谱。
MATLAB程序:
fft_y=fftshift(fft(y));
f=linspace(-fs/2,fs/2,n);
figure;
plot(f,abs(fft_y));
title('高斯白噪声信号频谱');
xlabel('f/Hz');
ylabel('幅度');
运行结果: