私はFFTを実装しようとしています。私がやっていることが正しいかどうか尋ねたいと思います。私はGSL(GNU Science Library)をFFT関数に使用しています。私はFFTのチュートリアルを読んできましたが、私は正しい方向に進んでいることを誰かに確認するよう依頼したいと思います。ここで入力信号を正しく識別するためにFFTを使用しようとしていますか?
は、私は、ウェブ材料を経由して作ってみた方法である:
The input is a list of the amplitudes of a sin wave generated
in audacity at 440Hz (A).
The sample rate is 44100
# FFT points: 1024
誰かがFFTポイント数を選択する方法を説明できますか?それとも全く問題なのか。私はそれを見落としているかもしれませんが、私はこの番号を選択する方法を見つけることができないようです。
編集:このFFTウィンドウの名前を付ける方が適切です。周波数を見つけるために、1024ポイントのサンプルをスライドさせます。 FFTを実行した後
bin size = 44100/1024 = 43.066
、私は、振幅の別のリストを持っており、彼らが何であるかのビンに基づいて、それは、正しい検出された周波数のですか?だから、生成された信号の周波数を見つけるために、私は最高のピークを見つけたいですか?
A bin is defined as a peak if and only if the bin has an amplitude greater than
2 bins to the left and 2 bins to the right.
入力信号の周波数を得るために正しい方法でこの方法はありますか?
FFTウィンドウのサイズは、お客様のニーズに応じて異なります。どれくらい正確にする必要がありますか?ビンが小さくなればなるほどビンはより正確になり、取得するには数が増えます。 – Brad
申し訳ありませんが、私はそれが誰かの声のピッチを認識できるようにする必要があります。リアルタイムで行うことが望ましいと思います。 –