使用Apache commons-maths3-3.6.1.jar包实现快速傅里叶变换(java)

    快速傅里叶变换 (fast Fourier transform), 即利用计算机计算离散傅里叶变换(DFT)的高效、快速计算方法的统称,简称FFT。

 1 package com;
 2 
 3 import org.apache.commons.math3.complex.Complex;
 4 import org.apache.commons.math3.transform.DftNormalization;
 5 import org.apache.commons.math3.transform.FastFourierTransformer;
 6 import org.apache.commons.math3.transform.TransformType;
 7 /*
 8  * @description:快速傅里叶变换
 9  * */
10 
11 public class MathTransform{
12     public static void main(String[] args){
13         //定义输入数据类型,并初始化
14         double[] inputData = null;
15         //定义数组长度
16         int arrayLength = 4 * 1024;
17         inputData = new double[arrayLength]; 
18         for (int index = 0; index < inputData.length; index++){
19             //将经过运算的随机数赋值给inputdata
20             inputData[index] = (Math.random() - 0.5) * 100.0; 
21         } 
22         System.out.println("初始化完成"); 
23         //创建傅里叶方法实例
24         FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD);
25         Complex[] result = fft.transform(inputData, TransformType.FORWARD);
26         //将傅里叶变换前数据和变换后数据打印出来,显示前200
27         for(int i=0;i<200;i++){
28             System.out.print("第"+i+"个变换前数据为:"+inputData[i]+"\t"); 
29             System.out.println("第"+i+"个变换后数据为:"+result[i]); 
30         }
31     }
32 }

猜你喜欢

转载自www.cnblogs.com/xiao02fang/p/9908658.html