ノッチフィルターとGoertzelの違いは何ですか?

私のアプリケーションにトーン検出器を統合したいのですが、GoertzelかNotchの2種類のフィルタの間で混乱しますか? 私はGoertzelがトーン検出に推奨されることを知りました。しかし、Matlabを使ってNotchフィルタを20のオーダーで実装するとどうなりますか?

4

3 答え

Goertzelアルゴリズムを使用すると、DFTを生成するために係数を小さくするために、直接計算(まだ$ \ mathcal {O}(N ^ 2)$)よりもわずかに複雑な信号のDTFTをサンプリングできます。私はそれを2つの点で有利と考えています:

  1. あなたが探している頻度を知っている場合(電話ダイヤルシステム
  2. 少数の周波数しか必要ないので、FFTを計算し、不要なものを捨てることが過度に計算されるようにするには

もちろん、あなたが探している周波数が$ \ frac {2 \ pi} {N} $の倍数ではない場合、$ N $が信号のサポートである場合、FFTはそれをとにかく取得しません(ゼロ埋め込みのトリックにはならない) 。

ノッチフィルタは、よく、フィルタです。その複雑さは簡単です。いくつかのケースでは、インパルスレスポンスを持つことができますが(しかし、小さな集中帯域ではまだシャープです)、検出しようとしている信号が入っている特定の領域のみが存在する場合、これはいくつかの "平均化"を行う良い方法。

興味深いのは、Goertzelのオリジナルペーパーフーリエ解析のアプリケーションに直接言及するのではなく(むしろ、三角測量シリーズをプログラミングしたいと思っている人)、1ページ未満の長さです)

4
追加された

フィルタが信号を通過させます。バンドパスフィルターの出力は、元の信号で、通過範囲外のすべての周波数が減衰しています。

Goertzelアルゴリズムは、DFTの単一のビンに似ています。その出力は、与えられた周波数での信号の振幅だけです。

ノイズや干渉を除去する場合は、フィルターを使用してください。

特定の周波数で信号の振幅を知る必要がある場合は、Goertzelアルゴリズムを使用します。

3
追加された

@axcelenator。 Goertzelフィルタはバンドパスフィルタです。このフィルタの中心周波数がある値を持つとき、GoertzelフィルタはDFTの単一ビン値に等しい最終複素出力値を生成します。いずれの場合も、帯域通過フィルタはある範囲の周波数を通過させ、ノッチフィルタはある周波数範囲を減衰させる。冷凍庫とオーブンのような彼らの行動は反対です!

1
追加された