数字信号处理之傅里叶级数和傅里叶变换 (1)

傅里叶级数和傅里叶变换其实都是将原函数向正交函数系投影,在理解线性代数中正交向量的基础上,可以很快理解正交函数系的概念。

1. 预备知识

如果没有学过数值分析,可以跳过权函数,或者简单地理解为权函数\(\rho(x)=1\),理解正交函数系的概念即可,因为这三种变换中权函数也都是为 \(1\) 的。

1.1 权函数

\([a,b]\) 为有限或无限区间,\(\rho(x)\)是定义在 \([a,b]\) 上的非负函数,\(\int_a^b{x^k\rho(x)dx}\)\(k=0,1, \cdots\) 都存在,并且对非负的 \(f(x) \in \mathbf C[a,b]\), 若 \(\int_a^b{f(x)\rho(x)dx} = 0\),则 \(f(x) \equiv 0\)

注意 \(\mathbf C\) 用来表示函数的光滑程度,或者说函数是否可导,\(\mathbf C^n\) 表示函数的 \(n\) 阶导函数连续

权函数值 \(\rho(x)\)的意义 —— 一点 \(x\)\([a,b]\)上所占据的重要性,和概率类似

权函数有: \[
\begin{aligned}
& \rho(x) = 1, \quad (-1 \le x \le 1); \\
& \rho(x) = \frac {1}{\sqrt {1-x^2}}, \quad (-1 \le x \le 1); \\
& \rho(x) = e^{-x}, \quad (0 \lt x \lt +\infty); \\
& \rho(x) = e^{-x^2}, \quad (-\infty \lt x \lt +\infty)
\end{aligned}
\]

1.2 带权函数的函数内积

\(f(x), g(x) \in \mathbf C[a, b]\), \(\rho(x)\)\([a,b]\) 上的权函数,定义 \[
(f, g) = \int_a^b{\rho(x)f(x)g(x)\;dx} \tag {1}
\]
注: 该定义是 \(\mathbf R^n\) 空间中两个向量 \(\mathbf x = (x_1, \cdots , x_n)^T\)\(\mathbf y = (y_1, \cdots , y_n)^T\) 的数量积定义的推广。其实在学习线性代数的时候,也提到过内积的概念, \([\mathbf x, \mathbf y] = x_1y_1+x_2y_2+ \cdots + x_ny_n\) 是向量 \(\mathbf {x, y}\) 的内积

函数内积的基本性质:

  • \((f,g) = (g, f)\)
  • \((c_1f+c_2g, h) = c_1(f ,h) + c_2(g, h)\)
  • \((f ,f) \ge 0\), 并且当且仅当 \(f \equiv 0\) 时, \((f, f) = 0\)

1.2.1 正交函数系

先回顾线性代数中正交的概念: 当 \([\mathbf {x, y}] = 0\) 时, 称向量 \(\mathbf x,\mathbf y\) 正交

其实向量的正交是几何空间中向量垂直概念的推广

若一非零向量组中的向量两两正交,则称该向量组为正交向量组

性质:

  • 若向量组 \(\alpha_1, \alpha_2, \cdots, \alpha_r\)\(n\) 维正交向量组,则 \(\alpha_1, \alpha_2, \cdots, \alpha_r\) 线性无关
  • 若正交向量组 \(\alpha_1, \alpha_2, \cdots, \alpha_r\) 是向量空间\(V\)的一组基,则称 \(\alpha_1, \alpha_2, \cdots, \alpha_r\) 是向量空间 \(V\) 的一组正交基

回到 数值分析: 设 \(f(x), g(x) \in \mathbf C[a, b]\)\(\rho(x)\)\([a ,b]\)上的权函数,若 内积
\[
(f, g) = \int_a^b{\rho(x)f(x)g(x)\;dx} = 0
\]
则称 \(f(x), g(x)​\)\([a, b]​\) 上带权 \(\rho(x)​\) 正交

