Android アプリケーションで使用する MATLAB でいくつかの簡単なオーディオ処理アルゴリズムを作成しました。FFT 実装を Java に変換するのに問題があります。
Java バージョンのfftpackを使用しようとしていますが、これは効率的であると報告されていますが、FFT 全般についてしっかりと理解していないためか、少し不可解です。
私は単純に、FFT を表す複素数の対応する配列を生成したい double 配列を持っています。FFT で行う唯一の計算は、その要素の絶対値を取得することです。
わかりやすくするために、Java fftpack を使用して複製したい重要な MATLAB コードを次に示します。
X = fft(myDoubleArray);
abs(X[i]);
これはかなり単純だと思いますが、fftpack へのエントリ ポイントを特定できません。
解決済み:
以下の LutzL からの回答は機能しますが、fftpack は入力として double 配列をサポートするため、Complex1D オブジェクトの作成は実際には不要です。
RealDoubleFFT rdfft = new RealDoubleFFT(myArray.length);
rdfft.ft(myArray);