通過帯域とサンプルレートに基づいて、FIR / IIRのおおよそのフィルター順序を計算するための経験則はありますか?学部で一度読んだことを覚えているようです。スケーラー*パスバンド/ストップバンドのような大まかな見積もりができると思います。
さまざまなFIR / IIRフィルターの実装に取り組んでおり、1つの変数が変更された場合、これを示す大まかな式が必要です。は、同様のパフォーマンスを得るのに必要なタップの数です。
コメント
- FIRフィルターの場合' この回答で指定された式。
回答
私のお気に入りの"ローパスFIRフィルターの次数の親指のルール"は"フレッドハリスの親指の法則":
$$ N = \ frac {f_s} {\ Delta f} \ cdot \ frac {\ rm atten_ {dB}} {22} $$
where
- $ \ Delta f $ は、 $ f_s $
- と同じ単位の遷移帯域です。 <スパンc lass = "math-container"> $ f_s $ は、フィルターのサンプルレートです
- $ \ rm atten_ {dB} $ はdB単位のターゲット除去です
たとえば、1kHzでサンプリングされたシステムで100Hzの遷移帯域があり、阻止帯域で50 dBの除去要件がある場合、順序は次のように概算できます。
$$ N = \ frac {1 \ \ rm kHz} {100 \ \ rm Hz} \ cdot \ frac {50} {22} = 23 \ \ rm taps \ tag {rounding up} $$
ありがとうFredHarris!
通過帯域を考慮した別のより詳細な式に注意してくださいリップルは、以下の図に含めたBellLabsのJamesKaiserのおかげで、Kaiserの公式です。
私が行ったほとんどのアプリケーションでは、特定の拒否があったため、FredHarrisのアプローチは問題ありませんでした。 、Parks-McClellanやRemezなどの従来のフィルター設計アルゴリズムを使用して得られたフィルターは、拒否要件を満たしたときに通過帯域リップル要件を超えました。 (私が通常行うことは、次数を推定し、その次数でフィルターを設計し、結果を検査し、そこから次数を増減して微調整することです)。見積もりの結果は次のとおりです。見積もりであり、全体的な設計パラメータによって大きく異なる可能性があり、正確な解決策とは見なされません。
ウィンドウアプローチを使用したフィルター設計に精通している場合は、ボックスカーまたは長方形ウィンドウ(単純な切り捨て)を確認してください。 $ f_s / \ Delta f $ タップが必要な理由を明らかにします(これは $ 2 \ pi / \ Delta \ omegaと同じです) $ 正規化された周波数の単位がラジアン/サンプルの場合(よくあることですが)、遷移帯域を完成させます。これを説明するのに役立つ以下の画像を参照してください。
以下の上の画像は、時間内の矩形ウィンドウの周波数の予想Sincを示しています。この場合、 $ t = 0 $ 。次に、これは、離散時間フーリエ変換(DTFT)と離散フーリエ変換(DFT)の両方を使用して、 $ t = 0 $ で始まる因果波形として離散形式で繰り返されます。ここで、違いは、時間のサンプルがDTFTの $ \ pm \ infty $ に拡張され、周波数領域で連続波形になることです。どちらの場合も、結果は $ f = [0、f_s)$ の間隔で周期的なエイリアスSinc関数であり、重要なポイントは $ N $ は矩形関数の時間のサンプルであり、周波数応答は $ f = 1 / N $ spanで最初のヌルを持ちます。 >( $ f $ は正規化された周波数で、1はサンプリングレートです。
次の画像は、フィルター設計への矩形ウィンドウアプローチを示しています(これはお勧めしませんが、参考になります)。左上隅の最初のプロットは、フィルターのターゲット周波数応答を理想的な"レンガの壁"の応答として示しています。 "ボックスカーウィンドウ"(または"長方形ウィンドウと混同しないでください")これも長方形です-ウィンドウは時間領域にあります!
このようなフィルターを実現するために、FIRフィルターの係数として目的の周波数応答のインパルス応答を使用します(フィルターの係数はインパルス応答です—インパルスを入力しますそして、すべての係数が出てきます!)。長方形の周波数(ブリックウォール)応答のインパルス応答は、時間領域でのSinc関数である逆FTであり、左下隅に"必要なインパルス応答として示されています。 "。 Sinc関数はプラスとマイナスの無限大に拡張されるため、このようなフィルターを実際に実現するには、無限に長いフィルターが必要になり、遅延が無限に長くなります。明らかにそれはできないので、係数を実現可能なものに切り捨てます。フィルターが長いほど、理想的なブリックウォール応答に近づきますが、遅延も長くなります(そして、より多くのリソースが必要になります)。フィルタの構成;より多くのタップ)。
時間領域でのインパルス応答の切り捨ては、時間領域での長方形のウィンドウを乗算することと数学的に同じです(インパルス応答も持続時間の半分だけ遅延することに注意してください)。時間領域での乗算は、周波数領域での畳み込みに相当します。切り捨て前のインパルス応答の周波数領域(FT)は、本来の望ましいブリックウォール周波数応答です。長方形ウィンドウの応答は、周波数領域のSinc関数です。
したがって、目的のインパルス応答を切り捨てる(時間に長方形ウィンドウを掛ける)と、目的の周波数応答を畳み込みます。 eはSinc関数を使用しており、下の画像の右上隅に示すように、ターゲット周波数応答の近似値が得られます。
Sinc関数の一般的な重要なポイントは、最初のnullがであるということです。 $ 1 / T $ ここで、 $ T $ は矩形関数の期間です。サンプルシステムの場合、最初のnullは $ 2 \ pi / N $ になります。ここで、 $ N $ は矩形関数の期間中のサンプル数。画像では、正規化されたラジアン周波数が周波数軸に使用されています-(混乱している場合は、 $ 2 \ pi $ がサンプリングレートのラジアン周波数であることがわかります)。したがって、畳み込みの過程で、鋭いレンガ壁の遷移が広がり、この場合、panの頻度で0( $ \ Delta \ omega $ )になります。 class = “math-container”> $ 2 \ pi / N $ !したがって、ここでは $$ N = 2 \ pi / \ Delta \ omega $$ であり、もちろん、フィルターはサイドローブなどで不十分です。これに注意してください:Sinc関数からのこの遷移与えられた数のタップで利用できる最も鋭いです。周波数の分解能は最高ですが、ダイナミックレンジ(除去)が最も低くなります。他のウィンドウの類型(Blackman、Blackman-harris、Kaiser(私のお気に入り)など)はダイナミックレンジを大幅に改善しますが、常に遷移を犠牲にします。
上記から、の起源がわかります。近似式で使用される$ 2 \ pi / \ Delta \ omega $ 。また、一般的なフィルター設計でこれを超えるタップ数を増やす追加の乗算係数がある理由もわかります。長方形のウィンドウは、 $ N $ タップで可能な限り最良の遷移を提供します。
コメント
- 混乱を避けるために、"カイザー'の式"と呼ぶ式は実際にはパークスマクレラン最適フィルター(実際にはカイザーによって発見された)の公式ですが、カイザーウィンドウ法の公式ではありません。後者は' 2つの異なる$ \ delta $値を持っていませんが、1つしかありません。
- 確かに、カイザーウィンドウメソッドがあるので、マットはよく説明しています。ただし、この式は、"カイザー'の式"と呼ばれています。文学、ちょうどそのため、読者はそれが私自身のその用語の使用であるとは思わない'。 engold.ui.ac.ir/~sabahi/Advanced%20digital%20communication/ …
- すごい!Fred Harris 'の本の48ページから来たようです:"通信システムのマルチレート信号処理"?
- 経験則または写真?写真は私が行うクラスの私のものです。私は' fred 'の本を持っていませんが、私は大ファンであり、彼の"経験則"は、1996年頃に行ったDSP Worldプレゼンテーションでの彼によるものです(彼の名前はすべて小文字で綴ることを主張していることに注意してください)。
li>
回答
FIRフィルターの長さまたはIIRフィルターの次数は、遷移帯域の幅の比率(最も狭いもの)に非常に大まかに反比例します。 、多くの場合)サンプルレートに、非常に短いまたは非常に低次のフィルターを除いて、他のものはある程度同等です。
コメント
- dunno理由誰かが反対票を投じました。私はそれをゼロに戻しました。
- 他のものはある程度同等ですか?
- パスバンドリップルとストップバンド減衰も、フィルター長に影響を与える他の主な要因です。