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