参考资料:
线代启示录:傅立叶分析专题
1. 函数空间
函数空间是一个希尔伯特(Hilbert)空间,即一个保有一般几何性质的无限维实向量空间。
函数也是向量,而仅包含有限长度的函数可以形成向量空间。
以$\langle f, g\rangle$表示函数$f$和$g$的内积:
函数长度可由内积求得:$|f|^{2}=\langle f, f\rangle$
函数空间最有名的例子为傅立叶级数(Fourier series),函数$f(x)$表示为正弦函数和余弦函数的展开式:
傅立叶级数的基底函数包含:
2. 傅立叶级数
考虑一有限维内积空间$\mathcal{V}$,且$\operatorname{dim} \mathcal{V}=n$。任意$\mathbf{x}, \mathbf{y} \in \mathcal{V}$的内积记为$\langle\mathbf{x}, \mathbf{y}\rangle$。令$\boldsymbol{\beta}=\left{\mathbf{v}{1}, \ldots, \mathbf{v}{n}\right}$为$\mathcal{V}$的一组单位正交基底(orthonormal basis),也就是说$\left\langle\mathbf{v}{i}, \mathbf{v}{j}\right\rangle= 1$若$i=j$,$\left\langle\mathbf{v}{i}, \mathbf{v}{j}\right\rangle= 0$若$i \neq j$,则有
故$\mathbf{x}$有下列正交分解展开式:
其中 $\left\langle\mathbf{v}_i,\mathbf{x}\right\rangle\mathbf{v}_i $即为 $\mathbf{x}$ 至“超直线” $\mathrm{span}{\mathbf{v}_i}$ 的正交投影分量。
周期函数$f(x)$可展开成傅立叶级数的条件:
收敛定理,狄利克雷(Dirichlet)充分条件:
(1)此函数必须是有界的(bounded),即对于任意$x$,$|f(x)|<M$,$M$是一正实数
(2)在任意区间内,除了有限个不连续点,$f(x)$必须是连续函数
(3)在任意区间内,$f(x)$必须仅包含有限个极值
(4)在一周期内,$|f(x)|$的积分必须收敛
三角函数系的正交性:
所谓三角函数系
在区间$[-\pi, \pi]$上正交,就是指在三角函数系中任何不同的两个函数的乘积$[-\pi, \pi]$上的积分等于零,即
以上等式,都可以通过计算定积分来验证。
在三角函数系中,两个相同函数的乘积在区间$[-\pi, \pi]$上的积分不等于零,即
令$\mathcal{V}$是由定义于区间$[-\pi, \pi]$(亦可选择$[0,2 \pi]$)的实函数所成的内积空间,函数空间$\mathcal{V}$是一无限维空间。对于$\mathcal{V}$中两实函数$f(x)$和$g(x)$,其内积定义如下(有些学者采用不含$1 / \pi$的内积定义,如此一来,$1 / \sqrt{\pi}$则需乘入余弦和正弦函数):
则$f(x)$的长度或范数(norm) 为
考虑无穷函数集合
有
故$\boldsymbol{\beta}$是一个单位正交集。
周期为$2 \pi$实函数$f(x)$的傅立叶级数
周期为$2 \pi$实函数$f(x)$的傅立叶级数$F(x)$为余弦和正弦函数组成的无穷级数:
其中傅立叶系数$a{k}$和$b{k}$的计算公式如下:
若$f(x)$为奇函数,则$f(x) \cos (k x)$为奇函数,奇函数在关于原点对称区间上的积分为零,故$a{k}=0, \quad k=0,1, 2\dots$。另一方面若$f(x)$为偶函数,则$f(x) \sin (k x)$为奇函数,有$b{k}=0, \quad k=1,2, \dots$。
周期为$T$实函数$f(x)$的傅立叶级数
周期为$T$,定义于区间$[-T / 2, T / 2]$的周期函数$f(t)$。利用变数变换$t / T=x /(2 \pi)$,可使区间$[-\pi, \pi]$变换至$[-T / 2, T / 2]$,将$x=2 \pi t / T$代入$F(x)$,即得到$f(t)$的傅立叶级数:
将$d x=2 \pi d t / T$代入$f(x)$的傅立叶系数的积分公式,可得
对于周期为$T$的函数$f(t)$,任何区间$\left[t{0}, t{0}+T\right]$皆可使用,如何选择$t{0}$值取决于便利性和个人偏好,常见的设定有$t{0}=0$或$t_{0}=-T / 2$
指数傅立叶级数
利用欧拉公式$e^{i x}=\cos x+i \sin x$,我们可以写出更为精简的傅立叶级数表达式。
再将傅立叶级数$F(x)$中$\cos (k x)$和$\sin (k x)$的线形组合式改写如下:
其中$e^{i k x}$和$e^{-i k x}$的系数分别为
若$k=0$,就有$c{0}=a{0} / 2$。将以上结果代回$2 \pi$周期函数$f(x)$的傅立叶级数即得指数傅立叶级数:
复傅立叶系数$c_{k}$有计算公式:
类似地,$T$周期函数$f(t)$的指数傅立叶级数如下:
复傅立叶系数则为
如果从一开始考虑指数函数集$\boldsymbol{\beta}^{\prime}=\left{e^{i k x}, k \in \mathbb{Z}\right}$,把$f(x)$正交投影至集合$\beta^{\prime}$扩张出的子空间上,可以导出$2 \pi$周期实函数的指数傅立叶级数,但$e^{i k x}$是复指数,因此实函数的内积定义必须修改为复函数内积。对于区间$[-\pi, \pi]$的两个复函数$f(x)$和$g(x)$,我们定义内积如下:
复函数$f(x)$的长度或范数(norm)为
复函数内积引入常数$1 / 2$的目的在于使$\beta^{\prime}$成为一个单位正交(orthonormal)函数集。
其中$\delta{m n}=1$,若$m = n$,$\delta{m n}=0$若$m \neq n$。因此证明$\boldsymbol{\beta}^{\prime}=\left{e^{i k x}, k \in \mathbb{Z}\right}$是一个单位正交集。函数$f(x)$的指数傅立叶级数即为$f(x)$至$\beta^{\prime}$扩张成的子空间的正交投影:
上式中,正交分解所含的系数就是傅立叶系数:
2. 离散傅立叶变换
考虑定义于区间$[-T / 2, T / 2]$的周期为$T$的函数$f(t)$的指数傅立叶级数
其中复傅立叶系数为
若$f(t)$满足Dirichlet条件,可以证明$|f-F|^{2}=0$,从现在开始将解除$f(t)$是周期函数的限制,假设$\int_{-\infty}^{\infty}|f(t)| d t$是有界的。当$T \rightarrow \infty$,傅立叶级数可推广为傅立叶转换(Fourier transform)。进一步地,若$f(t)$不再是连续函数而是一有限数列,傅立叶级数又可延伸为离散傅立叶转换(discrete Fourier transform,简称DFT)。
傅立叶转换是傅立叶级数于$T \rightarrow \infty$的表达形式。令$\nu{k}=k / T$,且$\Delta \nu=\nu{k+1}-\nu{k}=1 / T$,则$f{T}(t)$的傅立叶级数为
其中我们令
将$c{k}(T)$代回傅立叶级数$f{T}(t)$,可得
注意,上式中括弧内的$t$是虚拟变量(dummy variable)。当$T$逐渐增大时,$\Delta \nu=1 / T$变成一微小量$d \nu$,使得$\nu{k}$逼近连续变量$\mathcal{V}$,总和因此趋于积分。令$T \rightarrow \infty$,则$f{T}(t) \rightarrow f(t)$,可得下列等式:
欲看清整个关系,将上式拆开为两部分。令括弧内的函数为
称为$f(t)$的傅立叶转换,其中变量$\nu$代表频率。因此得到
称为$\hat{f}(\nu)$的逆傅立叶转换。
傅立叶矩阵
在数值计算上,因为电脑仅能处理有限维向量,连续型态的傅立叶转换必须换装成离散傅立叶转换。离散傅立叶转换的输入不再是无限维函数$f(t)$,我们仅能运用一周期$[0, T]$内$n$个等间距函数值$x{j} \equiv f\left(t{j}\right)$,其中$t{j}=j T / n, \quad j=0,1, \ldots, n-1$。其次离散傅立叶转换的输出是复傅立叶系数构成的相同长度数列$c{k}, k=0,1, \ldots, n-1$,而非无穷数列。因为傅立叶系数$c{k}$与函数$f(t)$的关系是线性的(积分是线性函数),我们也预期离散傅立叶转换是数列$\left{x{j}\right}$和$\left{c_{k}\right}$之间的一可逆线性转换,故可表示为$n \times n$阶可逆矩阵。在连续情况下,将区间正规化,令$T=1$,复傅立叶级数即为:
在离散情况下,以$t_{j}=j / n$取代$t$,将连续函数的傅立叶系数改为计算和,可得对应的离散公式:对于$k=0,1, \ldots, n-1$
此即离散傅立叶转换。为了与傅立叶系数$c{k}$区分,我们以$y{k}$代表离散傅立叶转换结果。使用欧拉公式$e^{i \theta}=\cos \theta+i \sin \theta$,令
离散傅立叶转换可表示成矩阵形式$\mathbf{y}=F \mathbf{x}$,如下:
上面的$n \times n$阶矩阵$F$称为傅立叶矩阵。$F$是一种特殊的Vandermonde矩阵。
复数集$\left{1, w, w^{2}, \ldots, w^{n-1}\right}$为方程式$z^{n}=1$的根,称为$n$次方单位根,这些根在复数平面上单位圆按顺时针旋转并以相同间距排列。若$k \geq n$,则$w^{k}=w^{k \bmod n}$。对于任意整数$k$,由欧拉公式可确认
考虑下式
若$k \text { mod } n \neq 0$,则$w^{k} \neq 1$,可推得
可以看出,傅立叶矩阵除了第一行,其余行的所有元素之和为0
下面我们运用此等式计算逆傅立叶矩阵$F^{-1}$
令$\mathbf{f}{p}$和$\mathbf{f}{q}$代表$F$的第$p$行和第$q$行,若$p \neq q$,则$(q-p) \text { mod } n \neq 0$,两向量的内积为
并且
有$\left|\mathbf{f}_{p}\right|=\sqrt{n}$。若将$F$的各行向量单位化,$\frac{1}{\sqrt{n}} F$为一酉矩阵(unitary)。因为$F^{T}=F$,就有
故$F^{-1}=\bar{F} / n$,即$\left(F^{-1}\right)_{p q}=w^{-p q} / n$,或明确写出
所以,逆离散傅立叶转换$\mathbf{x}=F^{-1} \mathbf{y}$:对于$j=0,1, \ldots, n-1$
离散傅立叶转换$F_{\mathbf{X}}$和逆转换$F^{-1} \mathbf{y}$有相同的运算方式,因为
假设我们设计出一个离散傅立叶转换程序DFT(·),则逆转换$\mathbf{x}=F^{-1} \mathbf{y}$的算法如下:
(1)计算共轭向量$\overline{\mathbf{y}}$
(2)计算离散傅立叶转换$\mathbf{z}=\operatorname{DFT}(\bar{\mathbf{y}})$
(3)计算共轭向量的纯量乘法$\mathbf{x}=(1 / n) \overline{\mathbf{z}}$