本文所述内容属于《积分变换》这门学科的核心内容,所谓“积分变换”其实本质上是一个函数通过含参变量的积分变换成另一个关于参变量的函数的过程,如:
F(\alpha) = \int_{a}^{b} f(t) K(t, \alpha) dt
其中
K(t, \alpha)表明了两种变量t和
\alpha的关系,是确定的,称为积分变换的核,
f(t)是象原函数,
F(\alpha)为经过K积分变换后的函数称为象函数。一般来说变换前后的两个函数的定义域是取决于积分变换核
K(t, \alpha)的定义域的,即必须要满足核函数
K(t, \alpha)的定义域才能谈积分上下限(上面例子中的t变量的定义域确定了变换的上下限)。在一定条件下这个变换是可逆的且是一一对应的。
积分变换在图像特征提取,信号处理,甚至在解常/偏微分方程都能提供一个强有力的武器,可以说是不可或缺的方法。本文主要是推导和举例傅里叶变换和拉普拉斯变换两种最常见的变换的过程
傅里叶变换
傅里叶积分公式
说到傅里叶变换就必须要推一个公式即傅里叶积分公式,推导过程严重依赖高等数学上的一类级数——傅里叶级数。我们知道,级数常见主要是幂级数和傅里叶级数,它的实质是将一些特定复杂的函数用一些基础函数通过求和(计算出的和函数)逼近来表示,如果说幂级数的话就是对应原始函数的各阶导数(泰勒公式展开)作为幂级数的系数,以及
(1,x,x^2,...,x^n)函数族作为基础函数的求和式,而傅里叶级数的基础函数则变成了三角函数,由于三角函数具有周期性的特性,所以傅氏级数能更加好的解决诸如矩形波、简谐波等具有周期特性的复杂函数。
设一以
T为周期的函数
f_T(t),它的傅里叶级数展开式为:
f_T(t) = \frac{a_0}{2} + \sum_{n=1}^{\infty}(a_n cosn\omega t + b_n sinn\omega t)
其中有
\omega = \frac{2 \pi}{T}为角频率,这里就引出了两类傅里叶系数
a_n和
b_n。
函数表示成傅里叶级数是需要满足狄利克雷条件的,即:①函数需要连续或者第一类间断点是有限个的,②函数的极值点也是有限的,因为只有满足这两个条件才能在原函数的间断点处有定义
在推导
a_n和
b_n时,我们知道在一个周期内,
(1,cosi\omega t,sinj\omega t)构成了一个函数集,它有个特点就是在周期上下限对每个和自己不同的函数的乘积的积分为0(这个可以举例证明)而和自身的乘积的积分不为0,所以要求
a_n直接让等式两边同时乘以
cosn\omega t再在一个周期内积分就行,
b_n亦然,故此时
a_n = \frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)cosn\omega tdt
b_n = \frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)sinn\omega tdt
n都约定俗称为自然数
引入欧拉公式
e^{j\varphi} = cos\varphi + isin\varphi
这个公式可以由sinx的泰勒展开级数,cos的泰勒展开级数以及
e^x的泰勒展开级数分别代入即可得到
所以有
cos\varphi = \frac{e^{j\varphi} + e^{-j\varphi}}{2}
sin\varphi = \frac{e^{j\varphi} - e^{-j\varphi}}{2j}
得到了三角函数的表达式后就可以带入上面的
f_T(t)的表达式啦,所以
f_T(t) = \frac{a_0}{2}+ \sum_{n=1}^{\infty}[a_n \frac{e^{jn\omega t} + e^{-jn\omega t}}{2} + b_n \frac{e^{jn\omega t} - e^{-jn\omega t}}{2j}]
= \frac{a_0}{2} + \sum_{n=1}^{\infty}[\frac{a_n - jb_n}{2}e^{jn\omega t} + \frac{a_n + jb_n}{2}e^{-jn\omega t}]
这里令
c_n = \frac{a_n - jb_n}{2}
c_0 = \frac{a_0}{2}由上面推导的
a_n,
b_n公式有
c_n = \frac{\frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)cosn\omega tdt - j \frac{2}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)sinn\omega tdt}{2}
= \frac{1}{T} [\int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)cosn\omega tdt - j\int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)sinn\omega tdt ]
= \frac{1}{T}\int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)(cosn\omega t - j sinn\omega t)dt
= \frac{1}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)e^{-jn\omega t}dt
故有
c_n = \frac{1}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)e^{-jn\omega t}dt
代入n=0,其实就是
\frac{a_0}{2}的表达式,更一般地,若令
c_{-n} = \frac{a_n + jb_n}{2},一样可以推理出
c_{-n} = \frac{1}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)e^{jn\omega t}dt观察可知,只取决于n,故写在一起有:
c_n = \frac{1}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)e^{-j\omega_n t}dt
其中
n\in Z,为了方便,令
\omega_n = n\omega,(即将角频率的倍数转化成了角频率序列,为后面的频域的引出有了理论支持)
由上面的
f_T(t)用
c_n来表示可得:
f_T(t) = c_0 + \sum_{n=1}^{\infty}(c_n e^{j\omega_n t} + c_{-n} e^{-j\omega_n t})
= \sum_{n=-\infty}^{+\infty} c_n e^{j\omega_n t}
然后再将
c_n的推导式代入,则有
f_T(t) = \sum_{n=-\infty}^{+\infty} [\frac{1}{T} \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)e^{-j\omega_n t}]e^{j\omega_n t}
公因数提出有
f_T(t) = \frac{1}{T}\sum_{n=-\infty}^{+\infty} [ \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(t)e^{-j\omega_n t}dt]e^{j\omega_n t}
根据积分函数与积分变量无关,有
f_T(t) = \frac{1}{T}\sum_{n=-\infty}^{+\infty} [ \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(\tau)e^{-j\omega_n \tau}d\tau]e^{j\omega_n t}
以上即是通过周期函数
f_T(t)推导出来的结果,但是现实中一般都是非周期函数,怎么办呢?其实任何一个非周期函数都可以看成是对某个周期函数的周期T取无穷极限转化而来的,比如假设非周期函数
f(t)在一个区间
[\frac{T}{2}, \frac{T}{2}]等于周期函数
f_T(t),那如果我们加大T,则表示相等的区间范围则会更大,即使在
[\frac{T}{2}, \frac{T}{2}]以外的部分也可以进行周期延拓到R上,所以有
\lim_{T \to +\infty} f_T(t) = f(t)
所以对于非周期函数
f(t)有:
f(t) = \lim_{T \to +\infty}\frac{1}{T}\sum_{n=-\infty}^{+\infty} [ \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(\tau)e^{-j\omega_n \tau}d\tau]e^{j\omega_n t}
注意到
\Delta\omega_n = \omega_n - \omega_{n-1} =
n\omega - (n-1)\omega =
\omega =
\frac{2\pi}{T}故因为T趋近无穷,则说明
\Delta\omega_n \to 0 ,所以转化为
f(t) = \lim_{\Delta\omega_n \to 0}\frac{1}{2\pi}\sum_{n=-\infty}^{+\infty} [ \int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(\tau)e^{-j\omega_n \tau}d\tau]e^{j\omega_n t}\Delta\omega_n
为了方便推导,令
\Phi_T= \frac{1}{2\pi}[\int_{-\frac{T}{2}}^{\frac{T}{2}} f_T(\tau)e^{-j\omega_n \tau}d\tau] e^{j\omega_n t}
这里的
\Phi函数是关于变量
\omega_n的函数,所以有
f(t) = \lim_{\Delta\omega_n \to 0} \Phi_T(\omega_n) \Delta\omega_n
这个式子是不是很熟悉?它就是常说的定积分定义式,积分上下限为正负无穷,故
f(t) = \int_{-\infty}^{+\infty} \Phi_T(\omega)d\omega
将
\Phi函数代换回来就有了
f(t) = \frac{1}{2\pi}\int_{-\infty}^{+\infty} [\int_{-\infty}^{+\infty} f_T(\tau)e^{-j\omega \tau}d\tau] e^{j\omega t}d\omega
这个式子就是傅里叶积分公式,非常重要!!
需要满足的条件
正如傅里叶级数有狄利克雷收敛准则一样,傅里叶积分公式也有,即如果任何一个函数满足①函数需要在任意的有限长度的区间上满足狄利克雷条件,②函数需在R上绝对可积,即积分
\int_{-\infty}^{+\infty} |f(t)|dt收敛
如果函数
f(t)存在间断点,则在间断点
t_0处满足
f(t_0) = \frac{f(t+0) + f(t-0)}{2}
傅里叶变换
从上面的积分公式定义而来,假设f(t)在R上满足傅里叶积分公式需要满足的条件,则函数
F(\omega) = \int_{-\infty}^{+\infty} f_T(t)e^{-j\omega t}dt
为函数
f(t)的傅里叶变换(即积分公式的中括号部分)
时域变换为频域
称函数
f(t) = \frac{1}{2\pi}\int_{-\infty}^{+\infty} F(\omega)e^{j\omega t} d\omega
为函数
F(\omega)的傅里叶逆变换
频域变换为时域
(图片来源于百度)
f(t)和
F(\omega)互为变换对,
f(t)称为象原函数,
F(\omega)称为象函数
性质
假设用
\mathscr{F} 表示傅里叶变换,即
F(\omega) = \mathscr{F}[f(t)],显然有
\mathscr{F}[\alpha f_1(t) + \beta f_2(t)] = \alpha F_1(\omega) + \beta F_2(\omega)这个称为线性性质,使得它在线性系统的应用上占有非常重要的地位
它还有位移性质,即
\mathscr{F}[f(t+t_0)] = e^{j\omega t_0} \mathscr{F}[f(t)]换元积分法可证
最重要的是微分性质和积分性质,
\mathscr{F}[f’(t)] = j\omega \mathscr{F}[f(t)]分部积分,将f'(t)甩到后面去
特别的,有
\mathscr{F}[f^{(n)}(t)] = (j\omega)^n \mathscr{F}[f(t)]对应的就有象函数的导数性质了,即
\frac{d}{d\omega}F(\omega) = \mathscr{F}[-jtf(t)]\frac{d^n}{d\omega^n}F(\omega) = (-j)^n\mathscr{F}[t^nf(t)]\mathscr{F}[\int_{-\infty}^t f(t)dt] = \frac{1}{j\omega}\mathscr{F}[f(t)]该两个性质对解微分方程非常实用,直接在方程左右两段进行傅里叶变换即可,这样一来就把导数去掉了,但是有个条件是微分方程自变量的定义域是R才行,这也是该变换的一个局限,但是一般现实生活中比方说时间t是不可能为负的,为了解决这个场景的问题,引入了拉普拉斯变换
拉普拉斯变换
傅氏变换需要满足在R上绝对可积,这是很有局限的,一方面我们想让定义域为某一段区间,另一方面像阶跃函数这些不绝对可积的函数也可以做变换,这怎么办呢?
任意一个函数
\varphi(t),用单位阶跃函数
u(t)与它相乘,自然而然当t<0时乘积结果为0,这样就把区间从R缩小到
(0,+\infty)了,再利用位移性质则可以缩小到其他区间上,这样就解决了定义域问题。
一般来讲,指数衰减函数
e^{-\beta t}是绝对可积的,用它乘以任何一个函数也有可能绝对可积,它的作用是对一些间断点和离散点的补充衰减,只要参数
\beta选取的得当,就存在乘积绝对可积的情况(黎曼积分中的一个推论)
所以让这两个函数乘以函数
\varphi(t),就可以知道在参数
\beta选取的得当的情况下就满足傅氏变换的条件了,故:
\varphi(t)u(t)e^{-\beta t}G_{\beta}(\omega) = \mathscr{F}[\varphi(t)u(t)e^{-\beta t}]
= \int_{-\infty}^{+\infty} \varphi(t)u(t)e^{-\beta t}e^{-j\omega t}dt
由于u(t)为阶跃函数,所以原式为
\int_{0}^{+\infty} \varphi(t)u(t)e^{-(\beta+j\omega) t}dt
令s=
\beta + j\omega,则:
F(s) = \int_{0}^{+\infty}\varphi(t)u(t)e^{-st}dt
= \int_{0}^{+\infty}f(t)e^{-st}dt
所以傅里叶变换式子为:
F(s) = \mathscr{L}[f(t)] = \int_{0}^{+\infty}f(t)e^{-st}dt
f(t)为象原函数,F(s)为象函数
需要满足的条件
- 在t>a的任意一有限区间连续或分段连续
- f(t)的增长速度不能超过某指数函数
因为如果超过的话,衰减函数的作用就没了
性质
\mathscr{L}[\alpha f_1(t) + \beta f_2(t)] = \alpha F_1(s) + \beta F_2(s)
\mathscr{L}[e^{at}f(t)] = F(s-a)
表明象原函数乘以函数
e^{at}的拉氏变换是其原函数向右移a位
\mathscr{L}[f(t-\tau)] = e^{-s\tau}F(s)
\mathscr{L}[f'(t)] = sF(s) - f(0)
涉及到这种含导数的积分一般都可以用分布积分来证明
那么自然有
\mathscr{L}[f''(t)] = s^2F(s) - sf(0)- f'(0)
故
\mathscr{L}[f^{(n)}(t)] = s^nF(s) - \sum_{i=0}^{n-1}s^{n-1-i}f^{(i)}(0)
若所有初值都为0的话,则有
\mathscr{L}[f^{(n)}(t)] = s^nF(s)
积分性质是
\mathscr{L}[\int_{0}^{1}f(t) dt] = \frac{1}{s}F(s)
这对微分方程的求解非常友好,直接方程两边做拉氏变换就把导函数去掉变成代数方程,是数学系常微分方程经典解法之一,可以说第一次接触这个时是被惊艳到了!
总结
本文侧重于这两个变换是怎么产生推导的,对其应用只是随笔带过,因为市面上这些变换的应用非常广泛,比如信号处理,图像变换等,而且有比较丰富的工具包和软件可以开箱即用,退一步说也只需要记住两个变换的公式就能做一些应用,但作为积累者也依然需要知其然和知其所以然嘛 一起加油!!
参考资料:《工程数学积分变换》