2016-11-13 6 views
1

フィルタリングされたオーディオをプロットしようとしていますが、2番目のプロットに何も表示されていないため、何か間違っています。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] 
関連する問題