IIRフィルターは無限とはどういう意味ですか?


11

IIRの「無限」が実際に何を意味するのか理解できません。理論的には、インパルス応答がフィードバックに使用されます。このフィードバックが、出力の生成方法を終了しない場合

回答:


18

その質問に答えるには、「インパルス」と「応答」の意味を知っている必要があります...

「インパルス」は単純なパルスです。デジタル的には、最大値を持つサンプルになりますが、その前後の他のサンプルはすべてゼロになります。これを聞くと、ポップや爆竹のような音が聞こえます。

「応答」は、フィルター(または何か他のもの)の出力にインパルスが与えられます。

たとえば、部屋に入って簡単な手をたたいて、エコーを聞くことで、「部屋のインパルス応答」を聞くことができます。手拍子をできるだけ「シャープ」にするためには、いくらかの練習が必要です。フィルターのインパルス応答を取得する方法は同じですが、ハンドクラップの代わりに単純なパルスを使用し、部屋の代わりにフィルターを使用します。

フィルターまたは部屋のインパルス応答を見ると、インパルス後の出力が少し揺れているのがわかります(場合によっては、前に揺れていることもあります)。部屋で、あなたはこの小刻みな音がエコーとして聞こえました。フィルターでは、この揺れはフィルターの周波数と位相応答に直接関連しています。部屋では、エコーが聞こえる時間を「リバーブ時間」と呼びます。フィルターに対応する用語はありませんが、インパルス応答の一部です。

ここで、FIRフィルター(有限インパルス応答)は有限です。これは、インパルス応答時間が数学によって制限されるためです。インパルス応答時間がフィルターのタップ数を超えることは数学的に不可能であり、したがって有限です。

一方、IIRフィルターは、インパルス応答時間にこの数学的制限がありません。無限の数学的精度が指定されている場合、IIRフィルターは出力を永久に揺らすことができます。もちろん、実用的な意味では永遠に続くことはありません。ある時点で、ウィグルは使用される数学の精度よりも小さくなり、消えてしまうからです。


素敵な説明ありがとうございます!IIRではどこでフィードバックが行われますか?
GorillaApe

2
@Parhs:現在の出力は以前の入力 出力値から導出されるため、フィードバックが発生しますが、FIRフィルターの場合、出力は以前の入力値からのみ導出されます。
Paul R

1
@Parhaフィードバックはトポロジの副作用です。トポロジーとは、フロー図やフィルターの「概略」ビューのようなものです。基本的に、あるステージでの数学演算の結果は、前のステージでの別の演算に使用されます。それがフィードバックです。FIRはフィードバックがないため、ほとんどの人が使いやすいと感じています。そのフィードバックを正しく機能させることは困難ですが、非常に効率的です。

IIRシステムには、以前の入力を常に「記憶」する内部状態があります。これをモデル化する方法は、いずれかの以前の出力は、このように、現在の出力にフィードバックすることであるダイレクトフォーム1このような入力にバイカッド、または等価フィードバックループダイレクトフォーム2カノニカルバイカッド。
Eryk Sun、2011

11

インパルス応答はフィルターの署名です。FIRフィルターの場合、インパルス応答はフィルターの係数の直接的なイメージを提供します。インパルスは最大振幅の単一サンプルであり、前後のすべてのサンプルはゼロです。(これはディラックパルスに相当するデジタルです。)パルス発生
時に、その値はで乗算され(下の図を参照)。他のサンプルはゼロなので、出力は等しくなり(1のパルスの最大値を想定しています)。1サンプル後、パルスは1つのブロックを移動し、が乗算されます。繰り返しますが、他のすべての値はゼロなので、出力は y b 0 z 1 b 1 b 1 b ib0yb0z1b1b1。等々。パルスがフィルターを通過する間、出力での連続する値が得られます。Nサンプル後、パルスはフィルターからシフトアウトされ、出力は再びゼロになります。 IIRフィルターの場合、インパルス応答からフィルター係数を導出することはそれほど明白ではありません。 bi

