FIRフィルタとIIRフィルタの違い:構造・安定性・位相・次数・演算量を比較
どちらもデジタル信号処理で周波数特性を整えるフィルタですが、過去の出力を計算に使うかどうかが違います。FIRフィルタ(有限インパルス応答フィルタ)は、現在と過去の入力に係数を掛けて足すだけで、インパルス応答はタップ数の長さで終わります。IIRフィルタ(無限インパルス応答フィルタ)は、過去の出力も入力の側に戻して計算するので、インパルス応答が理論上いつまでも続きます。FIRフィルタは常に安定で、係数を左右対称にすれば直線位相にできますが、急峻な特性には多くのタップが必要です。IIRフィルタは少ない次数で急峻な特性が得られますが、位相は直線にならず、極の位置によっては不安定になります。
| 項目 | FIRフィルタ | IIRフィルタ |
|---|---|---|
| 計算の形とインパルス応答 | y[n] = Σh[k]x[n − k]。入力だけの重み付きの和で、インパルス応答はタップ数Nで終わる | y[n] = Σb[k]x[n − k] − Σa[k]y[n − k]。過去の出力も使い(帰還)、インパルス応答は減衰しながら続く |
| 伝達関数H(z)と安定性 | 分母がなく、極はz = 0だけ。係数によらず常に安定 | 分母をもつ。すべての極が単位円の内側にあるときだけ安定 |
| 位相特性 | 係数を左右対称にすれば直線位相。群遅延は周波数によらず(N − 1)/2サンプル | 直線位相にはならない。群遅延が周波数で変わり、遮断周波数の近くで大きくなる |
| 同じ特性に必要な次数(例) | fs = 48 kHz、通過域の端4 kHz、阻止域の端5 kHz、減衰60 dB、通過域のリプル0.5 dBのローパスで、等リプル設計では約110タップ | 同じ条件の楕円フィルタなら7次(2次のセクション4段) |
| 演算量(出力1サンプルあたり) | タップ数と同じ回数の積和。上の例では約110回(係数の対称性を使えば乗算は約半分) | 2次のセクション1段あたり乗算5回程度。上の例では約20回 |
| 遅延 | (N − 1)/2サンプルで一定。上の例では約56サンプル(約1.2 ms) | 周波数によって変わる。上の例では低い周波数で約9サンプル、通過域の端では約75サンプル |
| 係数の量子化(固定小数点) | 周波数特性は少し変わるが、安定性は失われない | 高次の式をそのまま実装すると、極が動いて不安定になりうる。2次のセクション(バイクワッド)の縦続接続で実装する |
| 主な設計方法 | 窓関数法、等リプル(パークス・マクレラン)法 | アナログフィルタ(バターワース、チェビシェフ、楕円など)の伝達関数を双一次変換する |
| 主な用途 | 波形の形を保ちたい通信や計測、音声・画像の処理、デシメーションや補間のフィルタ、適応フィルタ | 演算量やメモリを抑えたい組み込み機器、オーディオのイコライザ、直流の除去や指数平滑化 |
数値は代表的な目安で、世代や製品によって異なります。