我们先回忆一下DFT
F‾[m]=Ff‾[m]=∑k=0N−1f‾[k]e−2πimkN(1)\underline{F}[m] = \underline{\mathscr{F}f}[m] = \sum_{k=0}^{N-1} \underline{f}[k]e^{-2\pi i\frac{mk}{N}}\tag1F[m]=Ff[m]=k=0∑N−1f[k]e−2πiNmk(1)
我们给出离散傅里叶逆变换
F−1f‾[m]=1N∑k=0N−1f‾[k]e2πimkN(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}}\tag2F−1f[m]=N1k=0∑N−1f[k]e2πiNmk(2)
对于这个式子,我们最想问的问题是为什么它比连续傅里叶变换多了一个系数 1N\frac{1}{N}N1
为了解答这个问题,我们先改写一下DFT与inverse DFT
我们定义向量 ω\omegaω 为:
ω‾[m]=e2πimN\underline{\omega}[m] = e^{2\pi i\frac{m}{N}}ω[m]=e2πiNm
即,
ω‾=(1,e2πi1N,e2πi2N,…,e2πiN−1N)(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)
并将变量 kkk 写为 nnn,那么 (1)(1)(1) 式就可以改写为:
F‾[m]=∑n=0N−1f‾[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) 式同理),
Ff‾=∑n=0N−1f‾[n]ω‾−n(4)\huge\underline{\mathscr{F}f} = \sum_{n=0}^{N-1} \underline{f}[n] \underline{\omega}^{-n}\tag4Ff=n=0∑N−1f[n]ω−n(4)
F−1f‾=1N∑k=0N−1f‾[n]ω‾n(5)\huge\underline{\mathscr{F}^{-1}f} = \frac{1}{N} \sum_{k=0}^{N-1} \underline{f}[n] \underline{\omega}^{n}\tag5F−1f=N1k=0∑N−1f[n]ωn(5)
ω\omegaω可以看作是向量,也可以看作是离散复指数
那么类比于连续傅里叶变换(傅里叶级数)中对复指数的讨论,离散复指数又有怎样的特点呢?
对于 <wk,wl><w^k, w^l><wk,wl>
<wk,wl>=∑n=0N−1wk[n]wl[n]‾=∑n=0N−1e2πiknNe−2πilnN=∑n=0N−1e2πi(k−l)nN=∑n=0N−1(e2πi(k−l)N)n(6)\begin{aligned} <w^k, w^l> &= \sum_{n=0}^{N-1} w^k[n] \overline{w^l[n]}\\ &= \sum_{n=0}^{N-1} e^{2\pi i\frac{kn}{N}} e^{-2\pi i\frac{ln}{N}}\\ &= \sum_{n=0}^{N-1} e^{2\pi i\frac{(k-l)n}{N}}\\ &= \sum_{n=0}^{N-1} \left( e^{2\pi i\frac{(k-l)}{N}} \right)^n\tag6 \end{aligned}<wk,wl>=n=0∑N−1wk[n]wl[n]=n=0∑N−1e2πiNkne−2πiNln=n=0∑N−1e2πiN(k−l)n=n=0∑N−1(e2πiN(k−l))n(6)
我们来看看当 k≠lk\neq lk=l 时,即求离散复指数的内积。我们发现 (6)(6)(6) 式是一个等比数列的求和,因此利用等比数列求和公式,有
<wk,wl>=1⋅(1−(e2πi(k−l)N)N)1−e2πi(k−l)N=1−e2πi(k−l)1−e2πi(k−l)N\begin{aligned} <w^k, w^l> &= \frac{1\cdot \left(1-\left( e^{2\pi i\frac{(k-l)}{N}} \right)^N\right)}{1 - e^{2\pi i\frac{(k-l)}{N}}}\\ &= \frac{1- e^{2\pi i (k-l)}}{1 - e^{2\pi i\frac{(k-l)}{N}}} \end{aligned}<wk,wl>=1−e2πiN(k−l)1⋅(1−(e2πiN(k−l))N)=1−e2πiN(k−l)1−e2πi(k−l)
显然当 k≠lk \neq lk=l 时,由于kkk,lll均为整数,故 e2πi(k−l)=1e^{2\pi i (k-l)} = 1e2πi(k−l)=1,从而
<wk,wl>=0,k≠l<w^k, w^l> = 0, k\neq l<wk,wl>=0,k=l
当$ k = l $时,即求离散复指数的模长。我们发现 (6)(6)(6) 式的每一项都为 111,因此
<wk,wk>=∑n=0N−11=N<w^k, w^k> = \sum_{n=0}^{N-1} 1 = N<wk,wk>=n=0∑N−11=N
也可以写成
∣∣wk∣∣22=N||w^k||_2^2 = N∣∣wk∣∣22=N
即离散复指数的长度为 N\sqrt{N}N
证明到这里,我们就可以看出离散复指数和连续(或级数)复指数的一个很大的不同,在之前的文章中,我们说过,傅里叶变换相当于从一个标准正交坐标系映射到另一个标准正交坐标系的过程,是orthonormalorthonormalorthonormal的;而DFT则不同,它的变换取决于取的采样点的数量,它是正交的但不是归一化的,是orthogonalorthogonalorthogonal的。
接下来我们验证一下离散傅里叶逆变换的正确性
F−1Ff‾[n]=1N∑m=0N−1Ff‾[m]e2πimnN=1N∑m=0N−1∑k=0N−1f‾[k]e−2πimkNe2πimnN=1N∑k=0N−1f‾[k]∑m=0N−1(e2πin−kN)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=kn=kn=k 时 (e2πin−kN)m=1\left( e^{2\pi i\frac{n-k}{N}} \right)^m =1(e2πiNn−k)m=1,其余情况均为 000,故
F−1Ff‾[n]=1Nf‾[n]∑m=0N−11=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 NN,才导致了离散傅里叶逆变换中出现了系数 NNN。
最后,我们应该把DFT的输入、输出都看作是周期为 NNN 的信号(或把它们看作进行了以 NNN 为周期的周期延拓的信号)
简单证明一下:
ω[m+N]‾=e2πim+NN=e2πimN=ω[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]
Ff[m+N]‾=∑n=0N−1f‾[n]ω[m+N]‾−n=∑n=0N−1f‾[n]ω[m]‾−n=Ff[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,Ff‾\underline{\mathscr{F}f}Ff都应被看作周期为NNN的离散信号