понимание преобразования - PullRequest
4 голосов
/ 05 марта 2012

Я хочу сделать fft данных акселерометра с телефона Android. Я выбрал jtransform в качестве библиотеки fft. Теперь мне нужен простой код для понимания jtranform, чтобы написать код для поиска fft из данных акселерометра.Заранее спасибо

1 Ответ

1 голос
/ 30 августа 2012

Поскольку у вас есть реальные данные, вы должны передать эти значения в функцию realForward, как указано здесь . Когда вы передаете массив значений в эту функцию, он возвращает результаты, перезаписывая этот массив коэффициентами 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]
...