2017-06-13 7 views
0

私のオーディオ信号を任意の大きさの同じ大きさのサブバンドにフィルタリングするバンドパスフィルタを作成したいと思います。今私はバターワースフィルタを使ってこれを達成しようとしています(これはこの性質の問題に対する良い解決策ですか?)。バターワースフィルタの理解

信号が1200Hzのサンプリング周波数、したがって600Hzのナイキスト周波数を持っているとします。今私は、この信号をそれぞれ200Hzの長さの3つの異なるサブバンドに分解したいと考えています。これをどのように達成するのですか?

私はドキュメント上に読んで試してみたが、私はまだいくつかの決済を必要とする:私はそれを理解してきたように、私は以下のオーバーロードされたバターを使用したい() - 機能:

butter(#order, [min_freq, max_freq]/nyq_freq) 

ですこれは正しい?最小と最大の周波数は区間(0,1)内になければならないと言います。最初と最後のサブバンドを作るにはどうすればいいですか?任意の小さい/大きな値(0.0001と0.9999)を選択するだけですか? #orderは何をしていますか?より高い次数が信号に対してより正確なカットオフを与えるが、より広範囲の計算を必要とすることは本当ですか?

答えて

0

1は、ナイキスト周波数の半分に対応する0と1の間になければならない文書、Wn

の値によれば サンプルレート又はπラジアン/サンプル

しかしNyquist rateは、基本的にNyquist frequency(あなたがここhttps://dsp.stackexchange.com/questions/26721/difference-between-nyquist-rate-and-nyquist-frequencyを読むことができるよう)

と同じではありませんNyquist rateは帯域幅の2倍です。

次数は、フィルタの結果の多項式の次数です。 n = 1の場合、信号は20dB/decade減衰します。 n = 2の場合、40dB/decadeが減衰します。いくつかの用途では、信号が所定の周波数で所望の値に減衰することができないため、より低次のフィルタは不可能である。理論的には、理論的には、秩序が高ければ高いほど、カットオフはより正確になります(さらに計算が必要になります)が、実際のフィルターでは非常に高次のフィルターを達成するのは難しいでしょう。