我们先回忆一下DFT
F ‾ [ m ] = F f ‾ [ m ] = ∑ k = 0 N − 1 f ‾ [ k ] e − 2 π i m k N (1) \underline{F}[m] = \underline{\mathscr{F}f}[m] = \sum_{k=0}^{N-1} \underline{f}[k]e^{-2\pi i\frac{mk}{N}}\tag1 F[m]=Ff[m]=k=0∑N−1f[k]e−2πiNmk(1)
我们给出离散傅里叶逆变换
F − 1 f ‾ [ m ] = 1 N ∑ k = 0 N − 1 f ‾ [ k ] e 2 π i m k N (2) \huge\underline{\mathscr{F}^{-1}f}[m] = \frac{1}{N} \sum_{k=0}^{N-1} \underline{f}[k]e^{2\pi i\frac{mk}{N}}\tag2 F−1f[m]=N1k=0∑N−1f[k]e2πiNmk(2)
对于这个式子,我们最想问的问题是为什么它比连续傅里叶变换多了一个系数 1 N \frac{1}{N} N1
为了解答这个问题,我们先改写一下DFT与inverse DFT
我们定义向量 ω \omega ω 为:
ω ‾ [ m ] = e 2 π i m N \underline{\omega}[m] = e^{2\pi i\frac{m}{N}} ω[m]=e2πiNm
即,
ω ‾ = ( 1 , e 2 π i 1 N , e 2 π i 2 N , … , e 2 π i N − 1 N ) (3) \huge\underline{\omega} = (1, e^{2\pi i\frac{1}{N}}, e^{2\pi i\frac{2}{N}}, \dots, e^{2\pi i\frac{N-1}{N}})\tag3 ω=(1,e2πiN1,e2πiN2,…,e2πiNN−1)(3)
并将变量 k k k 写为 n n n,那么 ( 1 ) (1) (1) 式就可以改写为:
F ‾ [ m ] = ∑ n = 0 N − 1 f ‾ [ n ] ω ‾ − n [ m ] \underline{F}[m] = \sum_{n=0}^{N-1} \underline{f}[n] \underline{\omega}^{-n}[m] F[m]=n=0∑N−1f[n]ω−n[m]
或者更一般地( ( 2 ) (2) (2) 式同理),
F f ‾ = ∑ n = 0 N − 1 f ‾ [ n ] ω ‾ − n (4) \huge\underline{\mathscr{F}f} = \sum_{n=0}^{N-1} \underline{f}[n] \underline{\omega}^{-n}\tag4 Ff=n=0∑N−1f[n]ω−n(4)
F − 1 f ‾ = 1 N ∑ k = 0 N − 1 f ‾ [ n ] ω ‾ n (5) \huge\underline{\mathscr{F}^{-1}f} = \frac{1}{N} \sum_{k=0}^{N-1} \underline{f}[n] \underline{\omega}^{n}\tag5 F−1f=N1k=0∑N−1f[n]ωn(5)
ω \omega ω可以看作是向量,也可以看作是离散复指数
那么类比于连续傅里叶变换(傅里叶级数)中对复指数的讨论,离散复指数又有怎样的特点呢?
对于 < w k , w l >
< w k , w l > = ∑ n = 0 N − 1 w k [ n ] w l [ n ] ‾ = ∑ n = 0 N − 1 e 2 π i k n N e − 2 π i l n N = ∑ n = 0 N − 1 e 2 π i ( k − l ) n N = ∑ n = 0 N − 1 ( e 2 π i ( k − l ) N ) n (6) \begin{aligned}
< w k , w l > = 1 ⋅ ( 1 − ( e 2 π i ( k − l ) N ) N ) 1 − e 2 π i ( k − l ) N = 1 − e 2 π i ( k − l ) 1 − e 2 π i ( k − l ) N \begin{aligned}
显然当 k ≠ l k \neq l k=l 时,由于 k k k, l l l均为整数,故 e 2 π i ( k − l ) = 1 e^{2\pi i (k-l)} = 1 e2πi(k−l)=1,从而
< w k , w l > = 0 , k ≠ l
< w k , w k > = ∑ n = 0 N − 1 1 = N
也可以写成
∣ ∣ w k ∣ ∣ 2 2 = N ||w^k||_2^2 = N ∣∣wk∣∣22=N
即离散复指数的长度为 N \sqrt{N} N
证明到这里,我们就可以看出离散复指数和连续(或级数)复指数的一个很大的不同,在之前的文章中,我们说过,傅里叶变换相当于从一个标准正交坐标系映射到另一个标准正交坐标系的过程,是 o r t h o n o r m a l orthonormal orthonormal的;而DFT则不同,它的变换取决于取的采样点的数量,它是正交的但不是归一化的,是 o r t h o g o n a l orthogonal orthogonal的。
接下来我们验证一下离散傅里叶逆变换的正确性
F − 1 F f ‾ [ n ] = 1 N ∑ m = 0 N − 1 F f ‾ [ m ] e 2 π i m n N = 1 N ∑ m = 0 N − 1 ∑ k = 0 N − 1 f ‾ [ k ] e − 2 π i m k N e 2 π i m n N = 1 N ∑ k = 0 N − 1 f ‾ [ k ] ∑ m = 0 N − 1 ( e 2 π i n − k N ) m \begin{aligned} \underline{\mathscr{F}^{-1}\mathscr{F}f}[n] &=\frac{1}{N} \sum_{m=0}^{N-1} \underline{\mathscr{F}f}[m] e^{2\pi i\frac{mn}{N}} \\ & = \frac{1}{N} \sum_{m=0}^{N-1} \sum_{k=0}^{N-1} \underline{f}[k]e^{-2\pi i\frac{mk}{N}} e^{2\pi i\frac{mn}{N}} \\ & = \frac{1}{N} \sum_{k=0}^{N-1} \underline{f}[k] \sum_{m=0}^{N-1} \left( e^{2\pi i\frac{n-k}{N}} \right)^m\\ \end{aligned} F−1Ff[n]=N1m=0∑N−1Ff[m]e2πiNmn=N1m=0∑N−1k=0∑N−1f[k]e−2πiNmke2πiNmn=N1k=0∑N−1f[k]m=0∑N−1(e2πiNn−k)m
根据前文证明的正交性可知,仅当 n = k n=k n=k 时 ( e 2 π i n − k N ) m = 1 \left( e^{2\pi i\frac{n-k}{N}} \right)^m =1 (e2πiNn−k)m=1,其余情况均为 0 0 0,故
F − 1 F f ‾ [ n ] = 1 N f ‾ [ n ] ∑ m = 0 N − 1 1 = f ‾ [ n ] \begin{aligned} \underline{\mathscr{F}^{-1}\mathscr{F}f}[n] &= \frac{1}{N} \underline{f}[n] \sum_{m=0}^{N-1} 1 \\ &= \underline{f}[n] \end{aligned} F−1Ff[n]=N1f[n]m=0∑N−11=f[n]
不难发现,正是因为离散复指数的模长为 N \sqrt N N,才导致了离散傅里叶逆变换中出现了系数 N N N。
简单证明一下:
ω [ m + N ] ‾ = e 2 π i m + N N = e 2 π i m N = ω [ m ] ‾ \underline{\omega[m + N]} = e^{2\pi i \frac{m+N}{N}} = e^{2\pi i \frac{m}{N}} = \underline{\omega[m]} ω[m+N]=e2πiNm+N=e2πiNm=ω[m]
F f [ m + N ] ‾ = ∑ n = 0 N − 1 f ‾ [ n ] ω [ m + N ] ‾ − n = ∑ n = 0 N − 1 f ‾ [ n ] ω [ m ] ‾ − n = F f [ m ] ‾ \underline{\mathscr{F}f[m+N]} = \sum_{n=0}^{N-1} \underline{f}[n] \underline{\omega[m+N]}^{-n} = \sum_{n=0}^{N-1} \underline{f}[n] \underline{\omega[m]}^{-n} = \underline{\mathscr{F}f[m]} Ff[m+N]=n=0∑N−1f[n]ω[m+N]−n=n=0∑N−1f[n]ω[m]−n=Ff[m]
同理可证逆DFT
因此, f ‾ \underline{f} f, F f ‾ \underline{\mathscr{F}f} Ff都应被看作周期为 N N N的离散信号