我在StackOverflow上读到这里各个岗位关于FFT的加速计数据的执行,但没有人帮助我理解我的问题。
我执行此我对加速执行FFT data
以下列方式排列:
int length = data.size();
double[] re = new double[256];
double[] im = new double[256];
for (int i = 0; i < length; i++) {
input[i] = data[i];
}
FFT fft = new FFT(256);
fft.fft(re, im);
float outputData[] = new float[256];
for (int i = 0; i < 128; i++) {
outputData[i] = (float) Math.sqrt(re[i] * re[i]
+ im[i] * im[i]);
}
我绘制的内容outputData
(左)和还使用R键在我的数据执行FFT(右)。
我在做什么错在这里? 我使用相同的代码执行,我在其他地方看到的FFT。
编辑:继@PaulR的意见,以应用窗口的功能,并通过@BjornRoche提供的链接( http://baumdevblog.blogspot.com.br/2010/11/butterworth-lowpass-filter-coefficients.html ),我能够解决我的问题。 解决的办法是差不多就是在那个链接描述。 这是我现在的图形: http://imgur.com/wGs43