从傅里叶级数到傅里叶变换:详细的数学推导

2021-07-21

本文部分公式很长,整体排版对移动端不太友好,建议在 PC 端或者宽屏设备上阅读。

傅里叶变换 (Fourier transform) 是信号处理中 一个重要的概念。傅里叶变换将时间 (例如音频) / 空间域 (例如图像) 转换到频率,方便很多后续的信号处理。 本文从周期函数的傅里叶级数开始,详细推导傅里叶级数的复数表示, 以及非周期函数的傅里叶变换。 希望能帮助大家理解和傅里叶变换的原理。

正交函数系

对于两个实值函数 $f, g \in \mathbb{R}\rightarrow \mathbb{R}$,定义函数的 内积 为: $$\langle f, g \rangle = \int f(x)g(x) dx .$$ 如果 $\langle f, g \rangle = 0$,则称 $f, g$ 正交函数正交是向量正交的一个扩展,函数正交中的“乘积后求积分”对应向量内积的“乘积后求和”

假设有函数的集合 $\{f_0, f_1, ..., f_n\}$,其中对于任意 $m\neq n$ 有: $\langle f_m, f_n \rangle = 0$,则称该函数集合为“正交函数系”(orthogonal functions)。

三角函数集合

\begin{equation} \Big\{\cos 0, \cos(\omega_0 x), \sin(\omega_0 x), \cos(2\omega_0 x), \sin(2\omega_0 x), ...,\cos(n\omega_0 x), \sin(n\omega_0 x) \Big\} \label{orthogonal-set-cos-sin} \end{equation}
是正交函数系列。 以 $\omega_0 = 1$ 为例证明:
  1. 对任意的$m, n$,$\langle \sin(m\omega_0 x), \cos(n\omega_0 x) \rangle = 0$:
    \begin{equation} \begin{split} &\int_{-\pi}^{+\pi} \cos mx \cdot \sin nx \ dx \\ =& \int_{-\pi}^{+\pi} \frac{\sin (m+n)x - \sin (m-n)x}{2} dx \\ =& 0 \end{split}\label{orthogonal-1} \end{equation}
  2. 对任意的$m \neq n$,$\langle \sin(m\omega_0 x), \sin(n\omega_0 x) \rangle = 0$:
    \begin{equation} \begin{split} &\int_{-\pi}^{+\pi} \sin mx \cdot \sin nx \ dx \\ =& \int_{-\pi}^{+\pi} \frac{\cos (m-n)x - \cos (m+n)x}{2} dx \\ =& 0 \end{split}\label{orthogonal-3} \end{equation}
    $\langle \cos(m\omega_0 x), \cos(n\omega_0 x) \rangle = 0$:
    \begin{equation} \begin{split} &\int_{-\pi}^{+\pi} \cos mx \cdot \cos nx \ dx \\ =& \int_{-\pi}^{+\pi} \frac{\cos (m+n)x + \cos (m-n)x}{2} dx \\ =& 0 \end{split}\label{orthogonal-2} \end{equation}

周期函数的傅里叶级数展开

周期函数是指满足 $f(x) = f(x + T)$ 的函数,其中常数 $T$ 称为周期。 任意一个周期为 $T$ 的函数 $f_{T}(x)$ 都可以展开为不同频率的余弦函数的线性组合: $$ \begin{equation} f_T(x) = c_0 + \sum_{n=1}^\infty c_n \cos(n\omega_0 x + \varphi_n). \label{fourier-series-cos} \end{equation} $$ 式$\ref{fourier-series-cos}$ 称为周期函数的 傅里叶级数。 其中 $c_0$ 称为 直流分量, $\omega_0 = \frac{2\pi}{T}$ 为 基频率, $\cos(n\omega_0)$ 则是不同频率的余弦函数。 $c_n, n=1,...,\infty$ 为 不同频率余弦分量的 幅度, $\varphi_n$ 为 相位。 公式$\ref{fourier-series-cos}$ 也可以写为正弦形式: $$ \begin{equation} f_T(x) = c_0 + \sum_{n=1}^\infty c_n \sin(n\omega_0 x + \theta_n). \label{fourier-series-sin} \end{equation} $$ 同时也可以写成正弦余弦组合的形式:

$$ \begin{equation} \begin{split} f_T(x) &= c_0 + \sum_{n=1}^\infty c_n \cos(n\omega_0 x + \varphi_n) \\ &= c_0 + \sum_{n=1}^\infty c_n \cos(n\omega_0 x)\cos(\varphi_n) - c_n\sin(n\omega_0 x)\sin(\varphi_n) \\ \end{split} \label{fourier-series-cos-sin-1} \end{equation} $$
令 $$ \begin{equation} \begin{split} a_0 &= c_0 \\ a_n &= c_n\cos(\varphi_n)\\ b_n &= -c_n\sin(\varphi_n) \end{split}\label{substitution} \end{equation} $$ 式$\ref{fourier-series-cos-sin-1}$ 可以简写成:
\begin{equation} f_T(x) = a_0 + \sum_{n=1}^{+\infty} a_n\cos(n\omega_0 x) + \sum_{n=1}^{+\infty} b_n\sin(n\omega_0 x) . \label{fourier-series-cos-sin} \end{equation}
式$\ref{fourier-series-cos-sin}$ 中的系数 $a_0, a_n, b_n$ 可以通过积分求得。

不论是 公式$\ref{fourier-series-cos}$ 中的余弦展开,公式$\ref{fourier-series-sin}$ 中的正弦展开, 或者 公式$\ref{fourier-series-cos-sin}$ 中的余弦正弦展开,每一个频率分量都需要两个参数来表达: 公式$\ref{fourier-series-cos}$ 和 $\ref{fourier-series-sin}$ 中是振幅 $c$ 和 相位 $\varphi$, 公式$\ref{fourier-series-cos-sin}$ 中是 $a$ 和 $b$。 这本质的原因是一个余弦/正弦信号需要频率相位两个参数来表达。

下面我们来推导 公式$\ref{fourier-series-cos-sin}$ 中的 $a,b$。

  1. 对于 $a_0$,对 式$\ref{fourier-series-cos-sin}$ 两边在 $-\pi. \pi$ 区间求积分:
    \begin{equation*} \begin{split} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(x) dx &= \int_{-\frac{T}{2}}^{\frac{T}{2}} a_0 dx + \int_{-\frac{T}{2}}^{\frac{T}{2}} \sum_{n=1}^{+\infty} a_n\cos nx dx + \int_{-\frac{T}{2}}^{\frac{T}{2}} \sum_{n=1}^{+\infty} b_n\sin nx dx \\ &= T a_0 + 0 + 0 \end{split} \end{equation*}
    得到 $$ a_0 = \frac{1}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_{T}(x) dx $$
  2. 对于 $a_n$,对 式$\ref{fourier-series-cos-sin}$ 两边乘以$\cos(n\omega_0 x)$ 然后再在 $(-\frac{T}{2} \sim -\frac{T}{2})$ 区间求积分:
    \begin{equation} \begin{split} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(x)\cos(n\omega_0 x) dx &= \int_{-\frac{T}{2}}^{\frac{T}{2}} \cos(n\omega_0 x) \frac{1}{2}a_0 dx + \int_{-\frac{T}{2}}^{\frac{T}{2}} \cos(n\omega_0 x) \sum_{m=1}^{+\infty} a_m\cos(m\omega_0 x) dx + \int_{-\frac{T}{2}}^{\frac{T}{2}} \cos(n\omega_0 x) \sum_{m=1}^{+\infty} b_m\sin(m\omega_0 x) \\ &= 0 + a_n\int_{-\frac{T}{2}}^{\frac{T}{2}} \cos(n\omega_0 x) \cdot \cos(n\omega_0 x) dx + 0 \\ &= a_n\int_{-\frac{T}{2}}^{\frac{T}{2}} \frac{1+\cos(2n\omega_0 x)}{2} dx \\ &= \frac{T}{2} a_n \end{split}\label{calculate-a_m} \end{equation}
    式$\ref{calculate-a_m}$ 中的化简利用了式$\ref{orthogonal-1}\sim\ref{orthogonal-3}$的结论。 最后我们得到: $$ a_n = \frac{2}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} \cos (n\omega_0 x) \cdot f_T(x) dx $$
  3. 类似地,对 式$\ref{fourier-series-cos-sin}$ 两边乘以$\sin(n\omega_0 x)$ 然后再在 $(-\frac{T}{2} \sim -\frac{T}{2})$ 区间求积分,可以得到 $b_n$: $$ b_n = \frac{2}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} \sin (n\omega_0 x) \cdot f_T(x) dx $$

