我是靠谱客的博主 细腻烧鹅,最近开发中收集的这篇文章主要介绍数字信号处理(五)快速傅里叶变换FFT的由来基2FFT算法IDFT的快速算法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • FFT的由来
    • 降低运算量的途径
  • 基2FFT算法
    • 时域抽取基2FFT算法
      • 第一次分解
      • 第二次分解
      • 蝶形运算
      • DIT-FFT与直接计算DFT运算量比较
    • 频域抽取基2FFT算法
  • IDFT的快速算法
    • 旋转因子指数变极性法
    • 直接调用FFT子程序:方法1
    • 直接调用FFT子程序:方法2

FFT的由来

DFT的计算量

在这里插入图片描述

因此当N比较大时,计算量太大,所以在快速傅里叶变换出现以前,直接用DFT算法进行谱分析和信号的实时处理是不切实际的

降低运算量的途径

把N点DFT分解为几个较短的DDFT,可使乘法次数大大减少,另外,利用旋转因子 W N m W_N^m WNm周期性对称性可约性来减少DFT的运算次数
W N m + l N = e − j 2 π N ( m + l N ) = e − j 2 π N ( m ) < − 周 期 性 W_N^{m+lN}=e^{-jfrac{2pi}N(m+lN)}=e^{-jfrac{2pi}N(m)}<-周期性 WNm+lN=ejN2π(m+lN)=ejN2π(m)<

W N − m = W N N − m , [ W N N − m ] ∗ = W N m , W N m + N 2 = − W N m < − 对 称 性 W_N^{-m}=W_N^{N-m},[W_N^{N-m}]*=W_N^{m},W_N^{m+frac N2}=-W_N^m<-对称性 WNm=WNNm,[WNNm]=WNm,WNm+2N=WNm<

W N m = W N / n m / n , N / n , m / n 为 整 数 < − 可 约 性 W_N^m=W_{N/n}^{m/n},N/n,m/n为整数<-可约性 WNm=WN/nm/n,N/n,m/n<

基2FFT算法

