impulse 发表于 2010-11-1 22:11

网上找到的一篇FFTW介绍

本帖最后由 impulse 于 2010-11-1 22:11 编辑

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为了加快用户的使用集成速度,提供了三种不同层次的接口。



[*]连续数据的单一变换的基本接口。
[*]计算多重和步进阵列数据的高级接口。
[*]支持通用数据布局、多重和步进的顶级接口。
大部分的用户使用基本接口就可以满足需要,顶级接口需要更小心使用以避免出错,因此需要花更多的时间去理解掌握。FFTW不仅提供了数据自适应,还提供了高级用户定制功能。例如,由于代码空间不足,可以去掉用户不需要的功能代码。相反,FFTW还可以拓展数据结构。

原文:http://www.seedge.com/?p=190


studysea 发表于 2010-11-2 08:56

FFTW官方网址...http://www.fftw.org

VibrationMaster 发表于 2010-11-2 18:53

FFTW==FFT in the west.但是一直不明白"in the west"是什么意思,西方自由世界?

impulse 发表于 2010-11-2 19:16

回复 VibrationMaster 的帖子

我也不明白,看看它的FAQ吧:Not to an Italian. You could say that we're a Spaghetti Western (with apologies to Sergio Leone).
页: [1]
查看完整版本: 网上找到的一篇FFTW介绍