それはどんなフィルターですか?IIRですか?


9

私は次の質問に答えようとしています:

システムは方程式で記述されていますか:

y[n]=0.5y[n1]+x[n]0.5x[n1]

IIRのフィルター?私の答えはイエスです。

ありがとうございました


1
"Truncated IIR"(TIIR)フィルターと呼ばれるFIRフィルターのクラスがあります。あなたはそれをググることができ、ジュリアス・スミスとエイブリー・ワンからのものを見つけるでしょう。TIIRフィルターのもう1つの例は、移動和フィルターまたは移動平均フィルターまたはCICフィルターです(すべて同じものに対してかなり異なる名前です)。この再帰的フィルターをFIRにするのは、極-零点相殺です。実装されているように、内部極があり、それらが不安定である場合、フィルターは内部で爆破する可能性がありますが、数値の制限を超えるまで出力に表示されません。
ロバートブリストウジョンソン、2015

1
数値制限は何ですか?
ブラックヤスミン、

数値タイプ(floatまたはfixed)とワード幅に依存します。このようなものを調べることができます。IEEE-754フロート用(例えば、固定のために、それがどのように多くのビットに依存する。、バイナリポイントの左され、おおよそ。nI±2nI1
ロバート・ブリストウ-ジョンソン

再びすべての助けに感謝します!それは私が、私はこのウェブサイト見つけ嬉しいたくさん助け
ブラックヤスミン

2
@AnthonyParks:あなたはこう言います: " なぜ人々はこれを複雑にしているのですか。フィルターの最初の項にフィードバック部分があるので、これは明らかにIIRです "?「なぜ人々はDSPの基本的な概念をわざわざ理解しないのですかと私は言う。IIRフィルターは常に再帰形式を意味しますが、FIRは必ずしもフィルターが非再帰的であることを意味しません。それが唯一の正解であり、ここで概念を混乱させています。それが試験問題だったとしたら、それはIIRだと言って失敗するでしょう。オッペンハイムはこのトピックをDSPに関する本で説明しています。
jojek

回答:


18

これはFIRフィルターですが、IIRのように見えます。係数を計算すると、有限インパルス応答が得られます。

h=[1]

これは、零点-極相殺により発生します。

Y(z)0.5Y(z)z1=X(z)0.5X(z)z1

H(z)=Y(z)X(z)=10.5z110.5z1=1

はい、トリッキーになる可能性があります。見 LCCDE(線形定係数差分方程式)の係数は、必ずしもそれがIIRフィルタの意味するものではありません。それは単なる再帰的なFIRフィルターかもしれません。y[nk]


1
認識ありがとうございます!係数を注意深く検討せずに、IIRと言うのはだまされていました...答えを削除しました。
Fat32、2015

それでも、最初に述べたように方程式を実装すると、有限の語長効果のため、H(z)= 1として正確に動作しません(この場合、極-零点の相殺は正確ですが)。
オスカー

それは本当の@オスカーですが、これらはF / IIRであるフィルターとは何の関係もない数値的な問題です。
jojek

1
@jojek:もちろんあなたは完全に正しいです。ただし、再帰FIRフィルターを使用すると、これらのこと(多くの「高品質」の研究者でさえも)を知らない場合、かなりの問題が発生します。したがって、私のコメント。理想的には、アルゴリズムと伝達関数についても議論する必要があります。
オスカー

jojek私はあなたが答えたこの質問からあなたの答えを読んでいますが、コメントできません。dsp.stackexchange.com/questions/17605/…別のウィンドウを使用できますか?
ブラックヤスミン、

14

Jojekの答えはもちろん正しいです。「IIR」と「再帰的」という用語が混同されていることが多すぎるので、もう少し情報を追加したいと思います。次の影響が常に当てはまります。

IIRrecursivenon-recursiveFIR

つまり、すべてのIIRフィルター(つまり、無限に長いインパルス応答を持つ離散時間フィルター)は再帰的に実装する必要があり(無限のメモリが利用できない場合)、すべての非再帰的LTIシステムには有限のインパルス応答があります(無限の場合を除き、メモリ)。

ただし、その逆は一般的には当てはまりません。問題の例のように、再帰フィルターは有限インパルス応答を持つことができます。もう1つの有名な例は、移動平均フィルターです。これは移動平均(必ずしもFIR)の非再帰的な実装です。

y[n]=1Nk=nN+1nx[k]

そして、これは同じフィルター(FIRも)の再帰的な実装です:

y[n]=y[n1]+1N(x[n]x[nN])

1
いつものように簡潔で正確です。+ 1;)MAケースを提示していただきありがとうございます。
jojek

1
@jojek:ええ、それは誰もが知っておくべき古典だと思います。
マットL.

そして、私は主にjojekの回答へのコメントで丸めノイズを考えていましたが、MAの場合、オーバーフローは潜在的に問題になるので、慎重に検討する必要があります。ただし、2の補数演算と十分な語長によって簡単に解決されます。
オスカー

1
@オスカー:まあ、2倍の浮動小数点精度で非常に単純な分析を行った後、8.881784197001252e-16のエラーが発生しました。これは、サンプリング周波数44.1kHzで1年間のオーディオに相当するものを処理した後です。入力データは正規化された分布を持つガウスノイズです。これは結果を再現するためのコードです!クリック!(実行には3日かかる場合があります)。これを提供することは正しいので、心配することは何もないと思います。
jojek

1
@jojek:3つのこと。1)元の質問のフィルターではなく、回答の移動平均フィルターを参照していました。2)はい、それはオーディオでは問題ありません(ただし正確ではないため、「いいえ」を太字にする理由はありません)が、私は安全上重要な信号処理が合成特性を持つ入力信号とは独立して機能することを好みます。3)興味深いのは、シミュレーションしたフィルターには、私が説明した問題はありません(極はその上ではなく単位円の内側にあるため)が、表現に関係なく常に丸め誤差が発生することです(これは回避できます)。移動平均の場合)。
オスカー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.