设序列点数 N = 2 L N=2^L N=2L,L为正整数。若不满足,则补零,使N为2的整数幂的FFT算法称为基-2FFT算法

  • 基2时间抽取DIT-FFT
    x ( n ) − > { x ( 2 r ) x ( 2 r + 1 ) r = 0 , 1 , . . . N 2 − 1 x(n)->begin{cases} x(2r)\x(2r+1) end {cases}r=0,1,...frac N2-1 x(n)>{x(2r)x(2r+1)r=0,1,...2N1

  • 基2频域抽取DIF-FFT
    X ( k ) − > { X ( 2 m ) X ( 2 m + 1 ) m = 0 , 1 , . . . , N 2 − 1 X(k)->begin{cases}X(2m)\X(2m+1) end{cases}m=0,1,...,frac N2-1 X(k)>{X(2m)X(2m+1)m=0,1,...,2N1

时域抽取基2FFT算法

第一次分解

将序列x(n)按n的奇偶分两组
{ x ( 2 r ) = x 1 ( r ) x ( 2 r + 1 ) = x 2 ( r ) r = 0 , 1 , . . . N 2 − 1 begin{cases} x(2r)=x_1(r)\x(2r+1)=x_2(r) end {cases}r=0,1,...frac N2-1 {x(2r)=x1(r)x(2r+1)=x2(r)r=0,1,...2N1
X ( k ) = D F T [ x ( n ) ] = ∑ n = 0 N − 1 x ( n ) W N n k = ∑ n = e v e n x ( n ) W N k n + ∑ n = o d d x ( n ) W N k n X(k)=DFT[x(n)]=sum_{n=0}^{N-1}x(n)W_N^{nk}=sum_{n=even}x(n)W_N^{kn}+sum_{n=odd}x(n)W_N^{kn} X(k)=DFT[x(n)]=n=0N1x(n)WNnk=n=evenx(n)WNkn+n=oddx(n)WNkn

= ∑ r = 0 N 2 − 1 x ( 2 r ) W N 2 k r + ∑ r = 0 N 2 − 1 x ( 2 r + 1 ) W N k ( 2 r + 1 ) =sum_{r=0}^{frac N2-1}x(2r)W_N^{2kr}+sum_{r=0}^{frac N2-1}x(2r+1)W_N^{k(2r+1)} =r=02N1x(2r)WN2kr+r=02N1x(2r+1)WNk(2r+1)

= ∑ r = 0 N 2 − 1 x 1 ( r ) W N 2 k r + W N k ∑ r = 0 N 2 − 1 x 2 ( r ) W N 2 k r =sum_{r=0}^{frac N2-1}x_1(r)W_N^{2kr}+W_N^{k}sum_{r=0}^{frac N2-1}x_2(r)W_N^{2kr} =r=02N1x1(r)WN2kr+WNkr=02N1x2(r)WN2kr

= ∑ r = 0 N 2 − 1 x 1 ( r ) W N 2 k r + W N k ∑ r = 0 N 2 − 1 x 2 ( r ) W N 2 k r =sum_{r=0}^{frac N2-1}x_1(r)W_{frac N2}^{kr}+W_N^{k}sum_{r=0}^{frac N2-1}x_2(r)W_{frac N2}^{kr} =r=02N1x1(r)W2Nkr+WNkr=02N1x2(r)W2Nkr

因为 X 1 ( k ) = ∑ r = 0 N 2 − 1 x 1 ( r ) W N 2 k r = D F T [ x 1 ( r ) ] , X 2 ( k ) = ∑ r = 0 N 2 − 1 x 2 ( r ) W N 2 k r = D F T [ x 2 ( r ) ] X_1(k)=sum_{r=0}^{frac N2-1}x_1(r)W_{frac N2}^{kr}=DFT[x_1(r)],X_2(k)=sum_{r=0}^{frac N2-1}x_2(r)W_{frac N2}^{kr}=DFT[x_2(r)] X1(k)=r=02N1x1(r)W2Nkr=DFT[x1(r)],X2(k)=r=02N1x2(r)W2Nkr=DFT[x2(r)]

所以上式 = X 1 ( k ) + W N k X 2 ( k ) , k = 0 , 1 , . . N / 2 − 1 =X_1(k)+W_N^{k}X_2(k),k=0,1,..N/2-1 =X1(k)+WNkX2(k),k=0,1,..N/21

∵ X ( k ) = X 1 ( k ) + W N k X 2 ( k ) , 0 ≤ k ≤ N − 1 because X(k)=X_1(k)+W_N^{k}X_2(k),0leq kleq N-1 X(k)=X1(k)+WNkX2(k),0kN1

上式只是求出 0 ≤ k ≤ N 2 − 1 0leq kleq frac N2-1 0k2N1时的X(k),即前半部分的X(k),对于 N 2 ≤ k ≤ N frac N2leq kleq N 2NkN如何求?

利用周期性求X(k)的后半部分

∵ X 1 ( k ) , X 2 ( k ) 是 以 N / 2 为 周 期 的 because X_1(k),X_2(k)是以N/2为周期的 X1(k),X2(k)N/2

∴ X 1 ( k + N 2 ) = X 1 ( k ) , X 2 ( k + N 2 ) = X 2 ( k ) therefore X_1(k+frac N2)=X_1(k),X_2(k+frac N2)=X_2(k) X1(k+2N)=X1(k),X2(k+2N)=X2(k)

W N k + N 2 = W N N 2 W N k = − W N k W_N^{k+frac N2}=W_N^{frac N2}W_N^k=-W_N^k WNk+2N=WN2NWNk=WNk,所以后半个序列的求法如下:
X ( k + N / 2 ) = X 1 ( k + N / 2 ) + W N k + N / 2 X 2 ( k + N / 2 ) = X 1 ( k ) − W N k X 2 ( k ) , 0 ≤ k ≤ N 2 − 1 X(k+N/2)=X_1(k+N/2)+W_N^{k+N/2}X_2(k+N/2)=X_1(k)-W_N^kX_2(k),0leq kleq frac N2-1 X(k+N/2)=X1(k+N/2)+WNk+N/2X2(k+N/2)=X1(k)WNkX2(k),0k2N1

第二次分解

X 1 ( k ) = ∑ l = 0 N / 4 − 1 x 1 ( 2 l ) W N / 2 2 k l + ∑ l = 0 N / 4 − 1 x 1 ( 2 l + 1 ) W N / 2 k ( 2 l + 1 ) X_1(k)=sum_{l=0}^{N/4-1}x_1(2l)W_{N/2}^{2kl}+sum_{l=0}^{N/4-1}x_1(2l+1)W_{N/2}^{k(2l+1)} X1(k)=l=0N/41x1(2l)WN/22kl+l=0N/41x1(2l+1)WN/2k(2l+1)

= ∑ l = 0 N / 4 − 1 x 3 ( l ) W N / 4 k l + W N / 2 k ∑ l = 0 N / 4 − 1 x 4 ( l ) W N / 4 k l =sum_{l=0}^{N/4-1}x_3(l)W_{N/4}^{kl}+W_{N/2}^ksum_{l=0}^{N/4-1}x_4(l)W_{N/4}^{kl} =l=0N/41x3(l)WN/4kl+WN/2kl=0N/41x4(l)WN/4kl

= X 3 ( k ) + W N / 2 k X 4 ( k ) , 0 ≤ k ≤ N / 4 − 1 =X_3(k)+W_{N/2}^kX_4(k),0leq kleq N/4-1 =X3(k)+WN/2kX4(k),0kN/41

X 1 ( k ) = X 3 ( k ) + W N / 2 k X 4 ( k ) , 0 ≤ k ≤ N / 4 − 1 X_1(k)=X_3(k)+W_{N/2}^kX_4(k),0leq kleq N/4-1 X1(k)=X3(k)+WN/2kX4(k),0kN/41

X 1 ( k + N / 4 ) = X 3 ( k ) − W N / 2 k X 4 ( k ) , 0 ≤ k ≤ N / 4 − 1 X_1(k+N/4)=X_3(k)-W_{N/2}^kX_4(k),0leq kleq N/4-1 X1(k+N/4)=X3(k)WN/2kX4(k),0kN/41

X 2 ( k ) = X 5 ( k ) + W N / 2 k X 6 ( k ) , 0 ≤ k ≤ N / 4 − 1 X_2(k)=X_5(k)+W_{N/2}^kX_6(k),0leq kleq N/4-1 X2(k)=X5(k)+WN/2kX6(k),0kN/41

X 2 ( k + N / 4 ) = X 5 ( k ) − W N / 2 k X 6 ( k ) , 0 ≤ k ≤ N / 4 − 1 X_2(k+N/4)=X_5(k)-W_{N/2}^kX_6(k),0leq kleq N/4-1 X2(k+N/4)=X5(k)WN/2kX6(k),0kN/41

其中

x 3 ( l ) = x 1 ( 2 l ) , 0 ≤ l ≤ N / 4 − 1 x_3(l)=x_1(2l),0leq lleq N/4-1 x3(l)=x1(2l),0lN/41

x 4 ( l ) = x 1 ( 2 l + 1 ) , 0 ≤ l ≤ N / 4 − 1 x_4(l)=x_1(2l+1),0leq lleq N/4-1 x4(l)=x1(2l+1),0lN/41

X 3 ( k ) = ∑ l = 0 N / 4 − 1 x 3 ( l ) W N / 4 k l = D F T [ x 3 ( l ) ] X_3(k)=sum_{l=0}^{N/4-1}x_3(l)W_{N/4}^{kl}=DFT[x_3(l)] X3(k)=l=0N/41x3(l)WN/4kl=DFT[x3(l)]

X 4 ( k ) = ∑ l = 0 N / 4 − 1 x 4 ( l ) W N / 4 k l = D F T [ x 4 ( l ) ] X_4(k)=sum_{l=0}^{N/4-1}x_4(l)W_{N/4}^{kl}=DFT[x_4(l)] X4(k)=l=0N/41x4(l)WN/4kl=DFT[x4(l)]

x 5 ( l ) = x 2 ( 2 l ) , 0 ≤ l ≤ N / 4 − 1 x_5(l)=x_2(2l),0leq lleq N/4-1 x5(l)=x2(2l),0lN/41

x 6 ( l ) = x 2 ( 2 l + 1 ) , 0 ≤ l ≤ N / 4 − 1 x_6(l)=x_2(2l+1),0leq lleq N/4-1 x6(l)=x2(2l+1),0lN/41

X 5 ( k ) = ∑ l = 0 N / 4 − 1 x 5 ( l ) W N / 4 k l = D F T [ x 5 ( l ) ] X_5(k)=sum_{l=0}^{N/4-1}x_5(l)W_{N/4}^{kl}=DFT[x_5(l)] X5(k)=l=0N/41x5(l)WN/4kl=DFT[x5(l)]

X 6 ( k ) = ∑ l = 0 N / 4 − 1 x 6 ( l ) W N / 4 k l = D F T [ x 6 ( l ) ] X_6(k)=sum_{l=0}^{N/4-1}x_6(l)W_{N/4}^{kl}=DFT[x_6(l)] X6(k)=l=0N/41x6(l)WN/4kl=DFT[x6(l)]

蝶形运算

在这里插入图片描述
⇒ Rightarrow
在这里插入图片描述

蝶形单元需要一次复数乘法两次复数加法

利用蝶形运算得到N=8点时的DIT-FFT运算流图

在这里插入图片描述

分析:N点DIT-FFT包含

M级蝶形运算,每一级包含N/2个蝶形单元

一个蝶形单元需要一次复数乘法,两次复数加法,因此:

C M = M ⋅ N 2 = N 2 l o g 2 N , C A = M ⋅ N 2 × 2 = N l o g 2 N C_M=Mcdot frac N2=frac N2log_2N,C_A=Mcdot frac N2×2=Nlog_2N CM=M2N=2Nlog2N,CA=M2N×2=Nlog2N

DIT-FFT与直接计算DFT运算量比较

直接计算: 需要 N 2 N^2 N2次复数乘法,N(N-1)次复数加法

DIT-FFT { C M = M ⋅ N 2 = N 2 l o g 2 N 复 数 乘 法 C A = M ⋅ N 2 × 2 = N l o g 2 N 复 数 加 法 begin{cases} C_M=Mcdot frac N2=frac N2log_2N&复数乘法\ C_A=Mcdot frac N2×2=Nlog_2N&复数加法 end{cases} {CM=M2N=2Nlog2NCA=M2N×2=Nlog2N

加速: R = N 2 ( N / 2 ) l o g 2 N = 2 N l o g 2 N R=frac {N^2}{(N/2)log_2N}=frac{2N}{log_2N} R=(N/2)log2NN2=log2N2N

MATLAB快速傅里叶变换调用格式: X k = f f t ( x n , N ) Xk=fft(xn,N) Xk=fft(xn,N)

频域抽取基2FFT算法

x(n), N = 2 M N=2^M N=2M,M为正整数

按序列号n的自然排序将x(n)前后对半分

X ( k ) = D F T [ x ( n ) ] = ∑ n = 0 N − 1 x ( n ) W N n k = ∑ n = 0 N / 2 − 1 x ( n ) W N n k + ∑ n = N / 2 N − 1 x ( n ) W N n k X(k)=DFT[x(n)]=sum_{n=0}^{N-1}x(n)W_N^{nk}=sum_{n=0}^{N/2-1}x(n)W_N^{nk}+sum_{n=N/2}^{N-1}x(n)W_N^{nk} X(k)=DFT[x(n)]=n=0N1x(n)WNnk=n=0N/21x(n)WNnk+n=N/2N1x(n)WNnk

= ∑ n = 0 N / 2 − 1 x ( n ) W N n k + ∑ n = 0 N / 2 − 1 x ( n + N 2 ) W N k ( n + N / 2 ) =sum_{n=0}^{N/2-1}x(n)W_N^{nk}+sum_{n=0}^{N/2-1}x(n+frac N2)W_N^{k(n+N/2)} =n=0N/21x(n)WNnk+n=0N/21x(n+2N)WNk(n+N/2)

= ∑ n = 0 N / 2 − 1 [ x ( n ) + W N k N / 2 x ( n + N 2 ) ] W N k n =sum_{n=0}^{N/2-1}[x(n)+W_N^{kN/2}x(n+frac N2)]W_N^{kn} =n=0N/21[x(n)+WNkN/2x(n+2N)]WNkn

∵ W N k N / 2 = e − j 2 π N k N 2 = e − j k π = { 1 k = e v e n ( 偶 数 ) − 1 k = o d d ( 奇 数 ) because W_N^{kN/2}=e^{-jfrac{2pi}Nkfrac N2}=e^{-jkpi}=begin{cases}1&k=even(偶数)\-1&k=odd(奇数)end{cases} WNkN/2=ejN2πk2N=ejkπ={11k=even()k=odd()

∴ X ( k ) = D F T [ x ( n ) ] = { X ( 2 r ) = ∑ n = 0 N / 2 − 1 [ x ( n ) + x ( n + N 2 ) ] ⋅ W N 2 r n k = e v e n X ( 2 r + 1 ) = ∑ n = 0 N / 2 − 1 [ x ( n ) − x ( n + N 2 ) ] ⋅ W N n W N 2 r n k = o d d therefore X(k)=DFT[x(n)]=begin{cases}X(2r)=sum_{n=0}^{N/2-1}[x(n)+x(n+frac N2)]cdot W_N^{2rn}&k=even\X(2r+1)=sum_{n=0}^{N/2-1}[x(n)-x(n+frac N2)]cdot W_N^{n}W_N^{2rn}&k=oddend{cases} X(k)=DFT[x(n)]={X(2r)=n=0N/21[x(n)+x(n+2N)]WN2rnX(2r+1)=n=0N/21[x(n)x(n+2N)]WNnWN2rnk=evenk=odd

{ x 1 ( n ) = x ( n ) + x ( n + N 2 ) x 2 ( n ) = [ x ( n ) − x ( n + N 2 ) ] W N n begin{cases}x_1(n)=x(n)+x(n+frac N2)\x_2(n)=[x(n)-x(n+frac N2)]W_N^nend{cases} {x1(n)=x(n)+x(n+2N)x2(n)=[x(n)x(n+2N)]WNn
∴ X ( k ) = D F T [ x ( n ) ] = { D F T [ x 1 ( n ) ] D F T [ x 2 ( n ) ] = { X ( 2 r ) = ∑ n = 0 N / 2 − 1 x 1 ( n ) ⋅ W N 2 r n k = e v e n X ( 2 r + 1 ) = ∑ n = 0 N / 2 − 1 x 2 ( n ) ⋅ W N 2 r n k = o d d therefore X(k)=DFT[x(n)]=begin{cases}DFT[x_1(n)]\DFT[x_2(n)]end{cases}=begin{cases}X(2r)=sum_{n=0}^{N/2-1}x_1(n)cdot W_N^{2rn}&k=even\X(2r+1)=sum_{n=0}^{N/2-1}x_2(n)cdot W_N^{2rn}&k=oddend{cases} X(k)=DFT[x(n)]={DFT[x1(n)]DFT[x2(n)]={X(2r)=n=0N/21x1(n)WN2rnX(2r+1)=n=0N/21x2(n)WN2rnk=evenk=odd

∴ X ( k ) = D F T [ x ( n ) ] = { D F T [ x 1 ( n ) ] D F T [ x 2 ( n ) ] = { X ( 2 r ) = ∑ n = 0 N / 2 − 1 x 1 ( n ) ⋅ W N / 2 r n = X 1 ( r ) k = e v e n X ( 2 r + 1 ) = ∑ n = 0 N / 2 − 1 x 2 ( n ) ⋅ W N / 2 r n = X 2 ( r ) k = o d d therefore X(k)=DFT[x(n)]=begin{cases}DFT[x_1(n)]\DFT[x_2(n)]end{cases}=begin{cases}X(2r)=sum_{n=0}^{N/2-1}x_1(n)cdot W_{N/2}^{rn}=X_1(r)&k=even\X(2r+1)=sum_{n=0}^{N/2-1}x_2(n)cdot W_{N/2}^{rn}=X_2(r)&k=oddend{cases} X(k)=DFT[x(n)]={DFT[x1(n)]DFT[x2(n)]={X(2r)=n=0N/21x1(n)WN/2rn=X1(r)X(2r+1)=n=0N/21x2(n)WN/2rn=X2(r)k=evenk=odd
在这里插入图片描述
利用蝶形运算得到N=8点时的DIF-FFT运算流图

在这里插入图片描述

运算量: C M = M ⋅ N 2 = N 2 l o g 2 N , C A = M ⋅ N 2 × 2 = N l o g 2 N C_M=Mcdot frac N2=frac N2log_2N,C_A=Mcdot frac N2×2=Nlog_2N CM=M2N=2Nlog2N,CA=M2N×2=Nlog2N

仔细观察基2DIF-FFT运算流图和基2DIT-FFT运算流图会发现,将频域抽取法的运算流图反转,并将输入变输出,输出变输入,正好得到时域抽取法的运算流图

对于实序列进行FFT:把实序列x(n)看作虚部为零的复序列,直接调用fft

IDFT的快速算法

旋转因子指数变极性法

比较DFT和IDFT的运算公式:
X ( k ) = D F T [ x ( n ) ] = ∑ n = 0 N − 1 x ( n ) e − j 2 π N k n , k = 0 , 1 , . . . , N − 1 X(k)=DFT[x(n)]=sum_{n=0}^{N-1}x(n)e^{-jfrac{2pi}Nkn},k=0,1,...,N-1 X(k)=DFT[x(n)]=n=0N1x(n)ejN2πkn,k=0,1,...,N1

x ( n ) = I D F T [ X ( k ) ] = 1 N ∑ k = 0 N − 1 X ( k ) e j 2 π N k n , n = 0 , 1 , . . . , N − 1 x(n)=IDFT[X(k)]=frac1Nsum_{k=0}^{N-1}X(k)e^{jfrac{2pi}Nkn},n=0,1,...,N-1 x(n)=IDFT[X(k)]=N1k=0N1X(k)ejN2πkn,n=0,1,...,N1

所以,如果将基2DIT-FFT或基2DIF-FFT算法中的旋转因子 W N p W_N^p WNp改为 W N − p W_N^{-p} WNp,为X(k)作为输入序列,运算结果乘以1/n,就可以用来快速计算IDFT,得到输出序列x(n)

直接调用FFT子程序:方法1

x ( n ) = 1 N ∑ k = 0 N − 1 X ( k ) W N − k n , 0 ≤ n ≤ N − 1 x(n)=frac 1Nsum_{k=0}^{N-1}X(k)W_N^{-kn},0leq nleq N-1 x(n)=N1k=0N1X(k)WNkn,0nN1

x ∗ ( n ) = 1 N ∑ k = 0 N − 1 X ∗ ( k ) W N k n , 0 ≤ n ≤ N − 1 x^*(n)=frac 1Nsum_{k=0}^{N-1}X^*(k)W_N^{kn},0leq nleq N-1 x(n)=N1k=0N1X(k)WNkn,0nN1

上式两边取共轭得:

x ( n ) = 1 N [ ∑ k = 0 N − 1 X ∗ ( k ) W N k n ] ∗ = 1 N { D F T [ X ∗ ( k ) ] } ∗ , 0 ≤ n ≤ N − 1 x(n)=frac1N[sum_{k=0}^{N-1}X^*(k)W_N^{kn}]^*=frac1N{DFT[X^*(k)]}^*,0leq nleq N-1 x(n)=N1[k=0N1X(k)WNkn]=N1{DFT[X(k)]},0nN1

因此,将X(k)取共轭后得到 X ∗ ( k ) X^*(k) X(k),输入FFT算出 D F T [ X ∗ ( k ) ] DFT[X^*(k)] DFT[X(k)],对其取共轭,再乘以1/N得x(n)

直接调用FFT子程序:方法2

X(k)的DFT g ( n ) = ∑ k = 0 N − 1 X ( k ) W N k n = D F T [ X ( k ) ] , 0 ≤ n ≤ N − 1 g(n)=sum_{k=0}^{N-1}X(k)W_N^{kn}=DFT[X(k)],0leq nleq N-1 g(n)=k=0N1X(k)WNkn=DFT[X(k)],0nN1

根据DFT的时域移位性质得

1 N g ( N − m ) = 1 N ∑ k = 0 N − 1 X ( k ) W N k ( N − n ) = 1 N ∑ k = 0 N − 1 X ( k ) W N k N W N − k n frac 1Ng(N-m)=frac 1Nsum_{k=0}^{N-1}X(k)W_N^{k(N-n)}=frac 1Nsum_{k=0}^{N-1}X(k)W_N^{kN}W_N^{-kn} N1g(Nm)=N1k=0N1X(k)WNk(Nn)=N1k=0N1X(k)WNkNWNkn

= 1 N ∑ k = 0 N − 1 X ( k ) W N − k n = x ( n ) , 0 ≤ n ≤ N − 1 =frac 1Nsum_{k=0}^{N-1}X(k)W_N^{-kn}=x(n),0leq nleq N-1 =N1k=0N1X(k)WNkn=x(n),0nN1

因此, x ( n ) = 1 N g ( N − m ) , 0 ≤ n ≤ N − 1 x(n)=frac 1Ng(N-m),0leq nleq N-1 x(n)=N1g(Nm),0nN1

将X(k)作为FFT的输入,求出g(n),将g(n)进行移位的g(N-m),再乘以1/n,得x(n),即求出X(k)的逆IDFT

最后

以上就是细腻烧鹅为你收集整理的数字信号处理(五)快速傅里叶变换FFT的由来基2FFT算法IDFT的快速算法的全部内容,希望文章能够帮你解决数字信号处理(五)快速傅里叶变换FFT的由来基2FFT算法IDFT的快速算法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部