0

std.numeric の fft 関数を使用しています

Complex!double[] resultfft = fft(timeDomainAmplitudeVal);

パラメータ timeDomainAmplitudeVal はオーディオ振幅データです。サンプル レート 44100 Hz で、131072(2^16) 個のサンプルがあります

resultfft が私のプロジェクトに適合しない timeDomainAmplitudeVal(131072) と同じサイズであることを確認しています(これも意味がありません)。FFT を N 個の等間隔の周波数に分割できる必要があります。そして、この N を me で定義する必要があります。

std.numeric.fft でこれを実装する方法はありますか、または fft ライブラリに関するアドバイスはありますか?

Ps: いくつかの DSP ライブラリも存在するかどうか聞いてうれしいです

4

3 に答える 3

1

D で書かれた高速 FFT である pfft を見てみましょう。

http://jerro.github.io/pfft/doc/pfft.pfft.html

またはnumpy&Pyd

http://docs.scipy.org/doc/numpy/reference/routines.fft.html

http://pyd.dsource.org/

HTH

于 2013-09-17T02:58:34.323 に答える
0

これは、FFT が同じデータ長を与えることは絶対に正常です。

ここでは、オーバーラップとオプションの「ゼロ位相」順序付けを使用して Windows FFT 分析を実行する C++ コードをいくつか示します。http://pastebin.com/4YKgbed1


FFT 係数の意味

質問:「わかりました。FFT を実行しました。元の信号を復元できると言われました。さて、これらの係数は何ですか?」

答え:「係数 i は、SR*i/(2*N) から SR*(i+1)/(2*N) までの周波数の位相と振幅を表していると考えることができます。これは役立つ比喩です。しかし、より正確な見解は、係数 i が元の入力チャンクの再構成における周波数 SR*i/(2*N) のサインの寄与であるということです。」

于 2013-09-29T08:44:03.243 に答える