10+-0.05Hz 前後のサンプリング レート (新しいサンプルを取得するたびに変化) を持つ信号を FFT するために fftw を使用しています。私の入力信号には 200 個のサンプルがあります。100個の複雑な番号の出力を取得しています。ここで、fft の解像度を取得し、evry ビンに対応する周波数を取得するために、これを使用します。
sampFreq = (float)numFrames*1000000/diffT;
a=sampFreq/numFrames; //freq resolution of each fft bin
b=a/2;
freq = a*index + b; // where index is the index of output bin
numFrames は、出力サイズではなく、fft (200) への初期入力サイズです。私はそれを正しくやっていますか、それとも2の係数がありませんか? また、この場合にウィンドウ処理を使用する必要がありますか (~10Hz および 200 フレームでのサンプリングのように)
また、fftw のドキュメントによると、サンプルは必ずしも 2 だけではなく、より小さな素数の倍数である可能性があるため、信号をゼロでパディングしていないことに注意してください。