推荐阅读

前置阅读

  1. 【从FT到DFT和FFT】(一)从傅里叶级数到傅里叶变换的详细公式推导 | issey的博客

参考教程

前言

本篇不会像上一篇那样推导的详细,原因其一是最近时间不够,在这样推下去就要落学习的进度了;其二是DFT涉及数字信号方面的知识,前置知识本人了解的较少。如果之后有机会,可能会倒回来推公式。只能说是心有余而力不足了。

本篇主要为从FT到DFT的演化的公式总结,另外引出二维离散傅里叶公式。


为什么需要离散傅里叶

在计算机中处理数据都是离散的,且无法直接进行连续积分运算,所以需要对傅里叶变换进行离散化。

从连续傅里叶级数(FS)到离散傅里叶级数(DFS)

回顾上篇我们推导得出的傅里叶级数公式;

对于周期为T的函数:\(f(t) = f(t+T)\)

它的傅里叶级数为: \[ \begin{split} & F(t) = \frac{1}{T}\int_0^Tf(t)e^{-inwt}dt \\ & f(t) = \sum_{-\infty}^{\infty}F(t)e^{inwt} \end{split} \] 现在将\(f(t)\) 改为离散的周期序列,

对于周期为N的序列\(x[k] = x[k+N]\) ,将连续傅里叶级数改为离散傅里叶级数: \[ \begin{split} & X[k] = \sum_{n=0}^{N-1}x[n]e^{-i\frac{2\pi}{N}nk} \\ & x[k] = \frac{1}{N}\sum_{n=0}^{N-1}X[n]e^{i\frac{2\pi}{N}nk} \end{split} \]

推导暂时略过。

从离散傅里叶级数(DFS)到离散傅里叶变换(DFT)

实际上DFT和DFS的公式是一样的,但是N的含义不同。可以这样理解:

对于周期离散序列,N就是它的周期,我们使用离散傅里叶级数来变换它。而对于非周期离散序列,我们首先回顾在上篇中推导傅里叶变换时的思路:一个非周期函数可以理解为一个周期为无穷的函数。非周期函数的x可以无限延长,所以我们将它的周期设置为无穷大。

而计算机中处理的序列始终是有限序列,用同样的思想,我们可以将非周期离散序列的周期理解为它本身的长度。如果一个非周期有限序列的长度为N,那我们可以理解为它的周期为N。

于是对于有限非周期离散序列,离散傅里叶公式可等同于周期为它本身的离散傅里叶级数。

为了便于区分,令有限非周期离散序列的长度为M,那么DFT的公式为: \[ \begin{split} & X[k] = \sum_{m=0}^{M-1}x[m]e^{-i\frac{2\pi}{M}mk} \\ & x[k] = \frac{1}{M}\sum_{m=0}^{M-1}X[m]e^{i\frac{2\pi}{M}mk} \end{split} \] 其实也是有证明过程的,不过这里还是先略过了。

二维离散傅里叶变换

详细推导过程请见参考连接。

二维离散傅里叶变换主要用于图像处理。

\(f(x,y)\)代表一副大小为\(M\times N\)的数字图像,其中:\(x = 0,1,2,...,M-1;y = 0,1,2,...,N-1\)

二维离散傅里叶变换公式如下: \[ \begin{split} & F(u,v) = \sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-i2\pi(\frac{ux}{M}+\frac{vy}{N})} \\ & f(u,v) = \frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}F(x,y)e^{i2\pi(\frac{ux}{M}+\frac{vy}{N})} \end{split} \] 注:第一个式子为正变换,第二个式子为反变换。