整理一下上面的结论,得到: $$ \begin{equation} \begin{split} a_0 &= \frac{1}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_{T}(x) dx \\ a_n &= \frac{2}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} \cos (n\omega_0 x) \cdot f_T(x) dx \\ b_n &= \frac{2}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} \sin (n\omega_0 x) \cdot f_T(x) dx \\ \end{split}\label{a0-an-bn} \end{equation} $$

求出 $a_0, a_n, b_n,$ 后,根据 式$\ref{substitution}$ 中的替换,可以得到 式$\ref{fourier-series-cos}$ 中的 $c_n, \varphi_n$:

\begin{equation} \begin{split} c_0 &= a_0 \\ c_n &= \sqrt{a_n^2+b_n^2} \ (\text{可不可以是} -\sqrt{a_n^2+b_n^2} \ \ \text{?})\\ \varphi_n &= \arctan(-\frac{b_n}{a_n}) \\ \end{split} \end{equation}

其中,$c_0, c_1, ..., c_n$ 称为幅度,表示不同频率余弦分量的“权重”; $\varphi_0, \varphi_1, ..., \varphi_n$ 称为 相位, 表示不同频率余弦分量的初始相位。 通过 $(c_0, \varphi_0), (c_1, \varphi_1), ..., (c_n, \varphi_n)$ 就可以恢复出原函数 $f_T(x)$。

傅里叶级数的复数形式

理论上讲,式$\ref{fourier-series-cos}$ 以及 式$\ref{fourier-series-cos-sin}$ 所描述的 傅里叶级数展开 已经比较完备, 但是形式上不是很统一,每个频率分量需要两个参数 $c_n, \varphi_n$ 来表示。 那么有没有一种统一的形式,使得傅里叶级数展开等号右边只有一种类型的基函数(basis), 而且基函数的参数可以统一的表示出来呢?

要回答这个问题,要从欧拉公式开始。

欧拉公式

首先我们介绍欧拉公式: \begin{equation} e^{i\theta} = \cos\theta + i\sin\theta \label{euler} \end{equation} 由 式$\ref{euler}$ 可以推出: \begin{equation} \begin{cases} \cos\theta = \frac{e^{i\theta} + e^{-i\theta}}{2} \\ \sin\theta = \frac{-i (e^{i\theta} - e^{-i\theta})}{2} \end{cases}\label{euler-cos-sin} \end{equation}

通过欧拉公式将傅里叶级数转换到复数域

我们将 式$\ref{euler-cos-sin}$ 带入到 式$\ref{fourier-series-cos-sin}$,得到:

\begin{equation} \begin{split} f_T(x) &= \frac{1}{2}a_0 + \sum_{n=1}^{+\infty} a_n\frac{e^{in\omega_0 x} + e^{-in\omega_0 x}}{2} + \sum_{n=1}^{+\infty} b_n\frac{-i (e^{in\omega_0 x} - e^{-in\omega_0 x})}{2} \\ &= \frac{1}{2}a_0 + \sum_{n=1}^{+\infty} \frac{1}{2} (a_n-ib_n)e^{in\omega_0 x} + \sum_{n=1}^{+\infty} \frac{1}{2} (a_n+ib_n)e^{-in\omega_0 x} \\ 第三项中用 -n 代替 n \\ &= \frac{1}{2}a_0 + \sum_{n=1}^{+\infty}\frac{1}{2}(a_n-ib_n)e^{in\omega_0 x} + \sum_{n=-\infty}^{-1} \frac{1}{2} (a_{-n}+ib_{-n})e^{in\omega_0 x} \\ 改用新的系数符号 d_n \\ &= \sum_{n=-\infty}^{+\infty} d_n e^{in\omega_0 x} \\ \end{split}\label{fourier-series-euler} \end{equation}
其中 \begin{equation} d_n = \begin{cases} \frac{1}{2} (a_n-ib_n), \ n \gt 0 \\ \frac{1}{2}a_0, \ n = 0 \\ \frac{1}{2} (a_{-n}+ib_{-n}), \ n \lt 0\\ \end{cases}\label{dn-cases} \end{equation}