设函数系 \(\{ \phi_0(x), \phi_1(x), \cdots, \phi_n(x), \cdots\}\)\([a,b]\) 上的连续函数,若满足条件
\[
\begin {align}
(\phi_i, \phi_j) &= \int_a^b\rho(x)\phi_i(x)\phi_j(x)\; dx \\
& = \begin{cases}
0, i \neq j \\
A_j \gt 0, i = j
\end{cases} \quad
(i, j = 0,1,2,\cdots)
\end {align}
\]
则称函数系 \(\{ \phi_k(x) \}\)\([a, b]\) 上带权 \(\rho(x)\)正交函数系

1.3 单位脉冲函数 – \(\delta(x)\) 函数

\(\delta(x)\) 函数 (单位脉冲函数,狄拉克函数,单位冲激信号) 的性质:

  • \(当 x \neq 0 时, \delta(x) = 0\)

  • \(\int_{-\infty}^{\infty}{\delta(x)dx} = 1\)
    其实也可以说只要 $N 0 $, \(\int_{-N}^{N}{\delta(x)dx} = 1\)

下面这些公式引用自百度百科,狄拉克\(\delta\)函数 \[
\begin {align}
& \delta(x) = \lim_{k \to \infty} \frac{1}{\pi}\frac {\sin{(kx)}}{x} \\
& \delta(x) = \lim_{k \to \infty} \frac{1}{2\pi} \frac{\sin^2{kx/2}}{k(x/2)^2} \\
& \delta(x) = \lim_{a \to 0^+} \frac{1}{a \sqrt{\pi}}e^{-x^2/a^2} \\
& \delta(x) = \lim_{a \to 0^+} \frac{1}{\pi} \frac{a}{a^2 + x^2}
\end {align} \tag {2}
\]

其中第一个公式(Dirchlet)的证明用留数证明: \[
\int_{-\infty}^{\infty}\frac {\sin{(x)}}{\pi{x}} = 1
\]
第三个就是高斯公式的标准差取极限为0的情形

当然,最经典的表示方法为: \[
\delta(x) = \cfrac {1} {2\pi} \int_{-\infty}^{\infty} {e^{jpx}}dp \tag {3}
\]
证明如下: \[
\begin {align}
\delta(x) &= \cfrac {1} {2\pi} \int_{-\infty}^{\infty} {e^{jpx}}dp \\
&= \cfrac {1} {2\pi} \int_{-\infty}^{\infty} (\cos px + j \sin px)dp \\
&= \cfrac {1} {2\pi} \lim_{ k \rightarrow \infty} \int_{-k}^{k} (\cos px + j \sin px)dp \\
&= \cfrac {1} {2\pi} \lim_{ k \rightarrow \infty} (\cfrac {\sin (px)} {x} – j \cfrac {\cos (px)} {x}) \mid_{p = -k}^{k} \\
&= \cfrac {1} {\pi} \lim_{ k \rightarrow \infty} \cfrac {\sin (kx)} {x}
\end {align}
\]

1.4 卷积 – convolution

\(f(t), g(t)\)\(\mathbb R\) 上的两个可积函数,作积分 \[
(f*g)(t) =\int_{-\infty}^{\infty} f(\tau)g(t-\tau) \mathrm{d} \tau \tag {4}
\]
如何理解:

  1. 首先将两个函数都用 \(\tau\) 表示,得到 \(f(\tau)\)\(g(\tau)\)
  2. \(t\) 视为常量,将函数 \(g(\tau)\) 沿绕 y 轴翻转,得到 \(g(-\tau)\) ,然后向右移动 \(t\) 个单位,得到 \(g(t-\tau)\)
  3. 这里将 \(t\) 视为变量,当 \(t\) 取不同值时,\(g(t – \tau)\) 能沿着 \(\tau\) 轴“滑动”
  4. \(t\)\(-\infty\) 滑动到 \(+\infty\) 。两函数交会时,计算交会范围中两函数乘积的积分值。换句话说,我们是在计算一个滑动的加权总和(weighted-sum)。也就是使用 \(g(t-\tau )\)当做加权函数,来对 \(f(\tau )\) 取加权值。

