-1

我想对 Mp3 文件进行傅里叶变换。为此,我首先使用该文件读取该文件AudioInputStream,然后将其转换为所需的音频格式,

AudioFormat decodedFormat = newAudioFormat(AudioFormat.Encoding.PCM_SIGNED,
        baseFormat.getSampleRate(), 16, baseFormat.getChannels(),
        baseFormat.getChannels() * 2, baseFormat.getSampleRate(), false);

它给了我一个非常大的数组字节。现在将此字节数组分成小块(4096 字节)并将其传递给傅立叶变换函数并继续整个数组。这个过程减慢了我的系统。处理一首 mp3 歌曲需要 15 分钟。那么我该如何解决这个问题呢?我正在将此代码用于傅里叶变换 - http://introcs.cs.princeton.edu/java/97data/FFT.java.html

4

1 回答 1

1

如果需要 900 秒(15 分钟)来生成 9000 个具有 4k 点的 FFT(即每个 FFT 100 毫秒),那么您的 FFT 实现就被破坏了。

您需要找到(更)更有效的 FFT 实现。

于 2013-03-05T21:03:17.830 回答