あなたが最初に考えているのは「ドキュメントでそれを探す」ことですが、ドキュメントはそれについて明確ではありません。
ライブラリを使用してFFTを取得し、次の短いガイドに従いました: http ://www.digiphd.com/android-java-reconstruction-fast-fourier-transform-real-signal-libgdx-fft/
次のものを使用すると、問題が発生します。
fft.forward(array);
fft_cpx=fft.getSpectrum();
tmpi = fft.getImaginaryPart();
tmpr = fft.getRealPart();
「fft_cpx」、「tmpi」、「tmpr」はどちらもフロートベクトルです。マグニチュードの計算には「tmpi」と「tmpr」が使用されますが、「fft_cpx」は使用されなくなりました。
getSpectrum()はgetRealとgetImmaginaryの和集合だと思いましたが、値はすべて異なります。たぶん、getSpectrumからの結果は複雑な値ですが、それらの表現は何ですか?
せずに試しfft_cpx=fft.getSpectrum();
てみましたが、正しく動作しているようですが、実際に必要かどうか、getSpectrum()、getReal()、getImmaginary()の違いは何ですか。
ドキュメントは次の場所にあります:http: //libgdx-android.com/docs/api/com/badlogic/gdx/audio/analysis/FFT.html
public float [] getSpectrum()
戻り値:最後のFourierTransform.forward()呼び出しのスペクトル。
public float [] getRealPart()
戻り値:最後のFourierTransform.forward()呼び出しの実数部。
public float [] getImaginaryPart()
戻り値:最後のFourierTransform.forward()呼び出しの虚数部。
ありがとう!