4

FFTを使用して周波数を取得するにはどうすればよいですか?正しい手順とコードは何ですか?

4

5 に答える 5

4

通常、ピッチ検出では、パワー スペクトルの高調波間の間隔を測定します。パワー スペクトルは、最初の N/2 ビン (sqrt(re^2 + im^2)) の大きさを取得することにより、FFT から取得されます。ただし、スペクトル ピークの周期性を識別するために、パワー スペクトルの対数の FFT を取るケプストラム分析など、ピッチ検出のためのより高度な手法があります。

于 2010-02-11T14:29:37.787 に答える
3

楽器の持続音は周期信号であり、私たちの友人であるフーリエ (「FFT」の 2 番目の「F」) は、一連の正弦波 (通常、異なる振幅、周波数を持つ) を追加することによって任意の周期信号を構築できることを示しています。 、およびフェーズ)。基音は最も低い周波数成分で、ピッチに対応します。残りの成分は倍音であり、基本周波数の倍数です。音色、つまり楽器の特徴を決定するのは、基音と倍音の相対的な混合です。ユニゾンで演奏するクラリネットとトランペットは、同じ基本周波数を共有しているため「同調」して聞こえますが、音色 (倍音混合) が異なるため、個々に識別できます。

あなたの問題では、時間枠でトランペットをサンプリングし、FFT (サンプルのシーケンスを構成するデジタル周波数に分解する) を計算してから、ピッチが最大振幅のビンの周波数であると断言できます。必要に応じて、E フラットのように、これを最も近い半音にクオンタイズすることもできます。(サンプリング周波数と結果として得られる周波数ビンとの関係を理解し​​ていない場合、またはサンプリング周波数が低すぎることの不利益を理解していない場合は、ウィキペディアで FFT を参照してください。) 基本的なコンポーネントは通常、他のどのコンポーネントよりも大きなエネルギーを持っています。ウィンドウが長いほど、ピッチの精度が高くなります。これは、ビンの中心の周波数間隔が狭くなるためです。でも、

于 2010-02-18T19:04:44.120 に答える
0

これは、 PSD (パワー スペクトル密度) を推定するためのノンパラメトリック手法に関する短いブログ記事と、より詳細なリンクです。これにより、PSD の推定を開始し、ピッチを見つけることができます。

于 2010-02-11T17:38:59.557 に答える
0

ia はこのorg.apache.commons.math.transform.FastFourierTransformeパッケージをプロジェクトに追加し、完全に機能します

于 2011-06-02T21:24:35.977 に答える
0

DansTunerは、この問題を解決するための私のオープン ソース プロジェクトです。実は私はトランペット奏者です。Audacityから持ち上げられたピッチ検出コードがあります。

于 2010-06-11T16:31:19.153 に答える