マルチピッチ分析にSTFTを使用したいと思います。信号に存在する部分音を検出することはほんの始まりに過ぎないことを理解しています。まだ問題があります。
「CD」周波数でサンプリングされた信号があるとしましょう44100Hz
。1024
サンプルのウィンドウでは、周波数ビンの解像度がになり22500Hz/512=43Hz
ます。これが唯一のように見分けるの高いピアノのノートには十分です
C5 = 523.251Hz
とC#5 = 554.365
。
私1024
は以前はかなり大きな窓だと思っていました。しかし、そうではないかもしれませんし、通常、パーシャルを検出するために大きなウィンドウが使用されますか?
ウィンドウサイズを大きくする以外の方法で周波数分解能を上げると、時間分解能が悪くなりますか?私は2つの方法を考えました:
方法1:
- バンドパスフィルターを使用して、信号を周波数帯域に分割します(
0-11.25Hz
およびなど11.25-22.5Hz
)。 - 元の高周波数が低周波数になるように、より高い帯域をダウンサンプリングします(2番目の帯域でも同様です
11.25-22.5Hz -> 0Hz-22.5Hz
)-これが可能かどうかはわかりません。 - 結果のビンセットを調整されたラベルで連結します。
方法2:
- 制限を増やしながら一連のローパスフィルターを使用します。
- 増加する周波数範囲でFFTを実行します。
- 各周波数に対して、可能な限り最適な解像度(この周波数が含まれていた最初のFFTからのビン)を使用します。
- これにより、低周波数の解像度が向上しますが、音が高いほど周波数の差が大きくなるため、これは問題ないと思います。
この問題についての発言に感謝します。
ここも読んでください: ウィンドウサイズ、サンプルレートはFFTピッチ推定にどのように影響しますか? ピークピッキングの結果を改善する方法について。使ってみようと思います。