matlab代码如下:
fs=48000;
figure;
normal=normrnd(0,1,1,96000); %生成服从正态分布的随机数
subplot(2,1,1);plot(normal,'b');
axis([0 96000 -6 6]);xlabel('高斯分布白噪声');
uniform=rand(1,96000); %生成服从均匀分布的随机数
subplot(2,1,2);plot(uniform,'g');
axis([0 96000 0 2]);xlabel('均匀分布白噪声');
figure;
NFFT=2^nextpow2(length(normal)); %nextpow2(x)等于log2(x)向上取整(即取整加1,若log2(x)为整数,取该整数即可)
nf=fft(normal,NFFT)/length(normal);
f=fs/2*linspace(0,1,NFFT/2+1); %在0-1之间生成N点行矢量
subplot(2,1,1);plot(f,abs(nf(1:NFFT/2+1)),'b');
axis([0 length(f)/2 0 0.015]);xlabel('高斯分布白噪声频谱');
uf=fft(uniform,NFFT)/length(uniform);
subplot(2,1,2);plot(f,abs(uf(1:NFFT/2+1)),'g');
axis([0 length(f)/2 0 0.005]);xlabel('均匀分布白噪声频谱');
输出结果图如下。 时域图: 频谱图:
|