非常に狭いフィルターを設計するにはどうすればよいですか?


15

Hzでサンプリングされたオーディオ信号があり、60 Hz 以下のすべてを分離するローパスフィルターを設計したいとします。デジタルの世界では、これは、通過帯域を有するローパスフィルタです[ - π4800060。また、遷移帯域も同様に合理的でなければなりません。このためにFIRフィルターを構築すると、長期的には精度に影響する多くのタップが発生する可能性があります。IIRフィルターは、オーディオがフィルターの非線形位相応答の影響を受けるため、あまり理想的ではありません。そのため、信号をフィルター処理し、次に反転してフィルター処理しない限り、実際にはオプションではありません。[π400π400]

これで、ウェーブレット変換は、1回限りの通常のフィルタリングよりも優れているでしょうか?


間引きしたくない理由はありますか?
Loremのイプサム

いいえ、私が欲しいものを手に入れる限り、間引きは問題ありません。
フォノン

1
「合理的な」遷移帯域とは何ですか?これにより、フィルターの順序が決まります。たとえば、ストップバンドが300 Hzで始まる場合、おそらくかなり良い状態です。60.1 Hzのようなもので高い減衰が必要な場合は、長くなります。長いFIRフィルタは、必ずしも悪いというわけではないです
ジェイソン・R

5
実際のフィルター仕様が必要です。それ以外の場合、質問は無意味です。状態等に許容される通過帯域リップル、阻止帯域拒絶、遷移域の幅が、
ポールR

理にかなっています。しましょう。
フォノン

回答:


20

エンジニアリング時間の最適化を行っており、大きなFFTを十分にサポートしている(つまり固定小数点ではない)プラットフォームを使用している場合は、hotpaw2のアドバイスを受けて高速畳み込みを使用してください。単純なFIR実装よりもはるかに優れたパフォーマンスを発揮し、実装も比較的簡単です。

一方、最適な実装を実現するためにこれに費やす時間がある場合、または固定小数点プラットフォーム上にいる場合は、マルチレートダウンフィルター-アップ-減算構造を使用する必要があります。しかし、すべてを正しくするのは少し難しいです。

高速畳み込みツールとマルチレートフィルタリングツールの両方の信頼できる高度に最適化された実装にアクセスできます。高速畳み込みは、マルチレート構造と比較して同等の信号性能を得るために約3倍長くかかります。さらに、それは浮動小数点プラットフォームでも可能です。ギャップは、固定小数点dspで大幅に広がります。

一般的に:

ダウンコンバージョン:

8段のハーフバンド、2進フィルタを使用して、48kHz信号を187.5 Hz信号に変換します。このダウンサンプリングの最初の段階は、非常に広い遷移帯域を持つことができ、60 Hz未満の範囲に戻ってエイリアシングしない限り、エネルギーをエイリアシングできます。ステージが進むにつれて、タップの数を増やす必要がありますが、それらは徐々に低いサンプリングレートで適用されるため、各ステージの全体的なコストは小さいままです。

フィルタリング:

最終的に減算するエネルギーを維持するために、60 Hz帯域幅でタイトなフィルタリングを実行します。低レートで厳密なフィルタリングを行うことには、二重の利点があります。

  1. 1Hzの遷移帯域幅は、低レートでのデジタル周波数と元のレートで256倍です。したがって、フィルターのすべてのタップは256倍強力です。
  2. 信号自体のレートは低いため、フィルターは1/256のデータのみを処理する必要があります。

アップコンバージョン:

本質的に、これは間引き段階の逆です。8つの補間ステージのそれぞれは、連続する入力サンプル間を移動するサンプルを推定することにより、レートを2倍にします。サンプルレートが高くなると、遷移帯域が広くなります。

減算:

元の信号からフルレートローパスフィルター処理された信号を減算します。すべての群遅延を適切に調整すると、全体の構造は遷移帯域幅が狭いハイパスフィルターになります。


これは素晴らしい答えです。この投稿についてコメントをいただけますか?dsp.stackexchange.com/questions/29655/…
richieqianle

6

レイテンシーと計算パフォーマンスの制約に適合する最長のFFT / IFFTを備えたオーバーラップ加算/保存畳み込みフィルターを試してください。このメソッドをさらに長いFFTで使用すると、非常に長いFIRフィルターを設計できます。

1つの非常に長いFFT + IFFT(dcacheまたはRAMに収まらない長いベクトル用の特別なFFTアルゴリズムがあります)で曲全体またはオーディオ信号ファイル全体をFFTできる場合、何もする必要はありません重複追加/保存処理、および非常に狭い遷移帯域を得ることができます。


4

FIRとIIRの2つの選択肢があります。すでに述べたように、FIRは非常に長い(1000タップ)インパルス応答を必要とし、メモリ、MIPSとレイテンシの点で高価であり、オーバーラップ加算/保存が最も効率的な選択です。ただし、遅延は実際の問題になる可能性があります。これをホームシアターサブウーファーのハイパスとして使用する場合、レイテンシが非常に高くなるため、ビデオとのリップシンクが失われます。

IIRは数桁も安価であるため、頻繁に使用されます。それは確かに非平坦な位相応答を持っていますが、多くの場合、これは問題ではないか、回避することができます。たとえば、低音ボックスのドライバーを保護するためにハイパスフィルターが必要な場合、システム全体の位相応答はドライバー、エンクロージャー、室内の音響によって支配されるため、位相応答はそれほど重要ではありません。ここでは、フィルターは小さな役割しか果たしません。多くの場合、絶対フェーズではなく「相対」フェーズを維持する必要もあります。信号Aにハイパスを適用し、信号Bには適用しない場合、AとBの相対位相が同じままになるように、信号Bに一致するオールパスを単純に配置できます。このアプローチの全体的なレイテンシとグループ遅延は、FIRメソッドの場合よりもはるかに小さくなっています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.