性质:

任何函数和单位脉冲函数的卷积都是它本身,即 \[
\int_{-\infty}^{\infty}{f(\tau)\delta(x-\tau)d\tau} = f(x) \tag {5}
\]

: 后面的博客还会详细介绍卷积的作用,这里只是简单介绍一下


注: 下面的变换推导中权函数\(\rho(x) = 1\)

2. 傅里叶级数

\[
X_k = \cfrac {1}{T} \int_{-T/2}^{T/2} x(t) e^{-j (2\pi/T) kt} dt \tag {6}
\]

\[
x(t) = \sum_{k \in \mathbb {Z}} X_k e^{j(2\pi/T) kt} \tag {7}
\]

其中 \(x(t)\)\([-T/2, T/2]\) 的周期函数

首先证明 三角函数系 \(1, \sin{x}, \cos{x}, \sin{2x}, \cos{2x}, \cdots\)\([-\pi, \pi]\) 上是正交函数系(权 \(\rho(x) \equiv 1\))

我们进行积分运算,可以很容易看出来: \[
\int_{-\pi}^{\pi}{\sin{nx} *\sin{nx}} = \int_{-\pi}^{\pi}{\sin^{2}{nx}} = \int_{-\pi}^{\pi}{\frac {\sin^{2}{nx} + \cos^{2}{nx}} {2}} = \pi
\]

\[
\begin{align}
\int_{-\pi}^{\pi} {\cos{kx} \cos{nx}dx} &= {1 \over 2} \int_{-\pi}^{\pi}{[\cos{(k+n)x} + \cos{(k-n)x}]dx} \\
&= {1 \over 2} {[\frac {\sin{(k+n)x}}{k+n} + \frac {\sin{(k-n)x}}{k-n}]}^{2\pi}_{0} \\
&= 0 \qquad (k,n = 1,2,3, \cdots, k \neq n)
\end{align}
\]

同理可以证明 \(\sin kx\)\(\cos mx\)\([-\pi, \pi]\) 的积分也为0

现在我们有一个函数 \(f(x)\), 注意限制条件为 \(f(x)\) 是以 \([-\pi, \pi]\) 为周期的周期函数,我们想把它写成一些 \(\cos\) 函数和一些 \(\sin\) 函数的形式,像这样: \[
f(x) = a_0 + a_1 \cos x + a_2 \sin x + a_3 \cos 2x + a_4 \sin 2x+ \ldots \tag {8}
\]
既然三角函数系是正交的,我们把方程两端的所有部分都求和 \(\cos x​\) 的内积,即:
\[
\langle f(x), \cos x \rangle
= \langle a_0*1, \cos x\rangle + \langle a_1\cos x, \cos x\rangle + \langle a_2\sin x, \cos x\rangle + \ldots
\]
然后我们发现,因为正交的性质,右边所有非 \(a_1\) 项全部消失了,因为他们和 \(\cos x\) 的内积都是 0

所以就简化为
\[
\int_{-\pi}^{\pi} f(x) \cos x \; dx =
\int_{-\pi}^{\pi}a_1(\cos x)^2 \; dx = a_1\pi
\]
这样, \(a_1​\) 就求解出来了。利用这个方法我们可以求出每个系数,自然就实现了利用正交函数进行级数展开

但我们还是觉得麻烦 !!!! \(\sin\)\(\cos\) 交替出现有木有觉得非常繁琐 !!!

还记得欧拉公式吧,\(e^{j\varphi} = \cos\varphi + j\sin\varphi\) ,利用 \(e^{j\varphi}\) 我们可以同时表示 \(\sin\)\(\cos\)

