2016-11-13 39 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]