2016-11-13 46 views
1

我试图绘制过滤后的音频,但我做错了什么,因为第二个剧情什么也没有显示。Matlab - 绘制过滤后的音频

[wave,fs]=wavread('my-audio.wav'); 
t=0:1/fs:(length(wave)-1)/fs; 
figure(1);plot(t,wave); 
b = [1.1 1]; 
a = [-0.1 0 1]; 
FIR = filter(b,a,wave); 
figure(2);plot(t,FIR); 

我使用的功能是:H(z)=(z + 1.1)/(z^2 - 0.1)

我缺少什么?

谢谢!

回答

3

看起来你已经倒过了ab向量中系数的顺序。反转系数的顺序对于定义传递函数的极点(因此确定滤波器的稳定性)的反馈系数a特别显着。由此产生的过滤输出FIR因此可能超过数值浮动容量,其中plot有麻烦。

filter's documentation,则ab系数进行定义的transfer function of the form

H(z) = \frac{b(1) + b(2)z^{-1} + \dots + b(n)z^{-n}}{a(1) + a(2)z^{-1} + \dots + a(m)z^{-m}}

由于您的传递函数

\begin{align}H(z) &= \frac{z + 1.1}{z^2 - 0.1} \ &= \frac{z^{-1} + 1.1z^{-2}}{1 - 0.1z^{-2}}\end{align}

你应该使用系数

b = [0 1 1.1] 
a = [1 0 -0.1]