亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Apache Commons Math3探索之快速傅立葉變換代碼示例

 更新時(shí)間:2017年10月19日 15:30:33   作者:狐帝  
這篇文章主要介紹了Apache Commons Math3探索之快速傅立葉變換代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。

上一篇文章中我們了解了Apache Commons Math3探索之多項(xiàng)式曲線擬合實(shí)現(xiàn)代碼,今天我們就來(lái)看看如何通過(guò)apache commons math3實(shí)現(xiàn)快速傅里葉變換,下面是具體內(nèi)容。

傅立葉變換:org.apache.commons.math3.transform.FastFourierTransformer類。

用法示例代碼:

double inputData = new double[arrayLength]; 
// ... 給inputData賦值 
FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD); 
Complex[] result = fft.transform(inputData, TransformType.FORWARD); 

使用還是非常簡(jiǎn)單的。首先要?jiǎng)?chuàng)建待計(jì)算數(shù)據(jù)的數(shù)組,可以是double類型,亦可是org.apache.commons.math3.complex.Complex類型,然后創(chuàng)建org.apache.commons.math3.transform.FastFourierTransformer對(duì)象實(shí)例,最后調(diào)用其transform方法即可得到存放于復(fù)數(shù)數(shù)組中的傅立葉變換結(jié)果。
完整的示例代碼如下:

import org.apache.commons.math3.transform.DftNormalization; 
import org.apache.commons.math3.transform.FastFourierTransformer; 
import org.apache.commons.math3.transform.TransformType; 
interface TestCase 
{ 
  public Object run(List<Object> params) throws Exception; 
  public List<Object> getParams(); 
} 
class CalcFFT implements TestCase 
{ 
  public CalcFFT() 
  { 
   System.out.print("本算例用于計(jì)算快速傅立葉變換。正在初始化 計(jì)算數(shù)據(jù)(" + arrayLength + "點(diǎn))... ..."); 
   inputData = new double[arrayLength]; 
   for (int index = 0; index < inputData.length; index++) 
   { 
     inputData[index] = (Math.random() - 0.5) * 100.0; 
   } 
   System.out.println("初始化完成"); 
  } 
  @Override 
  public List<Object> getParams() 
  { 
   return null; 
  } 
  @Override 
  public Object run(List<Object> params) throws Exception 
  { 
   FastFourierTransformer fft = new FastFourierTransformer(DftNormalization.STANDARD); 
   Complex[] result = fft.transform(inputData, TransformType.FORWARD); 
   return result; 
  } 
  private double[] inputData = null; 
  private final int arrayLength = 4 * 1024*1024; 
} 
public class TimeCostCalculator 
{ 
  public TimeCostCalculator() 
  { 
  } 
  /** 
  * 計(jì)算指定對(duì)象的運(yùn)行時(shí)間開(kāi)銷。 
  * 
  * @param testCase 指定被測(cè)對(duì)象。 
  * @return 返回sub.run的時(shí)間開(kāi)銷,單位為s。 
  * @throws Exception 
  */ 
  public double calcTimeCost(TestCase testCase) throws Exception 
  { 
   List<Object> params = testCase.getParams(); 
   long startTime = System.nanoTime(); 
   testCase.run(params); 
   long stopTime = System.nanoTime(); 
   System.out.println("start: " + startTime + " / stop: " + stopTime); 
   double timeCost = (stopTime - startTime) * 1.0e-9; 
   //   double timeCost = BigDecimal.valueOf(stopTime - startTime, 9).doubleValue(); 
   return timeCost; 
  } 
  public static void main(String[] args) throws Exception 
  { 
   TimeCostCalculator tcc = new TimeCostCalculator(); 
   double timeCost; 
   System.out.println("--------------------------------------------------------------------------"); 
   timeCost = tcc.calcTimeCost(new CalcFFT()); 
   System.out.println("time cost is: " + timeCost + "s"); 
   System.out.println("--------------------------------------------------------------------------"); 
  } 
} 

在i5四核處理器+16GB內(nèi)存的臺(tái)式機(jī)上,計(jì)算4百萬(wàn)點(diǎn)FFT,耗時(shí)0.7s。還是挺快的。

總結(jié)

以上就是本文關(guān)于Apache Commons Math3探索之快速傅立葉變換代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Apache Commons Math3學(xué)習(xí)之?dāng)?shù)值積分實(shí)例代碼、apache zookeeper使用方法實(shí)例詳解等,有什么問(wèn)題可以隨時(shí)留言,小編會(huì)及時(shí)回復(fù)大家的。最后推薦幾本有關(guān)Java編程方面不錯(cuò)的書籍,免費(fèi)下載,供廣大編程愛(ài)好及工作者參考,提高!

