Signal Processing Toolbox    

フィルタ処理のための関数

filterとは別に、Signal Processing Toolboxには、基本的なフィルタ処理を行う関数がいくつか用意されています。このような関数としては、リサンプリングによるFIRフィルタ処理を行うupfirdn、フィルタ処理過程での位相歪みを除去するfiltfilt、周波数領域でFIRフィルタ処理演算を行うfftfilt、ラティス実現を使ってフィルタ処理するlatcfiltがあります。

マルチレートフィルタバンクの実現

関数upfirdnは、信号のサンプリングレートを整数比P/Qに変更します。これは、つぎの3つの処理を行う3つのシステムをカスケードに処理を行なうものです。

たとえば、信号のサンプリングレートを44.1 kHzから48 kHzに変更するには、まず最小公倍数p/qを求めます。

ここで、p = 160 q = 147が得られます。そして、

を使って、サンプリングレート変換を行います。演算のカスケード部は、ポリフェーズフィルタリングの手法(polyphase filtering techniques)を用いて効率的な形で実現され、これがマルチレートフィルタ処理の中心的な概念となります(マルチレートフィルタ理論の詳細については、参考文献 [1]を参照してください)。リサンプリング結果の品質は、FIRフィルタhの特性に左右されることに注意してください。

フィルタバンクは、フィルタhを列単位に1つのFIRフィルタに対応する行列にすることによって、upfirdnを用いて実現することができます。信号ベクトルは、独立に各FIRフィルタに通され、その結果の出力信号の行列となります。

マルチレートフィルタリングを行う他の関数として、resampleinterpdecimateも用意しています。


 関数filter 非因果的ゼロ位相フィルタの実現