登录论坛

查看完整版本 : [求助]一个有关用设计的滤波器处理声音信号的问题。


fujinhai
2008-11-10, 22:00
要求设计一个巴特沃斯低通IIR滤波器,然后对语音进行处理。我编的程序如下:

sound=wavread('ee.wav');plot(sound)
[n,Wn]=buttord(0.2,0.3,1,25);
[b,a]=butter(n,Wn);
freqz(b,a,512,1);
fjh=freqz(sound);plot(fjh);
我想让它显示,语音在处理之前的时域图和频谱图,以及处理之后的时域图和频谱图,但是运行之后只有一个图。大家看看会不

会改呀。大家有没有好的实现的方法,可以告诉我,本人初学Matlab的信号处理。

songzy41
2008-11-11, 08:58
fjh=freqz(sound);语句的输出fjh是一个复数,要看幅值响应,应取模值。

guofeng0108
2008-11-11, 09:25
对!!!!!!!

一般要看幅度都必须加上abs的!!!!!!!

fujinhai
2008-11-11, 21:10
不明白,还请详细解答。谢谢!

guofeng0108
2008-11-11, 21:15
fjh=abs(freqz(sound));

pole
2008-11-12, 15:47
因为你使用了两次plot后面的那个会把前面的覆盖掉。

你在第二个plot(fjh)前面加上
figure;%新建一个图形窗

或者使用subplot 具体看help subplot.

另外,频响图是要加abs的
plot(abs(fjh));

pole
2008-11-12, 15:50
因为你使用了两次plot后面的那个会把前面的覆盖掉。

你在第二个plot(fjh)前面加上
figure;%新建一个图形窗

或者使用subplot 具体看help subplot.

另外,频响图是要加abs的
plot(abs(fjh));

wyq17008
2008-11-13, 09:31
或者你在一个图片上创建多个绘图区域也可以,如subplot(2,1,1);plot(abs(freqz(sound));subplot(2,1,2);plot( )