至此我们导出了 傅里叶级数的复指数形式。 这种形式下基函数为复指数信号 $e^{in\omega_0 x}$,系数 $d_n$ 也是一个 复数。 这种形式的傅里叶级数基函数形式只有一种,并且每个频率分量只有权重参数 $d_n$(因为 $d_n$ 是复数, 因此实际上 $d_n$ 同时包含了幅度和相位信息,只是形式上统一了)。 傅立叶级数中引入复数只是为了表达的方便, 可以将相位和频率同时用一个复数表达出来,本质上和直接用正弦或者余弦函数没有区别。 虽然说可以用一个虚数来表达一个频率分量,但实际上虚数有实部和虚部,因此实际上上还是两个参数表示一个频率分量。 多说一句,傅立叶级数的虚数表示可以看作是一种文字游戏: 用一种本来不存在的东西(复指数信号) 来表示某个实际存在的事物(余弦和正弦信号),从而简化原来的表达。 而人类使用数学,也正是在做同样的事情:数学概念并不存在,只是人类想象的, 但是我们可以用数学来更简洁地归纳表达世界上存在的事物和现象。

复数$d_n$ 的模为 $|d_n| = \frac{1}{2}\sqrt{a_n^2+b_n^2} = \frac{1}{2}c_n$。 当 $n\gt 0$ 时,复数 $d_n$ 的幅角为 $\arctan{-\frac{b_n}{a_n}} = \varphi_n$; 当 $n\lt 0$ 时,复数 $d_n$ 的幅角为 $\arctan{\frac{b_{|n|}}{a_{|n|}}} = -\varphi_{|n|}$。 使用负指数形式傅里叶展开时,基函数为 $e^{in\omega_0 x}$,频谱占满了整个数轴(正数负数都有),而且正负频率的系数都等于正弦形式展开中正弦信号峰值的一半: $|d_n| = |d_{-n}| = \frac{1}{2}c_n$。

接下来我们求解 式$\ref{dn-cases}$ 中不同情况下 $d_n$ 的表达式:

  1. 当 $n \gt 0$ 时:
    \begin{equation} \begin{split} d_n|_{n \gt 0} &= \frac{1}{2} (a_n - ib_n) \\ &= \frac{1}{2} \Big\{ \frac{2}{T}\int_0^T \cos n\omega_0 x \cdot f_T(x) \ dx - i\frac{2}{T}\int_0^T \sin n\omega_0 x \cdot f_T(x) \ dx \Big\} \\ &= \frac{1}{T} \int_0^T \frac{e^{in\omega_0 x} + e^{-in\omega_0 x}}{2} \cdot f_T(x) \ dx - \frac{i}{T} \int_0^T \frac{-i(e^{in\omega_0 x} + e^{-in\omega_0 x})}{2} \cdot f_T(x) \ dx \\ &= \frac{1}{T} \int_0^T \frac{e^{in\omega_0 x} + e^{-in\omega_0 x}}{2} \cdot f_T(x) \ dx - \frac{1}{T} \int_0^T \frac{e^{in\omega_0 x} + e^{-in\omega_0 x}}{2} \cdot f_T(x) \ dx \\ &= \frac{1}{T} \int_0^T e^{-in\omega_0 x} \cdot f_T(x) \ dx \end{split}\label{dn-1} \end{equation}
  2. 当 $n = 0$ 时: \begin{equation} \begin{split} d_n|_{n=0} &= \frac{1}{2} a_0 \\ &= \frac{1}{2} \frac{2}{T} \int_0^T f_T(x) \ dx \\ &= \frac{1}{T} \int_0^T e^{-in\omega_0 x} \cdot f_T(x) \ dx \end{split}\label{dn-2} \end{equation}
  3. 当 $n \lt 0$ 时: \begin{equation} \begin{split} d_n|_{n\lt 0} &= \frac{1}{2} a_0 \\ &= \frac{1}{2} \frac{2}{T} \int_0^T f_T(x) \ dx \\ &= \frac{1}{T} \int_0^T e^{-in\omega_0 x} \cdot f_T(x) \ dx \end{split}\label{dn-3} \end{equation}
式$\ref{dn-1},\ref{dn-2},\ref{dn-3}$ 表明,不论 $n$ 取何值, $d_n$ 都可以表示为: \begin{equation} \begin{split} d_n = \frac{1}{T} \int_0^T e^{-in\omega_0 x} \cdot f_T(x) \ dx \end{split}\label{dn} \end{equation}

