zoukankan      html  css  js  c++  java
  • 快速傅里叶变换(FFT)时间复杂度

    图:信号在时域上和频域上的直观表示

    1. 计算一维离散傅里叶变换(DFT)公式如下:

    其中,N表示数据长度。由上式可知,DFT的时间复杂度是O(N*N)

    2. 一维FFT的时间复杂度为O(N*logN),其中N表示数据长度

    3. 对于一个M*N的二维数据,FFT的时间复杂度为O( M*N*log(M*N) )

    若M=N,则时间复杂度可以简化为O(N^2*logN)

    4. 对于M维的数据(每一维长度为A,B,C,...),则FFT的时间复杂度为O( A*B*C*...* log(A*B*C*...) )

    若每一维长度相同,即A=B=C=...=N,则时间复杂度可以简化为O(N^M*logN)

    参考文献:

    https://en.wikipedia.org/wiki/Fast_Fourier_transform

    https://stackoverflow.com/questions/6514861/computational-complexity-of-the-fft-in-n-dimensions

    https://stackoverflow.com/questions/12249275/computational-complexity-of-an-n-dimensional-fast-fourier-transform

  • 相关阅读:
    Python学习之路2☞数据类型与变量
    Python学习之路1☞简介及入门代码
    OpenStack组件系列☞horizon搭建
    39
    38
    37
    36
    35
    33
    32
  • 原文地址:https://www.cnblogs.com/hejunlin1992/p/9560254.html
Copyright © 2011-2022 走看看