我尝试对长度为 4000 的输入信号进行 FFT。我的 java 代码如下:
Vector<Double> signal = readFile("signal.txt");
double[] input = new double[signal.size()];
for(int i=0; i<signal.size(); i++) {
input[i] = signal.get(i);
}
DoubleFFT_1D fftDo = new DoubleFFT_1D(input.length);
double[] fft = new double[input.length * 2];
System.arraycopy(input, 0, fft, 0, input.length);
fftDo.realForwardFull(fft);
for(int i=0; i<6; i=i+2) {
System.out.println(fft[i] + "\t" + fft[i+1]);
}
除了第一个组件外,输出与 Matlab 的 FFT 中给出的答案相匹配。
有谁知道这是什么原因?