0

ボリューム定義の頻度が期待どおりでない理由がわかりません。

いくつかの指定された周波数で順番にマイクにサウンドを送信します。次に、マイクバッファーのFFTを実行します。FFTの終了時に、複素数の配列があります。定義された周波数での音量を知るために、配列を調べます。この配列の要素数は、次のように取得します。

MyFrequency = n*SamplingRate/SizeOfArray.

次に、複素数の大きさを取得します

(sqrt(Re^2+Im^2)

私が正しければ、これはこの周波数での音量を示しています。ただし、この値は周波数に応じて大きく変化します。私が間違っている場合は、間違いを訂正するために何をする必要があるかを説明してください。私が正しければ、なぜこの値が大きく変わるのか説明してください。

4

1 に答える 1

1

FFTの前にウィンドウ関数を適用していますか?そうでない場合は、スペクトル漏れの影響が見られ、元の周波数がサンプルレートの正確な約数である場合にのみ、任意のFFTビンでの大きさが正しくなります。

于 2012-11-06T09:59:58.823 に答える