于是就有了,如果 \(f(x)\) 是以 \([-\pi, \pi]\) 为周期的周期函数,则: \[
f(x) = a_0 + a_1 e^{jx} + a_2 e^{j 2x} + a_3 e^{j 3x} + \ldots
\]
如何求解系数 ??

自然就是 \(f(x)\)\(e^{-j k x}, k \in \mathbb N\) 相乘然后在一个周期(\([-\pi, \pi]\))中进行积分了

回到等式(6) 和 (7),证明如下:

然后 等式(7)左右两边同时 乘以 \(e^{-jk\omega_0t}\) ,这里 \(k \in [ \cdots, -2, -1, 0, 1, 2, \cdots]\) ,并在区间\([-T/2, T/2]\) 上积分,可以看到只有含有 \(a_k\) 的项积分不为0,于是等式(6)就出来了。

注:

  1. 可以使用傅里叶级数展开的严格条件 – 狄利克雷条件,其实没啥用

  2. 傅里叶级数表达式是时域表达式,并没有涉及到频域概念,仔细想想,我们只是将时间轴上的周期函数分解为时间轴上的一系列不同频率的在时域上的正余弦函数的叠加,仅此而已。如果不扯上时间的概念,就是傅里叶级数展开前后的所有函数自变量都是横坐标 \(x\),没有变化。

  3. 如果信号不是周期信号怎么办? – 周期延拓
    这也是刚开始让我困惑的地方,因为非周期信号为什么就不能直接傅里叶级数展开呢? 这里不从狄利克雷条件的角度思考,想一想我们的正余弦函数的定义域是 \([-\infty, +\infty]\) ,因此所有这些函数叠加起来自然是一个定义域为 \([-\infty, +\infty]\) 的函数,如果我们把所有函数的定义域局限到 \([-\pi, \pi]\), 自然合并之后的函数只有在 \([-\pi, \pi]\) 有值存在。

  4. 傅里叶级数和泰勒级数的比较
    其实泰勒级数的思想是利用多项式来逼近原函数,原理是各阶导数相等求解多项式系数,对原函数的光滑度要求很高,同时泰勒级数不是正交的
    傅里叶级数利用正交函数系来逼近原函数,好处是系数很好求
    几何上的直观描述就是将空间曲线向一组正交基投影

3. 傅里叶变换

\[
F(\omega) = \int_{-\infty}^{\infty}{f(x)e^{-j{\omega}x}dx} \\
f(x) = \frac{1}{2\pi}\int_{-\infty}^{\infty}{F(\omega)e^{j{\omega}x}d\omega} \tag {9}
\]

3.1 第一种证明(推荐)

证明如下: (其中第一个等式右边有一个小技巧 – 符号改变,用 \(y\) 代替 \(x\) ) \[
\begin{align}
\frac{1}{2\pi}\int_{-\infty}^{\infty}{F(\omega)e^{j{\omega}x}d\omega} &=
\frac{1}{2\pi}\int_{-\infty}^{\infty}{(\int_{-\infty}^{\infty}{f(y)e^{j{\omega}y}dy})e^{j{\omega}x}d\omega} \\
&= \int_{-\infty}^{\infty}{f(y)(\frac{1}{2\pi}\int_{-\infty}^{\infty}{e^{j{\omega}(x-y)}d\omega)}dy}\\
&= \int_{-\infty}^{\infty}{f(y)\delta(x-y)dy} \\
&= f(x)
\end{align}
\]
这里用到了:

  1. 前面将卷积的时候就说过,任何函数和 \(\delta\) 函数的卷积都是它本身

  2. \(\frac{1}{2\pi}\int_{-\infty}^{\infty}{e^{j{\omega}x}d\omega} = \delta(x)\) ,即 \(1_R\)\(\delta(x)\) 互为傅里叶变换,或者也可以称为 \(\delta\) 函数的定义。但 我们不能在推导傅里叶变换的过程中使用该定理
    在前面介绍 \(\delta\) 函数的时候已经给出了证明

