快速傅里叶变换 (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 }
‘