Apache Commons Math3探索之快速傅立叶变换代码示例

  

上一篇文章中我们了解了Apache Commons Math4探索之多项式曲线拟合实现代码,今天我们就来看看如何通过Apache Commons Math4实现快速傅里叶变换、下面是具体内容。

  

<强>傅立叶变换:org.apache.commons.math4.transform.FastFourierTransformer类。
  

  

用法示例代码:

        双inputData=https://www.yisu.com/zixun/new双[arrayLength];//鴌nputData赋值   FastFourierTransformer fft=new FastFourierTransformer (DftNormalization.STANDARD);   复杂[]=fft结果。变换(inputData TransformType.FORWARD);之前      

使用还是非常简单的。首先要创建待计算数据的数组,可以是两类型,亦可是org.apache.commons.math4.complex.Complex类型,然后创建org.apache.commons.math4.transform.FastFourierTransformer对象实例,最后调用其变换方法即可得到存放于复数数组中的傅立叶变换结果。
  完整的示例代码如下:

        进口org.apache.commons.math4.transform.DftNormalization;   进口org.apache.commons.math4.transform.FastFourierTransformer;   进口org.apache.commons.math4.transform.TransformType;   接口TestCase   {   公共对象运行(Listparams)抛出异常;   公共ListgetParams ();   }   类CalcFFT实现TestCase   {   公共CalcFFT ()   {   system . out。打印(“本算例用于计算快速傅立叶变换。正在初始化计算数据(+ arrayLength +点)……”);   inputData=https://www.yisu.com/zixun/new双(arrayLength);   for (int指数=0;指数getParams ()   {   返回null;   }   @Override   公共对象运行(Listparams)抛出异常   {   FastFourierTransformer fft=new FastFourierTransformer (DftNormalization.STANDARD);   复杂[]=fft结果。变换(inputData TransformType.FORWARD);   返回结果;   }   私人双inputData=https://www.yisu.com/zixun/null [];   私人最终int arrayLength=4 * 1024 * 1024;   }   公开课TimeCostCalculator   {   公共TimeCostCalculator ()   {   }/* *   *计算指定对象的运行时间开销。   *   * @param testCase指定被测对象。   * @return返回sub.run的时间开销,单位为s。   * @throws例外   */公共双calcTimeCost (TestCase TestCase)抛出异常   {   列表<对象> params=testCase.getParams ();   长时间的开始时间=system . nanotime ();   testCase.run (params);   长stopTime=system . nanotime ();   system . out。println(开始时间”开始:“+ +”/停止:“+ stopTime);   双时间成本=(stopTime -开始时间)* 1.0 e-9;//双时间成本=BigDecimal。返回对象的值(stopTime——开始时间,9).doubleValue ();   返回时间成本;   }   公共静态void main (String [] args)抛出异常   {   太极拳=new TimeCostCalculator TimeCostCalculator ();   双时间成本;   System.out.println (“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -”);   时间成本=移行细胞癌。calcTimeCost(新CalcFFT ());   system . out。println(“时间成本:”+时间成本+“s”);   System.out.println (“- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -”);   }   }      

在i5四核处理器+ 16 gb内存的台式机上,计算4百万点FFT,耗时0.7秒。还是挺快的。

  

  

以上就是本文关于Apache Commons Math4探索之快速傅立叶变换代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:Apache Commons Math4学习之数值积分实例代码,Apache管理员使用方法实例详解等,有什么问题可以随时留的言,小编会及时回复大家的。最后推荐几本有关Java编程方面不错的书籍,免费下载,供广大编程爱好及工作者参考,提高!

  

Java Web开发就该这样学(王洋著)pdf扫描版

  https://www.jb51.net/books/561375.html

  

春+ MyBatis企业应用实战完整pdf扫描版

  https://www.jb51.net/books/560647.html

  

希望大家喜欢,更多精彩内容,就在https://www.jb51.net/

Apache Commons Math3探索之快速傅立叶变换代码示例

Copyright © 2020-2023 feiqueyun.cn. All Rights Reserved. 肥雀云_南京肥雀信息技术有限公司版权所有 南京肥雀信息技术有限公司 苏ICP备16063723号-5