3.2 第二种证明

为什么傅里叶级数只适用于周期信号呢,因为上面式子\((7)\) 使用到了周期函数的周期 \(T\), 积分上下限必须存在

那么问题来了,如何处理非周期信号???

其实准确地说,是那种定义域本身就无穷大的非周期信号,比如 \(f(x) = e^x\), \(x \in [-\infty, +\infty]\) 这种。如果非周期信号上下限已知,直接周期延拓不就好了吗?

将周期信号的周期 \(T\) 视为无穷,就会得到傅里叶变换,推导如下:

傅里叶变换
考虑上述两个信号, \(\tilde x(t)\) 对应为 \(x(t)\) 的周期延展。对于周期信号 \(\tilde x(t)\),对应的傅里叶级数为:
\[
\begin {align}
a_k &= {1 \over T} \int_{-T/2}^{T/2} \tilde x(t)e^{-jk\omega_0t} \;dt \\
&= {1 \over T} \int_{-T/2}^{T/2} x(t)e^{-jk\omega_0t} \;dt \\
&= {1 \over T} \int_{-\infty}^{+ \infty} x(t)e^{-jk\omega_0t} \;dt \\
\end {align}
\]
\(|t| \le T/2\)中,\(x(t)\) 才存在,范围之外的值为0 现在定义 \(X(j\omega)\)\(Ta_k\) 的包络,其中的 \(k\omega_0\)\(\omega\) 代替,注意这里只是形式上的改变,没有改变方程。

为什么要重新定义 \(Ta_k\) ,而不是单独的 \(a_k\) 呢?

因为当 \(T \rightarrow \infty\) 时,\(\cfrac {1}{T} \rightarrow 0\), \(a_k \rightarrow 0\) ,但 $T a_k = _{-}{+}x(t)e{-jt}dt $ 还是有希望不趋近于 0 的,也就是说分析这个数是有价值的,其实这个数就是频谱密度函数。于是: \[
X(j\omega) = \int_{-\infty}^{+\infty}x(t)e^{-j\omega t}dt \tag{10}
\]
显然, \(a_k\) 只是 \(X(j\omega)\) 的等间隔采样
\[
a_k = {1 \over T}X(jk\omega) \tag{11}
\]
此时把公式(11)带入到公式 (6) \[
\tilde x(t) = \sum_{k=-\infty}^{+\infty}{1 \over T}X(jk\omega_0)e^{jk\omega_0t}
= \sum_{k=-\infty}^{+\infty} {1 \over 2\pi} X(jk\omega_0)e^{jk\omega_0t} \omega_0 \tag{12}
\]
(12)式中只含有 \(\omega_0\)\(k\omega_0\),假设非周期函数没有范围限制,即 \(T \to \infty, \omega_0 \to 0, k\omega_0 = \omega\), 此时我们熟悉的傅里叶变换出现了:
\[
x(t)=\lim_{T \to +\infty} \tilde x(t)
= \lim_{\omega_0 \to 0} \tilde x(t)
= {1 \over 2\pi} \int_{-\infty}^{+\infty}X(j\omega)e^{j\omega t} d\omega \tag{13}
\]
将公式(10)写下来:
\[
X(j\omega) = \int_{-\infty}^{+\infty}x(t)e^{-j\omega t}dt
\]

类似于傅里叶级数要求的级数一致收敛,傅里叶变换要求函数绝对可积

如果 \(x(t)\) 不满足绝对可积,那么 \(X(j\omega)\) 只能写成 \(X(\omega)\), 因为 \(x(t)\) 进行傅里叶变化后,会出现 \(\delta(\omega)\) 函数,因为常数和 \(\delta(\omega)\) 互为傅里叶变换对。

One thought on “数字信号处理之傅里叶级数和傅里叶变换 (1)

发表评论

电子邮件地址不会被公开。 必填项已用*标注