原创 [蛋疼帖]用Matlab生成HIFI煲机白噪声2

2009-11-9 22:22 2946 2 2 分类: 工程师职场

之前我们已经能用MATLAB产生频谱均匀的白噪声了。但是在特定的场合,我们需要用一定带宽的噪声来褒机。这里就需要请出滤波器设计工具了。

产生白噪声的过程以前已经有描述,这里不再解释:

wav =randn(1e6,2);

然后进行滤波器设计,这里设计了一个低通FIR滤波器:

f =[0 0.4 0.5 1]; a = [1 1 0 0];

LPF = firpm(100,f,a);

LPF则是设计得到的滤波器。默认情况下firpm设计出来的滤波器通带,阻带等纹波。100为滤波器阶数。由于不是拿去设计实际的实现,所以阶数可以取高点来满足滤波特性。然后我们可以看到滤波器的频谱:

freqz(LPF);

点击看大图

然后利用滤波器对白噪声进行滤波:

wav2 = filter(LPF,1,wav);

然后通过FFT察看滤波后的噪声谱:

点击看大图

最后保存文件:

wavwrite(wav2,44100,'noise_shaped');

打完收工,如果你的播放工具带频谱显示,那就可以看到频谱就是那么回事。。。




PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /1 下一条