- ベストアンサー
IIRフィルタとFIRフィルタ
無限インパルス応答(IIR)フィルタと有限インパルス応答(FIR)フィルタとはアナログでいう、バンドパスフィルタやローパスフィルタ、ハイパスフィルタのデジタル版みたいなものであることは分かるのですが、 無限、有限というのは何を表しているのでしょうか? Wikipediaなどに解説はしてあるのですが、どうしても理解することが出来ません。 どなたか易しく説明して頂けないでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> つまり、例えば、1秒間だけのパルスに対してフィルタをかける場合、 元の信号の長さは関係ありません。 フィルタの次数が「1秒分」だったら、 入力信号が1秒だろうと10秒だろうと0.1秒だろうと、 > FIRであればパルスが終わった1秒後には信号は完全になくなる ということになります。ただし、次数が1秒のフィルタなら「1秒後以降は無くなっている」のは保証されますが、場合によっては1秒より短い時間で無くなる可能性もあります。それはフィルタのパラメータ次第。 > IIRでは、フィルタ自体がそのパルスの残像を出力し続け、永遠にそのパルスが出力される そういう場合も「あり得る」のがIIRです。実際にそうなるかどうかはフィルタのパラメータ次第です。 (で、先ほどの回答にも書きましたが、IIRでも、実用上は、減衰してそのうち影響が無くなるようなパラメータを設定するのが普通です。)
その他の回答 (3)
>フィルタの持続時間って一体どういうことなのでしょうか? たとえば、単発のパルスを入れたときに出力されるパルス系列の「持続時間」。 FIR と IIR の簡単な例で、シグナル・フロー(時系列)を追跡してみてください。 >時間とともにフィルタの急峻度が変わるということなのですか? パルス応答(時間域)はフィルタ急峻度(周波数域)と対応しています。 パルス応答のフィルタ係数を時間とともに変えない限り、フィルタの急峻度が変わるということはありません。
- mtaka2
- ベストアンサー率73% (867/1179)
「無限」か「有限」かは、 ある入力信号が、どれだけ先にまで影響するか、という違いです。 FIRフィルタでは、指定した次数個の「過去の入力データ」から、出力を算出しますので、次数分よりももっと過去の入力データは出力に対しまったく影響しません。言い換えれば、ある時刻の入力は、そこから次数個よりも先の未来の出力に対して影響を与えることはありません。 IIRフィルタでは、「過去の出力データ」も、出力の算出に利用します。 参照している「過去の出力データ」の算出には、そこからさらに過去の出力データが影響していますから、 突き詰めて行くと、ある出力データに対しては、そこから永遠に過去に遡った、全てのデータから影響を受けていることになります。 言い換えれば、ある入力データは、出力に対して、永遠に未来永劫、影響を与えつづけることになるのです。 いわゆる「発振」も、影響が後に与えつづけていくという結果の表れの一つですね。 実際には、IIRフィルタでも、過去のデータは減衰してほとんど影響しなくなっていくようにパラメータを設定します。
>無限、有限というのは何を表しているのでしょうか? 入力信号に対する出力応答の持続時間が、FIR フィルタでは有限時間、IIR フィルタだと無限時間。 FIR フィルタは順方向の経路だけなのに、IIR フィルタには逆向きの帰還経路があるからです。
お礼
ありがとうございます。 IIRはFIRとは異なりフィードバック機構をもつために、発振することがあり、持続応答が無限時間になることがあるというようなことはWikipediaでも書かれているのですが、フィルタの持続時間って一体どういうことなのでしょうか? 時間とともにフィルタの急峻度が変わるということなのですか? このへんのことがどうしても理解出来ません。 易しく教えてください。
お礼
ありがとうございます。 つまり、例えば、1秒間だけのパルスに対してフィルタをかける場合、 FIRであればパルスが終わった1秒後には信号は完全になくなるのに対してIIRでは、フィルタ自体がそのパルスの残像を出力し続け、永遠にそのパルスが出力されるということでよろしいのでしょうか?