IIR
IIRフィルター(の一部)では、処理された信号が入力にフィードバックされます。つまり、ループする信号の残留物が常に存在することになります。ただし、ほとんどの場合、信号のこの部分はさらに小さくなり、最終的にはゼロになりますが、理論的には完全に消えることはありません。以下のブロック図は、IIRフィルターの実装でよく使用されるバイクアッドフィルターを示しています。左側のブランチは(遅延した)入力値を受け取り、右側のブランチは(遅延した)出力値を処理します。(ブロックは1サンプルの遅延を表します。バイカッドは多くの場合カスケードされます。 z1

ここに画像の説明を入力してください


一方、FIR FIRフィルターには、入力から出力への線形パスがあります。Nサンプル後、入力信号(ディラックパルスのような)はシフトアウトされ、それで終わりです。
FIRフィルターは本質的に安定していますが、IIRフィルターは必ずしもそうではありません。

ここに画像の説明を入力してください


1
ループしている信号は安全ではなく、場合によっては望ましくない結果をもたらすことはありませんか?
GorillaApe

2
それは間違いなくできます。間違ったフィードバックパスまたはゲインを使用すると、不安定なフィルターや、何かの正弦波を永久に出力するフィルターを作成できます。これは通常、「フィルター」で実行したいことではないため、安定性を分析して不安定性を回避するための手法があります。
Olin Lathrop、2011年

すべてのフィードバック項の合計はフィードバックチェーンの最初にフィードバックする必要がありますか、それとも後の項からの出力を後の項への入力に合計できますか?後者の方法で実現できるすべてのフィルターが、図に示した形式に変換されると思いますが、カスケードされた1次フィルターから形成できるIIRフィルターの便利なサブクラスがあると思います(それぞれの右側の用語の出力は、それ自体をフィードできますが、その前任者はフィードできません)
supercat

1
@supercat-IIRフィルターを使用するには、何らかの形のフィードバックがあれば十分です。バイフィルターのおよびパスが示すように、出力から入力に移動する必要はありません。a 2a1a2
stevenvh

@stevenvh:回答で述べたように、IIRフィルターの有用なサブセットがあり、ステージはそれ自体にフィードバックできますが、前のステージにはフィードバックできません。そのようなフィルターを説明する用語を読んだことはありませんが、一般化されたIIRフィルターよりも特徴付けがはるかに簡単です。それらは上記の形式で適切な係数を使用してレンダリングできますが、その形式ではそのようなフィルター(それらの用語はありますか?)を認識するのは困難です。
スーパーキャット

4

デジタルフィルターには、無限インパルス応答(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

まだ言及されていない1つの点は、IIRフィルターがさらに2つのスタイルに分割される可能性があることです:ステージをランク付けできるもの、つまり各ステージがそれ自体の以前の値と以前のステージの値に完全に依存するもの、およびステージはランク付けできません(2つ以上のステージが互いに依存しているため)。以前のスタイルのIIRのようにランク付けでき、そのステージ自体の以前の出力を参照しない場合、FIRフィルターのステージが他のステージの以前の出力を参照することが可能です。

IIRフィルターのステージをランク付けできる場合、および特定のステージの自己フィードバック係数の合計の大きさが1未満の場合、IIRフィルターは安定していることが保証されます。たとえば、ステージに前のステージからの信号がいくらか含まれ、そのステージの前の値の半分とその前の値の1/4、その前の値の1/8を差し引いた場合、自己の合計振幅フィードバックは7/8になるため、下位ステージからの入力がない場合、自己フィードバックからの寄与の大きさは反復ごとに12.5%減少します。


0

FIRは有限数の要素に対して計算を行い、たとえば32または12またはいくつかの数を考えますが、これは数学が行うことであり、有限数の要素を取り、それらに対してのみフィルターを実行します。

IIRは、供給したすべてのサンプルに対して計算を行います。10個のサンプルを供給して停止すると、10個のサンプルで機能し、1,000,000,000個のサンプルを供給すると、数学は1,000,000,000個のサンプルで動作しました。そして、無限に近づき、無限に近づく(永久に実行させる)場合、要素の数も同様に無限に近づきます。有限という言葉は明らかに他のモデルに当てはまり、IIRモデルは有限数のサンプルを持たないことを目的としているため、有限という反対の言葉である無限は、不明確な言葉や他のそのような言葉よりも優れています。


「1,000,000,000サンプルで操作」。まあ、直接ではありません。出力の一部は次のサンプルの計算に使用されるため、常に前のサンプルのトレースが存在します。フィルターは常に非常に限られた数のサンプルを保持します。そして、それは「不明確」ではありません。不安定な場合でも、確定的です。
stevenvh 2011年

これは、IIRの場合、各サンプルが、それに先行するすべてのサンプルからのいくつかの、しかし小さな影響を持っていることを意味していました。
old_timer

計算における要素の無限数と有限数は、IIRとFIRの違いではありません。最も単純なIIRは、2つのデータ要素(1つは入力、1つは出力)でのみ機能します。
radagast 2013年

無限は、入力の数からではなく、累積されたサイクルの数からのものです。有限は、数学の1つの入力に対してN個のサンプルのみを取得し、無限はすべてのサイクルで効果的に動作します。単一の入力に対する有限サイクル数と無限サイクル数。
old_timer 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.