对上面的推导做个总结,那就是:任意一个周期为 $T$ 的实值函数 $f_T(x)$ 都可以展开为以下傅里叶级数: $$ \begin{equation} f_T(x) = \sum_{n=-\infty}^{+\infty} d_n e^{in\omega_0 x} \label{fourier-series-final} \end{equation} $$ 其中 $\omega_0 = \frac{2\pi}{T}$ 称为“基频率”,不同频率分量的权重 $d_n = \frac{1}{T} \int_0^T e^{-in\omega_0 x} \cdot f_T(x) \ dx$ 是一个同时包含了 幅度相位 信息的 复数

将 $d_n$ 的表达式带入 式$\ref{fourier-series-final}$,得到周期函数 $f_T(x)$ 的 复指数形式傅里叶级数展开 的完整表达式:

\begin{equation}\begin{split} f_T(x) &= \sum_{n=-\infty}^{+\infty} \Big\{ \frac{1}{T} \int_0^T e^{-i\cdot n\omega_0 x} \cdot f_T(x) \ dx \Big\}\cdot e^{i\cdot n\omega_0 x}。 \end{split}\label{fourier-series-combined}\end{equation}

傅里叶级数到傅里叶变换

式$\ref{fourier-series-combined}$ 中的傅里叶级数展开是针对 周期函数 的,但是在现实中大多数信号都是非周期的。 对于非周期函数 $f(x)$ 是否也存在类似的分解呢?

非周期函数可以看做是周期 $T \rightarrow +\infty$ 的周期函数, 当 $T=+\infty$时,基频率 $\omega_0 = \frac{2\pi}{T}$ 就变成了微分 $d\omega$, 同时求和 $\sum_{-\infty}^{+\infty} n\omega_0$ 就变成了求积分 $\int_{-\infty}^{+\infty} d\omega_0$。

我们先将 $\omega_0 = \frac{2\pi}{T}$ 带入 式$\ref{fourier-series-combined}$,然后将求和转化为积分。

\begin{equation*}\begin{split} f_{T\rightarrow\infty}(x) &= \sum_{n=-\infty}^{+\infty} \Big\{ \frac{1}{T} \int_0^T e^{-in\omega_0 x} \cdot f_T(x) \ dx \Big\} \cdot e^{in\omega_0 x} \\ &= \sum_{n=-\infty}^{+\infty} \Big\{ \frac{\omega_0}{2\pi} \int_0^T e^{-in\omega_0 x} \cdot f(x) \ dx \Big\} \cdot e^{in\omega_0 x} \cdot \\ 用 \ \ \omega = \frac{\omega_0}{2\pi} 替换 \omega_0 \\ &= \sum_{n=-\infty}^{+\infty} \Big\{ \omega \int_0^T e^{-in2\pi\omega x} \cdot f(x) \ dx \Big\} \cdot e^{in2\pi\omega x} \cdot \\ \end{split}\end{equation*}
当 $T \rightarrow +\infty$ 时,周期函数 $f_T(x)$ 变为非周期函数 $f(x)$,$\omega_0$ 变成无穷小,上式等号右边过渡为一个积分:
\begin{equation}\begin{split} f(x) &= \frac{1}{2\pi} \int_{-\infty}^{+\infty} \int_{-\infty}^{+\infty} e^{-i2\pi\omega x} \cdot f(x) \ dx \cdot e^{i2\pi\omega x} \ d\omega \\ \end{split}\label{fourier-transform-1}\end{equation}

式$\ref{fourier-transform-1}$ 中 \begin{equation} F(\omega) = \int_{-\infty}^{+\infty} e^{-i\cdot 2\pi\omega x} \cdot f(x) \ dx \label{ft} \end{equation} 称为“傅里叶变换”; \begin{equation} f(x) = \frac{1}{2\pi} \int_{n=-\infty}^{+\infty} F(\omega) \cdot e^{i\cdot 2\pi\omega x} \ d\omega \label{inverse-ft} \end{equation} 称为“傅里叶逆变换”。


引用

如果本文的内容对你撰写学术论文有帮助,希望能考虑引用:
@misc{zhao2020fourier,
title   = {从傅里叶级数到傅里叶变换:详细的数学推导},
author  = {Kai Zhao},
year    = 2020,
note    = {\url{http://kaizhao.net/blog/fourier}}
}

感谢阅读🤗 本文内容谢绝任何形式的转载,如果您想和朋友分享本文内容,请分享本文链接 kaizhao.net/blog/fourier。 如果您发现文中的错误,或者有任何疑问,欢迎在下方留言交流 (留言功能基于 disqus,在中国大陆的读者可能需要一些技术手段才能连接🥲)。