FFT结果解释

时间:2017-01-11 09:39:21

标签: java fft frequency-domain

我正在开发一款能够识别人类活动的Android应用程序。我正在使用Apache Commons来计算我的时域功能。现在,我想使用库的快速傅立叶变换方法将我的时域数据(原始xyz值)从加速度计转换到频域。我不知道如何解释结果。我是否正确将结果解释为对应于每个频率的X值(例如)的每个频率的bin?

这是我的代码:

public class MyFFT {

public static void computeFFT(double[] input) {
    FastFourierTransformer transformer = new FastFourierTransformer(DftNormalization.STANDARD);
    Complex[] complexResults = transformer.transform(input, TransformType.FORWARD);

    for(Complex c:complexResults){
        System.out.println(c.getReal());
    }
    System.out.println(complexResults.toString());
}
}

及其用法:

public class main {

public static void main(String[] args) {
    double[] xValues = new double[]{0.5,1.5,1.2,0.5,0.8,1.5,1.9,2.9};

    MyFFT.computeFFT(xValues);
}
}

输出:

10.8
1.3970562748477138
-1.7999999999999998
-1.9970562748477145
-2.0
-1.9970562748477139
-1.7999999999999998
 1.3970562748477144

0 个答案:

没有答案