我知道你现在想的第一件事是“在文档中查找”,但是文档对此不是很清楚。
我使用这个库来获取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和getImaginary的并集,但值却完全不同。 也许getSpectrum的结果是复数值,但它们的表示方式是什么?
我尝试在没有fft_cpx=fft.getSpectrum();
的情况下运行程序,结果似乎正常,但我想知道它是否真的必要,以及getSpectrum()、getReal()和getImaginary()之间有何区别。
文档位于: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()调用的虚部。
谢谢!