首页 > 编程语言 >FFTW 最快的FFT 快速傅里叶算法实现

FFTW 最快的FFT 快速傅里叶算法实现

时间:2024-04-01 14:56:33浏览次数:22  
标签:FFTW FFT transform discrete transforms 傅里叶 3.3

FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST). We believe that FFTW, which is free software, should become the FFT library of choice for most applications.

The latest official release of FFTW is version 3.3.10, available from our download page. Version 3.3 introduced support for the AVX x86 extensions, a distributed-memory implementation on top of MPI, and a Fortran 2003 API. Version 3.3.1 introduced support for the ARM Neon extensions. See the release notes for more information.

The FFTW package was developed at MIT by Matteo Frigo and Steven G. Johnson.

Our benchmarks, performed on on a variety of platforms, show that FFTW's performance is typically superior to that of other publicly available FFT software, and is even competitive with vendor-tuned codes. In contrast to vendor-tuned codes, however, FFTW's performance is portable: the same program will perform well on most architectures without modification. Hence the name, "FFTW," which stands for the somewhat whimsical title of "Fastest Fourier Transform in the West."

 

FFTW 3.3.10 is the latest official version of FFTW (refer to the release notes to find out what is new). Here is a list of some of FFTW's more interesting features:

  • Speed. (Supports SSE/SSE2/Altivec, since version 3.0. Version 3.3.1 supports AVX and ARM Neon.)
  • Both one-dimensional and multi-dimensional transforms.
  • Arbitrary-size transforms. (Sizes with small prime factors are best, but FFTW uses O(N log N) algorithms even for prime sizes.)
  • Fast transforms of purely real input or output data.
  • Transforms of real even/odd data: the discrete cosine transform (DCT) and the discrete sine transform (DST), types I-IV. (Version 3.0 or later.)
  • Efficient handling of multiple, strided transforms. (This lets you do things like transform multiple arrays at once, transform one dimension of a multi-dimensional array, or transform one field of a multi-component array.)
  • Parallel transforms: parallelized code for platforms with SMP machines with some flavor of threads (e.g. POSIX) or OpenMP. An MPI version for distributed-memory transforms is also available in FFTW 3.3.
  • Portable to any platform with a C compiler.
  • Documentation in HTML and other formats.
  • Both C and Fortran interfaces.
  • Free software, released under the GNU General Public License (GPL, see FFTW license). (Non-free licenses may also be purchased from MIT, for users who do not want their programs protected by the GPL. Contact us for details.) (See also the FAQ.)

If you are still using FFTW 2.x, please note that FFTW 2.x was last updated in 1999 and it is obsolete. Please upgrade to FFTW 3.x. The API of FFTW 3.x is incompatible with that of FFTW 2.x, for reasons of performance and generality (see the FAQ or the manual).

标签:FFTW,FFT,transform,discrete,transforms,傅里叶,3.3
From: https://www.cnblogs.com/yanghonker/p/18108392

相关文章

  • 网上的一个用C语言实现FFT算法
     用C语言实现FFT算法/*****************fftprograme*********************/#include"typedef.h"#include"math.h"structcompxEE(structcompxb1,structcompxb2){structcompxb3;b3.real=b1.real*b2.real-b1.imag*b2.imag;b3.imag=b1.real*b2.imag+b1.imag*b2.real;......
  • 基于傅里叶描述子和HSV颜色特征的KNN水果类型识别,Matlab实现
           博主简介:专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188)       个人主页:Matlab_ImagePro-CSDN博客       原则:代码均由本人编写完成,非中介,提供有偿Matlab算法代码编程服务,不从事不违反涉及学术原则......
  • 基于GD32F303,CMSIS-DSP支持包,实现FFT,得到频率,还原单一频率的波形
        一般情况下M33M4的内核是支持DSP包的,用户只需要自己添加支持包,并添加相应的头文件即可,比如#include"arm_math.h",#include"arm_const_structs.h"等等。(1)main.c#include"gd32f30x.h"#include"stdio.h"#include"string.h"#include"arm_......
  • DSTFT-STFT 离散短时傅里叶变换-短时傅里叶变换 详细解析
    目录STFT基本原理数学表达式STFT的数学定义STFT组件的理解时间-频率分辨率的权衡窗函数窗函数的作用常见的窗函数窗函数的选择DSTFT基本概念数学表达式DSTFT各组件的理解时间-频率分辨率权衡COLA条件COLA条件的基本定义数学表达重要性1.减少信息丢失2.......
  • s2fft库介绍:可微分和加速球谐变换
    一、说明        科学和工程的许多领域都会遇到在球体上定义的数据。对此类数据进行建模和分析通常需要傅里叶变换的球面对应物,即球面谐波变换。我们简要概述了球谐变换,并提出了一种新的可微分算法,该算法专为GPU上的加速而定制[1]。该算法在最近......
  • FFT
    这东西对初中生挺友好的。引入设\(F(x)=\sum_{i=0}^n{a_ix^i},G(x)=\sum_{i=0}^m{b_i}x^i\)。显然,如果要求这两个多项式的积,需要\(\mathcalO(n^2)\)的复杂度。但\(\text{FFT}\)能通过\(\mathcalO(n\logn)\)的复杂度求出。前置知识复数形如\(z=a+bi(a,b\in\m......
  • 傅里叶变换算法和Python代码实现
    傅立叶变换是物理学家、数学家、工程师和计算机科学家常用的最有用的工具之一。本篇文章我们将使用Python来实现一个连续函数的傅立叶变换。我们使用以下定义来表示傅立叶变换及其逆变换。设f:ℝ→ℂ是一个既可积又可平方积分的复值函数。那么它的傅立叶变换,记为f̂,是由以......
  • 小波分析及分数傅里叶变换(1)
    去年在MasterClass上了一门陶哲轩的入门数学课,在某个瞬间突然get到数学的优美和逻辑性。恰好同事是数学系的,在同一个小组,由此与他有了更多的交流,于是开始慢慢看数学相关的课程,他推荐了中科大史济怀老师的《数学分析》以及哈工大冉启文老师的《小波分析及分数傅里叶变换》。最近在......
  • 快速傅里叶变换
    FFT问题:设\(A(x)=\sum_{i=0}^na_ix^i\),\(B(x)=\sum_{i=0}^mb_ix^i\)。求\(A(x)\)和\(B(x)\)的卷积。有一个结论:坐标系中\(n\)个点确定一个\(n-1\)次函数。可以这样理解:\(n-1\)次函数有\(n\)个系数,而\(n\)个点相当于\(n\)个方程。于是我们可以换一种思路求......
  • [AH2017HNOI2017] 礼物(fft)
    [AH2017/HNOI2017]礼物(fft)题目描述我的室友最近喜欢上了一个可爱的小女生。马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她。每个手环上各有\(n\)个装饰物,并且每个装饰物都有一定的亮度。但是在她生日的前一天,我的室友突然发现他好像拿错了一个手环,而且......