Я знаю, что первое, что вы делаете, это "искать его внутри документации", проблема в том, что документация не совсем понятна.
Я использую библиотеку для получения БПФ, и я начал с этого краткого руководства: 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 - это сложные значения, но каково их представление?
Я пробовал без этого linecode 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() звоните.
Thank в!