Java 在Libgdx库中使用getSpectrum()

Java 在Libgdx库中使用getSpectrum(),java,android,libgdx,fft,spectrum,Java,Android,Libgdx,Fft,Spectrum,我知道你想到的第一件事是“在文档中查找”,但是文档并不清楚 我使用库获取FFT,并遵循以下简短指南: 当它使用以下各项时,就会出现问题: fft.forward(array); fft_cpx=fft.getSpectrum(); tmpi = fft.getImaginaryPart(); tmpr = fft.getRealPart(); “fft_cpx”、“tmpi”、“tmpr”都是浮点向量。虽然“tmpi”和“tmpr”用于计算震级,“fft_cpx”不再

我知道你想到的第一件事是“在文档中查找”,但是文档并不清楚

我使用库获取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\u cpx=fft.getSpectrum(),它似乎工作正常,但我想知道它是否确实必要,以及getSpectrum()、getReal()和getImmaginary()之间的区别

文件载于:

公共浮点[]getSpectrum()

返回:最后一个FourierTransform.forward()调用的频谱

公共浮点[]getRealPart()

返回:最后一个FourierTransform.forward()调用的实际部分

public float[]getImaginaryPart()

返回:最后一个FourierTransform.forward()的虚部 打电话

谢谢

getSpectrum()返回复数的绝对值

是这样计算的

for (int i = 0; i < spectrum.length; i++) {
    spectrum[i] = (float)Math.sqrt(real[i] * real[i] + imag[i] * imag[i]);
}
for(int i=0;i