FFT を実装しようとしていますが、私が行っていることが正しいかどうかを尋ねたいと思います。FFT関数にはGSL(GNU Science Library)を使用しています。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 ポイントスライドさせるためです。
bin size = 44100 / 1024 = 43.066
FFT を実行した後、振幅の別のリストがあり、それらがどのビンにあるかに基づいて、それが検出されている周波数です。正しいですか? 生成された信号の周波数を見つけるために、最高のピークを見つけたいですか?
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.
この方法は、入力信号の周波数を取得するための正しい軌道に乗っていますか?