FFTW介绍
1. FFTW介绍
FFTW由麻省理工学院计算机科学实验室超级计算技术组开发的一套离散傅立叶变换(DFT)的计算库,开源、高效和标准C语言编写的代码使其得到了非常广泛的应用,Intel的数学库和Scilib(类似于matlab的科学计算软件)都使用FFTW做FFT计算。
FFTW是计算离散Fourier变换(DFT)的快速C程序的一个完整集合。
l 它可计算一维或多维、实和复数据以及任意规模的DFT;甚至包括正弦/余弦变换和离散哈特莱变换(DHT)。
l FFTW输入数据长度任意。
l FFTW支持任意多维数据。
l FFTW 支持 SSE, SSE2, Altivec,和 MIPS 指令集。
l FFTW还包含对共享和分布式存储系统的并行变换。
FFTW的基本结构:
FFTW不是采用固定算法计算变换,而是根据具体硬件和变换参数来调整使用不同算法,以期达到最佳效果。因此,变换被分成两个阶段。首先,FFTW规划针对目标计算机的最快变换的计算途径,并生成一个包含此信息的数据结构。然后,对输入数据进行变换。该规划可以被多次使用。在一个典型的高性能应用中,总是在执行相同参数条件的任务,因而,相对复杂但结果可被重复使用的初始化是值得的。另一方面,当你需要某一参数的单次变换,初始化就显得过于费时。基于此FFTW提供基于启发式和先例的快速初始化。总的来说,FFTW的一个显著特点就是,对某一参数类型的单次变换优势不大,但对于参数相同的多次变换具有更快的平均速度。
FFTW为了加快用户的使用集成速度,提供了三种不同层次的接口。