IIRの「無限」が実際に何を意味するのか理解できません。理論的には、インパルス応答がフィードバックに使用されます。このフィードバックが、出力の生成方法を終了しない場合
IIRの「無限」が実際に何を意味するのか理解できません。理論的には、インパルス応答がフィードバックに使用されます。このフィードバックが、出力の生成方法を終了しない場合
回答:
その質問に答えるには、「インパルス」と「応答」の意味を知っている必要があります...
「インパルス」は単純なパルスです。デジタル的には、最大値を持つサンプルになりますが、その前後の他のサンプルはすべてゼロになります。これを聞くと、ポップや爆竹のような音が聞こえます。
「応答」は、フィルター(または何か他のもの)の出力にインパルスが与えられます。
たとえば、部屋に入って簡単な手をたたいて、エコーを聞くことで、「部屋のインパルス応答」を聞くことができます。手拍子をできるだけ「シャープ」にするためには、いくらかの練習が必要です。フィルターのインパルス応答を取得する方法は同じですが、ハンドクラップの代わりに単純なパルスを使用し、部屋の代わりにフィルターを使用します。
フィルターまたは部屋のインパルス応答を見ると、インパルス後の出力が少し揺れているのがわかります(場合によっては、前に揺れていることもあります)。部屋で、あなたはこの小刻みな音がエコーとして聞こえました。フィルターでは、この揺れはフィルターの周波数と位相応答に直接関連しています。部屋では、エコーが聞こえる時間を「リバーブ時間」と呼びます。フィルターに対応する用語はありませんが、インパルス応答の一部です。
ここで、FIRフィルター(有限インパルス応答)は有限です。これは、インパルス応答時間が数学によって制限されるためです。インパルス応答時間がフィルターのタップ数を超えることは数学的に不可能であり、したがって有限です。
一方、IIRフィルターは、インパルス応答時間にこの数学的制限がありません。無限の数学的精度が指定されている場合、IIRフィルターは出力を永久に揺らすことができます。もちろん、実用的な意味では永遠に続くことはありません。ある時点で、ウィグルは使用される数学の精度よりも小さくなり、消えてしまうからです。
インパルス応答はフィルターの署名です。FIRフィルターの場合、インパルス応答はフィルターの係数の直接的なイメージを提供します。インパルスは最大振幅の単一サンプルであり、前後のすべてのサンプルはゼロです。(これはディラックパルスに相当するデジタルです。)パルス発生
時に、その値はで乗算され(下の図を参照)。他のサンプルはゼロなので、出力は等しくなり(1のパルスの最大値を想定しています)。1サンプル後、パルスは1つのブロックを移動し、が乗算されます。繰り返しますが、他のすべての値はゼロなので、出力は y b 0 z − 1 b 1 b 1 b i。等々。パルスがフィルターを通過する間、出力での連続する値が得られます。Nサンプル後、パルスはフィルターからシフトアウトされ、出力は再びゼロになります。
IIRフィルターの場合、インパルス応答からフィルター係数を導出することはそれほど明白ではありません。
IIR
IIRフィルター(の一部)では、処理された信号が入力にフィードバックされます。つまり、ループする信号の残留物が常に存在することになります。ただし、ほとんどの場合、信号のこの部分はさらに小さくなり、最終的にはゼロになりますが、理論的には完全に消えることはありません。以下のブロック図は、IIRフィルターの実装でよく使用されるバイクアッドフィルターを示しています。左側のブランチは(遅延した)入力値を受け取り、右側のブランチは(遅延した)出力値を処理します。(ブロックは1サンプルの遅延を表します。バイカッドは多くの場合カスケードされます。
一方、FIR FIRフィルターには、入力から出力への線形パスがあります。Nサンプル後、入力信号(ディラックパルスのような)はシフトアウトされ、それで終わりです。
FIRフィルターは本質的に安定していますが、IIRフィルターは必ずしもそうではありません。
デジタルフィルターには、無限インパルス応答(IIR)と有限インパルス応答(FIR)の2つの広いクラスがあります。繰り返しますが、IIRフィルターは方程式ベースで、FIRフィルターはテーブルベースです。
IIRフィルターは、実際のアナログフィルターに似ています。たとえば、RCアナログローパスフィルターから得られるような単純な指数関数的減衰を考えます。ステップ入力に対する出力応答は、入力にますます近づく指数関数です。この指数が実際に出力に到達することはなく、エラーが気にならないか測定できないように十分に近いだけであることに注意してください。その意味で、そのようなフィルターは無限です。IIRフィルターにも同じ特性があります。
非常に一般的な単極ローパスIIRフィルターは、次のように表すことができます。
FILT <-FILT + FF(NEW-FILT)
これは、入力までの距離の固定部分(FF、「フィルター部分」)を移動した場合、各反復で出力が繰り返されることを意味します。FF = 1/2の場合、これは簡単に視覚化できます。すべてが0で入力が突然1になり、そこに留まる場合(単位ステップ)、出力は1 / 2、3 / 4、7 / 8、15 / 16などになります。これは無限の系列です。コンピュータのデジタル値の精度は無限ではないため、最終的には値が1に非常に近くなり、1として表されます。
FIRフィルターは、まったく異なる原理で動作します。入力信号の最近の有限スニペットが保存され、保存された各値に異なる係数が乗算されてから、その反復のフィルター出力を作成するためにすべての結果が追加されます。次の反復では、最も古い保存値が破棄され、他の値は1スロット前にシフトされ、新しい入力は空のスロットに入れられます。次に、新しく保存されたスニペットに係数などが乗算されます。このプロセスは「畳み込み」と呼ばれ、係数のテーブルはフィルターカーネルと呼ばれることがよくあります。この種のフィルターを使用して、係数を工夫することにより、いくつかの豪華で便利なことができます。それは、私が今ここで取り上げることのない、それ自体に関する全体的なトピックです。ただし、入力の有限スニペットがメモリに格納されるため、入力信号のどの部分も、有限時間の間のみ出力に影響を与えることができます。入力サンプルが格納されたスニペットの最後からシフトアウトされると、サンプルはなくなり、出力に影響を与えなくなります。
このことについて書かれた本は全部あり、大学のコースのいくつかの学期をこれに深く取り組むことに費やすことができます。うまくいけば、私の30秒間の概要で、これがあなたの質問に答えるのに十分なほどわかりやすくなっています。
まだ言及されていない1つの点は、IIRフィルターがさらに2つのスタイルに分割される可能性があることです:ステージをランク付けできるもの、つまり各ステージがそれ自体の以前の値と以前のステージの値に完全に依存するもの、およびステージはランク付けできません(2つ以上のステージが互いに依存しているため)。以前のスタイルのIIRのようにランク付けでき、そのステージ自体の以前の出力を参照しない場合、FIRフィルターのステージが他のステージの以前の出力を参照することが可能です。
IIRフィルターのステージをランク付けできる場合、および特定のステージの自己フィードバック係数の合計の大きさが1未満の場合、IIRフィルターは安定していることが保証されます。たとえば、ステージに前のステージからの信号がいくらか含まれ、そのステージの前の値の半分とその前の値の1/4、その前の値の1/8を差し引いた場合、自己の合計振幅フィードバックは7/8になるため、下位ステージからの入力がない場合、自己フィードバックからの寄与の大きさは反復ごとに12.5%減少します。
FIRは有限数の要素に対して計算を行い、たとえば32または12またはいくつかの数を考えますが、これは数学が行うことであり、有限数の要素を取り、それらに対してのみフィルターを実行します。
IIRは、供給したすべてのサンプルに対して計算を行います。10個のサンプルを供給して停止すると、10個のサンプルで機能し、1,000,000,000個のサンプルを供給すると、数学は1,000,000,000個のサンプルで動作しました。そして、無限に近づき、無限に近づく(永久に実行させる)場合、要素の数も同様に無限に近づきます。有限という言葉は明らかに他のモデルに当てはまり、IIRモデルは有限数のサンプルを持たないことを目的としているため、有限という反対の言葉である無限は、不明確な言葉や他のそのような言葉よりも優れています。