10

あなたが最初に考えているのは「ドキュメントでそれを探す」ことですが、ドキュメントはそれについて明確ではありません。

ライブラリを使用して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()呼び出しの虚数部。

ありがとう!

4

1 に答える 1