2012-03-05 59 views
4

我想做一个来自android phone的加速度计数据的fft。我选择了jtransform作为fft库。现在我需要一些简单的代码来理解jtranform来编写代码以从加速度计数据中找到fft。 在此先感谢了解jtransform

回答

1

既然你有真实的数据,你应该将这些值传递给realForward函数here。当您将值数组传递给此函数时,它会通过用FFT系数覆盖此数组来返回结果。

array = new double[arraySize]; 
... 
DoubleFFT_1D dfft = new DoubleFFT_1D(arraySize); 
dfft.realForward(array); 

你也应该考虑到输出同时包含实部和虚部的事实:

如果arraySize是即使在当时

array[2*k] = Re[k], 0 <= k < arraySize/2 
array[2*k+1] = Im[k], 0 < k < arraySize/2 
array[1] = Re[arraySize/2] 

如果arraySize是奇数,则

array[2*k] = Re[k], 0 <= k < (arraySize+1)/2 
array[2*k+1] = Im[k], 0 < k < (arraySize-1)/2 
array[1] = Im[(arraySize-1)/2]