ウィンドウサイズを大きくせずにFFTの周波数分解能を上げることはできますか?


12

マルチピッチ分析にSTFTを使用したいと思います。信号に存在する部分音を検出することはほんの始まりに過ぎないことを理解しています。まだ問題があります。

「CD」周波数でサンプリングされた信号があるとしましょう44100Hz1024サンプルのウィンドウでは、周波数ビンの解像度がになり22500Hz/512=43Hzます。これが唯一のように見分けるの高いピアノのノートには十分です C5 = 523.251HzC#5 = 554.365

1024は以前はかなり大きな窓だと思っていました。しかし、そうではないかもしれませんし、通常、パーシャルを検出するために大きなウィンドウが使用されますか?

ウィンドウサイズを大きくする以外の方法で周波数分解能を上げると、時間分解能が悪くなりますか?私は2つの方法を考えました:

方法1:

  1. バンドパスフィルターを使用して、信号を周波数帯域に分割します(0-11.25Hzおよびなど11.25-22.5Hz)。
  2. 元の高周波数が低周波数になるように、より高い帯域をダウンサンプリングします(2番目の帯域でも同様です11.25-22.5Hz -> 0Hz-22.5Hz)-これが可能かどうかはわかりません。
  3. 結果のビンセットを調整されたラベルで連結します。

方法2:

  1. 制限を増やしながら一連のローパスフィルターを使用します。
  2. 増加する周波数範囲でFFTを実行します。
  3. 各周波数に対して、可能な限り最適な解像度(この周波数が含まれていた最初のFFTからのビン)を使用します。
  4. これにより、低周波数の解像度が向上しますが、音が高いほど周波数の差が大きくなるため、これは問題ないと思います。

この問題についての発言に感謝します。

ここも読んでください: ウィンドウサイズ、サンプルレートはFFTピッチ推定にどのように影響しますか? ピークピッキングの結果を改善する方法について。使ってみようと思います。


正弦成分が1つしかないことがわかっている場合、放物線をピークの隣接ビンに当てはめ、補間して「真の」ピークを見つけることができます。これが@pichenettesによって記述されたフェーズメソッドとどのように比較されるかわかりません。
エンドリス

回答:


9

(時間/周波数のトレードオフに悩まされないパラメトリック法ではなく)FFTの使用を本当に主張している場合、位相情報を使用して各FFTビンの瞬時周波数を回復することにより、はるかに優れた解像度を偽造できます。その後、FFT binインデックスの関数として瞬時周波数を与える関数のプラトーを探すことにより、パーシャルを検出できます。このペーパーで説明されているこの手法の一般的な実装余分なSTFTが1つ「コスト」になります(信号のSTFTおよび信号の微分のSTFTの操作により、瞬時周波数が回復します)。

たとえば、オーディオ信号の正弦波モデリングのこのMatlab実装の ifgram関数を参照してください。

これは、隣接するFFTビンに分類される2つのパーシャルの解決には役立たないことに注意してください。スペクトルピークのFFTビンインデックスを単に周波数に変換するよりもはるかに正確な周波数推定値を提供します。


パラメトリック法とはどういう意味ですか?また、数か月前にFFTに似ているが、均一な周波数スケールではなく、周波数オクターブスケールのアルゴリズムについて言及していましたか?
ジム・クレイ

パラメトリック法は、信号が一連のパラメーターによって記述された特定のプロセスによって生成されることを前提とし、観測からこれらのパラメーターの最小二乗推定値を計算する統計的信号分析法です。たとえば、信号がN個の指数関数的に減衰した正弦波+ノイズの合計であると仮定した場合、ESPRITやMUSICなどのアルゴリズムを使用して、N個の複素振幅と脈動を推測できます。
ピクネット

2
おそらく、定数Q変換を参照しているでしょう。警告は、FFTほど計算上効率的ではないということです。そして、この変換を逆にすることは、重要な最適化の問題です。
ピクネット

@JimClay:たぶん、これはここに移行されるべきですか?
エンドリス

1
パラメトリック手法が時間/周波数のトレードオフに悩まされていないと言うのは、誤解を招きます。基本的に、パラメトリック手法はシステムをモデル化し、モデルを使用して意味のあるデータを抽出します。ただし、パフォーマンスはモデルと同じくらいです。「最適な」モデル(極の数または信号空間の固有ベクトルの数)が選択されていると仮定すると、これらの方法のパフォーマンスは依然としてデータレコード長に非常に敏感です。
ブライアン

2

「解決」という用語には複数の意味があります。一般に、同じウィンドウ長のデータを使用して補間することにより、狭い間隔のスペクトルピークを分離(または「解決」)する能力を高めることはできません。ただし、さまざまな補間法により、FFTビンの間隔よりも細かい解像度(場合によってははるかに細かい解像度)でノイズフロアをはるかに超える孤立した定常スペクトルピークの周波数を推定できます。

より高い解像度の推定のための一般的なFFT結果補間法には、放物線補間、Sinc補間、はるかに長いFFTへのデータのゼロパディング、および(わずかに)オフセット重複ウィンドウを使用する位相ボコーダー法が含まれます。

FFTは基本的にバンドパスフィルターのバンクであり、それぞれが非常に急峻な遷移を持ちますが、指定されたFIRフィルターカーネル長に対して多くの阻止帯域リップルがあります。そのため、これらのフィルターには非周期的なウィンドウ内ノイズの大きなノイズ除去がありません。このタイプの干渉が問題であると思われる場合は、ウィンドウ処理されたFFTまたはカスタムフィルターバンクの方がパフォーマンスが向上する場合があります。


1

Jim Clayの質問とピクネットによるコメントでのさらなる調査の結果、Method2が、KashimaとMont-Reynaudによって記述されたBounded Q-transformを再発明したことがわかりました(この記事にリンクできるかどうかはわかりませんが、ファイルは破れているようです) 。

彼らのアプローチは、最大の周波数範囲から開始し、最低のオクターブに達するまで2ずつ繰り返しダウンサンプリングするため、アルゴリズム的に効率的です。

Q変換の利点も、ブラウンがここで例として検討しまし。単一のFFTほど効率的ではないかもしれませんが、これを必要としない高周波数帯域で厚いFFTを計算しないという利点があります。

すべての回答、コメント、リンクをありがとう。


あなたが説明していることは、ウェーブレット変換に非常によく似ていますが、これはこれによって確認されるようです。これは古い記事ですが、将来の読者はウェーブレットも見たいと思うかもしれません。ただし、私の答えで指摘したように、時間と周波数の不確実性の原則を変更することはできませんが、データに関する知識があると、多少の不正行為が可能になります。
-orodbhen

1

入力の「履歴」を保持し、それを使用してDFTをオーバーラップすると、スペクトルコンテンツを抽出するためのより多くの情報が提供されます。もちろん、それは信号の時間変化する性質に依存します。形は確率分布関数に似ています。

これにより、時間的に近い間隔のDFTが得られます。ただし、自然の法則によって制約される各DFTの時間的不確実性は依然として増大します。時間的挙動とスペクトル的挙動の正確な値を同時に決定することはできません。

ただし、周波数コンテンツがウィンドウ内であまり変化しない場合は、問題ないはずです。

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