使用FFT来计算IFFT
使用FFT来计算IFFT公式DFT与IDFTDFT公式iDFT公式DFT计算iDFT公式推导FFT是DFT的一种快读计算方式,本质上的计算逻辑是一样的,所以下面使用DFT来讨论公式,应用于FFT是一样的公式DFT与IDFTDFT公式Xk=∑n=0N−1e−i2πNknxn,k∈{0,1,...N−1}X_k = \sum_{n=0}^{N-1}e^{-i\frac{2\pi}{N}kn}x_n ,
FFT是DFT的一种快读计算方式,本质上的计算逻辑是一样的,所以下面使用DFT来讨论公式,应用于FFT是一样的
公式
DFT与IDFT
DFT公式
X k = ∑ n = 0 N − 1 e − i 2 π N k n x n , k ∈ { 0 , 1 , . . . N − 1 } X_k = \sum_{n=0}^{N-1}e^{-i\frac{2\pi}{N}kn}x_n , k\in \{0,1,... N-1\} Xk=n=0∑N−1e−iN2πknxn,k∈{0,1,...N−1}
iDFT公式
公式:
x n = 1 N ∑ k = 0 N − 1 e i 2 π N k n X k , k ∈ { 0 , 1 , . . . N − 1 } x_n = \frac{1}{N}\sum_{k=0}^{N-1}e^{i\frac{2\pi}{N}kn}X_k, k\in \{0,1,... N-1\} xn=N1k=0∑N−1eiN2πknXk,k∈{0,1,...N−1}
那是否可以直接DFT来计算iDFT呢?
答案是可以的
DFT计算iDFT
I F F T ( X ) = 1 N c o n j ( F F T ( c o n j ( X ) ) ) IFFT(X) = \cfrac{1}{N}conj(FFT(conj(X))) IFFT(X)=N1conj(FFT(conj(X)))
公式推导
由DFT公式开始推到
(1) 由e的幂来看,共轭操作就是将 幂 取负值 (不理解的可以复习一下欧拉公式)
D F T ( x ) = ∑ n = 0 N c o n j ( e i 2 π N k n ) x n ( 1 ) DFT(x) = \sum_{n=0}^{N}conj(e^{i\frac{2\pi}{N}kn})x_n \space\space\space\space\space\space\space\space\space\space\space\space(1) DFT(x)=n=0∑Nconj(eiN2πkn)xn (1)
(2) 将x替换为conj(x)
D F T ( c o n j ( x ) ) = ∑ n = 0 N c o n j ( e i 2 π N k n ) c o n j ( x n ) ( 2 ) DFT(conj(x)) = \sum_{n=0}^{N}conj(e^{i\frac{2\pi}{N}kn}) conj(x_n) \space\space\space\space\space\space\space\space\space\space\space\space(2) DFT(conj(x))=n=0∑Nconj(eiN2πkn)conj(xn) (2)
这里介绍一下共轭运算的两个公式
c o n j ( a ) c o n j ( b ) = c o n j ( a b ) c o n j ( a ) + c o n j ( b ) = c o n j ( a + b ) conj(a)conj(b) = conj(ab) \newline conj(a)+conj(b) = conj(a+b) conj(a)conj(b)=conj(ab)conj(a)+conj(b)=conj(a+b)
(2) 套用上述公式,
D F T ( c o n j ( x ) ) = c o n j ( ∑ n = 0 N e i 2 π N k n x n ) ( 3 ) DFT(conj(x)) = conj(\sum_{n=0}^{N}e^{i\frac{2\pi}{N}kn} x_n) \space\space\space\space\space\space\space\space\space\space\space\space(3) DFT(conj(x))=conj(n=0∑NeiN2πknxn) (3)
(3) 右边部分其实就是N倍的IDFT,N可以从共轭运算中提出来
D F T ( c o n j ( x ) ) = N c o n j ( I D F T ( X ) ) ( 4 ) DFT(conj(x)) = Nconj(IDFT(X)) \space\space\space\space\space\space\space\space\space\space\space\space(4) DFT(conj(x))=Nconj(IDFT(X)) (4)
(4) 两边都再取一次共轭
1 N c o n j ( D F T ( c o n j ( x ) ) ) = I D F T ( X ) ( 4 ) \cfrac{1}{N}conj(DFT(conj(x))) = IDFT(X) \space\space\space\space\space\space\space\space\space\space\space\space(4) N1conj(DFT(conj(x)))=IDFT(X) (4)
所以FFT一样有这样的结论
I F F T ( X ) = 1 N c o n j ( F F T ( c o n j ( X ) ) ) IFFT(X) = \cfrac{1}{N}conj(FFT(conj(X))) IFFT(X)=N1conj(FFT(conj(X)))
参考文档:
更多推荐


所有评论(0)