Java 试图理解FFT

Java 试图理解FFT,java,audio,fft,Java,Audio,Fft,因此,我正在为自己做一个具有挑战性的项目。我目前正在对一组声音数据运行快速傅立叶变换算法。我使用的算法将复数作为转换后的数据。我需要获取这些信息,并使用它来确定原始阵列中的每个片段的频率 我一直在自学如何编写所有这些录音和分析声音的代码,但我已经到了谷歌似乎帮不了我的地步。如果你对我如何进行有任何想法,我将不胜感激 运行FFT后,可以通过实部和虚部绝对值的平方来获得频率值。(abs(real^2+imag^2)) 现在你们怎么知道这个量值对应的频率值? 例如:如果你运行128点fft,你将得到一

因此,我正在为自己做一个具有挑战性的项目。我目前正在对一组声音数据运行快速傅立叶变换算法。我使用的算法将复数作为转换后的数据。我需要获取这些信息,并使用它来确定原始阵列中的每个片段的频率


我一直在自学如何编写所有这些录音和分析声音的代码,但我已经到了谷歌似乎帮不了我的地步。如果你对我如何进行有任何想法,我将不胜感激

运行FFT后,可以通过实部和虚部绝对值的平方来获得频率值。(abs(real^2+imag^2))

现在你们怎么知道这个量值对应的频率值? 例如:如果你运行128点fft,你将得到一个复数范围,总共128个,范围从0Hz到采样频率(进行fft时的一个参数)。所以每个复数对应一个频率值,以(采样频率/128)的步长递增,从0Hz开始


希望这有帮助

你应该问个问题。你到底在忙什么?谢谢。这正是我想要的。:)