我已經在MATLAB中編寫了一些簡單的音頻處理算法,我將用於Android應用程序。我在將FFT實現轉換爲Java時遇到了一些麻煩。Java fftpack的基本使用
我正在嘗試使用Java版本的fftpack,據報道它效率很高,但對我來說也有點神祕,也許是因爲我一般都不太瞭解FFT。
我只是有一個雙數組,我想從中產生一個表示FFT的複數的相應數組。我將在FFT上做的唯一計算是取其元素的絕對值。
爲了清楚起見,這裏是必不可少的MATLAB代碼,我想使用Java fftpack複製:
X = fft(myDoubleArray);
abs(X[i]);
我希望這是相當簡單的,但我不能確定的進入點fftpack。
解決:
的下面從LutzL答案工作原理,但創建Complex1D對象實際上是不必要的,因爲fftpack支持雙數組作爲輸入:
RealDoubleFFT rdfft = new RealDoubleFFT(myArray.length);
rdfft.ft(myArray);
謝謝。這個工作除了fft.ft返回void,並自動改變X.我會很樂意接受你的答案,一旦反映。 – Jayz7522
是的,完成了。在寫回答時,除了實際的通話之外,我改變了其他一切準備通話。 – LutzL