【发布时间】:2011-11-30 17:32:03
【问题描述】:
我玩这个已经有一段时间了,我不知道我应该在这里做什么。
我正在将 PCM 音频数据读入 audioData 数组:
recorder.read(audioData,0,bufferSize); //read the PCM audio data into the audioData array
我想使用 Piotr Wendykier 的 JTransform 库对我的 PCM 数据执行 FFT 以获得频率。
import edu.emory.mathcs.jtransforms.fft.DoubleFFT_1D;
目前我有这个:
DoubleFFT_1D fft = new DoubleFFT_1D(1024); // 1024 is size of array
for (int i = 0; i < 1023; i++) {
a[i]= audioData[i];
if (audioData[i] != 0)
Log.v(TAG, "audiodata=" + audioData[i] + " fft= " + a[i]);
}
fft.complexForward(a);
我无法理解如何工作,有人可以给我一些指示吗?之后我需要进行任何计算吗?
我确定我已经走了,任何事情都将不胜感激!
本
【问题讨论】:
-
对不起,我应该说 complexForward 做了什么:计算复杂数据的一维正向 DFT,将结果留在 a。复数按顺序存储为两个双精度值:实部和虚部,即输入数组的大小必须大于或等于 2*n。输入数据的物理布局必须如下:a[2*k] = Re[k], a[2*k+1] = Im[k], 0
-
举个例子……