Java Web開(kāi)發(fā)就該這樣學(xué) (王洋著) pdf掃描版

http://chabaoo.cn/books/561375.html

Spring+MyBatis企業(yè)應(yīng)用實(shí)戰(zhàn) 完整pdf掃描版

http://chabaoo.cn/books/560647.html

希望大家喜歡,更多精彩內(nèi)容,就在http://chabaoo.cn/

相關(guān)文章

  • java?webservice超時(shí)時(shí)間設(shè)置方法代碼

    java?webservice超時(shí)時(shí)間設(shè)置方法代碼

    當(dāng)我們使用WebService進(jìn)行調(diào)用時(shí),有時(shí)會(huì)出現(xiàn)超時(shí)的情況,下面這篇文章主要給大家介紹了關(guān)于java?webservice超時(shí)時(shí)間設(shè)置方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 聊聊注解@Aspect的AOP實(shí)現(xiàn)操作

    聊聊注解@Aspect的AOP實(shí)現(xiàn)操作

    這篇文章主要介紹了聊聊注解@Aspect的AOP實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Sleuth(Micrometer)+ZipKin分布式鏈路問(wèn)題小結(jié)

    Sleuth(Micrometer)+ZipKin分布式鏈路問(wèn)題小結(jié)

    在微服務(wù)架構(gòu)中,分布式鏈路追蹤技術(shù)成為了解決系統(tǒng)復(fù)雜調(diào)用問(wèn)題的關(guān)鍵,本文介紹了其他鏈路追蹤方案,如Cat、Pinpoint和Skywalking,展示了分布式鏈路追蹤技術(shù)的多樣化,感興趣的朋友一起看看吧
    2024-10-10
  • Java如何實(shí)現(xiàn)通過(guò)鍵盤輸入一個(gè)數(shù)組

    Java如何實(shí)現(xiàn)通過(guò)鍵盤輸入一個(gè)數(shù)組

    這篇文章主要介紹了Java實(shí)現(xiàn)通過(guò)鍵盤輸入一個(gè)數(shù)組,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java 遞歸重難點(diǎn)分析詳解與練習(xí)

    Java 遞歸重難點(diǎn)分析詳解與練習(xí)

    一說(shuō)起遞歸,我想每個(gè)人都不陌生。舉個(gè)從小就聽(tīng)過(guò)的例子:從前有座山,山里有座廟,廟里有個(gè)和尚,和尚在講故事,從前有座山,山里有座廟,廟里有個(gè)和尚,和尚在講故事,從前有座山,要理解遞歸,就得先了解什么是遞歸,實(shí)際上這句話就是一個(gè)遞歸
    2021-11-11
  • Java核心技術(shù)之反射

    Java核心技術(shù)之反射

    本文非常詳細(xì)的講解了java反射的相關(guān)資料,java反射在現(xiàn)今的使用中很頻繁,希望此文可以幫大家解答疑惑,可以幫助大家理解
    2021-11-11
  • java isPalindrome方法在密碼驗(yàn)證中的應(yīng)用

    java isPalindrome方法在密碼驗(yàn)證中的應(yīng)用

    這篇文章主要為大家介紹了java isPalindrome方法在密碼驗(yàn)證中的簡(jiǎn)單應(yīng)用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Java虛擬機(jī)內(nèi)存區(qū)域劃分詳解

    Java虛擬機(jī)內(nèi)存區(qū)域劃分詳解

    這篇文章主要介紹了Java虛擬機(jī)內(nèi)存區(qū)域劃分,本文邏輯清晰,可以幫助我們更好的掌握虛擬機(jī),對(duì)我們學(xué)習(xí)java來(lái)說(shuō)是一種幫助,需要的朋友可以參考下
    2021-04-04
  • java的if else語(yǔ)句入門指南(推薦)

    java的if else語(yǔ)句入門指南(推薦)

    下面小編就為大家?guī)?lái)一篇java的if else語(yǔ)句入門指南(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • 詳解Java中跳躍表的原理和實(shí)現(xiàn)

    詳解Java中跳躍表的原理和實(shí)現(xiàn)

    跳躍表(Skip list)是有序鏈表的擴(kuò)展,簡(jiǎn)稱跳表,它在原有的有序鏈表上增加了多級(jí)索引,通過(guò)索引來(lái)實(shí)現(xiàn)快速查找,實(shí)質(zhì)上是一種可以進(jìn)行二分查找的有序鏈表。本文主要為大家介紹了跳躍表的原理和實(shí)現(xiàn),需要的可以參考一下
    2022-12-12

最新評(píng)論