(三)傅里叶变换:从傅里叶变换卷积到窗函数再到拉普拉斯变换

前言

本篇从卷积概念开始,结合傅里叶变换的机理一直引出窗函数的概念并推导出拉普拉斯变换公式。

1. 卷积(convolution)

C(x)=f(x)*g(x)=\int_{-\infty }^{+\infty}f(\tau )g(x-\tau )d\tau

上面这个卷积公式基本上所有人都见过,一般都说“把一个函数g顺着x轴向原函数f滑过去就是卷积”,但是讲道理博主一直也没弄明白怎么滑了,而且哪卷了,最近刚好有时间研究了一下,才明白是这么回事:

先假设有上面两个函数f和g,变量用\tau表示避免一会儿引入x时混淆,对g做一下变形,沿着y轴翻转,得到g(-\tau ),再指定一个变量x,使g(-\tau )向右移x得到g(-\tau +x)=g(x-\tau)

再把g(x-\tau)f(\tau )叠在一起:

这样f(\tau )g(x-\tau)就相当于在两个函数都不为零的区间(虚线部分)内相乘,f(\tau )在对应点加了g(x-\tau)的权重,而随着x不断变化即相当于g(x-\tau)在横轴上不断滑动,积分即求f(\tau )加权后的和,一般把函数g(x )也叫做卷积核,所以其实这玩意感觉叫叠积更合适点。

当然这样纯数学解释还是很抽象,比如加权就算了,求和干什么?所以还是得结合实际运用场景来理解,比如,假设我有一个直流电机,t=0的时候给它一个脉冲信号u[0],对这个脉冲信号,响应函数是g(t),假如它长这样(当然这里u[0]和g(t)的幅值单位是不一样的,u[0]是个信号幅值而g(t)只是个倍数,大小关系也并不如图所示,只是画在一起方便说明)

如果我想知道只输入了这一个u[0]后,在t=t[n]时的系统响应,就只需要计算u[0]g(t)就知道了,那如果不是u[0],而是在某时间点的u[k]呢?其实对g来说无非也就是把右移的坐标k减掉而已,u[0]g(t-k)

而实际过程中,从起始点0到结束点t,输入信号有n个,这时候如果想知道中间某个时刻的系统响应,无非就是把上面的动作做n遍,对其结果求和,系统响应:

W(t)=\sum_{k=0}^{n-1}u[k]g(t-k)

黎曼积分形式,如果是连续函数,写成积分形式,就是

W(t)=\int_{0}^{t}u(\tau )g(t-\tau )d\tau

积分的下限是0,因为t>=0,而系统只能接收已经历时间的激励,所以积分上限是t,而如果变量x在±∞都有意义,就是传统的卷积公式了

W(t)=\int_{-\infty }^{\infty }u(\tau )g(t-\tau )d\tau

顺带一提,卷积符合交换律、结合律、分配律。


2. 频谱泄露与窗函数

先前的两篇帖子里有提到过,傅里叶变换只对在两端点衰减为0的信号有意义,以及当信号出现不连续的跳跃点时会产生吉布斯效应。

而一般来说我们处理的真实信号都是截取某一段,比如正弦波f(x)=sinx,当我们截取[0,2pi]时,函数在两个端点都为0,对这段信号做傅里叶变换不会出现异常,但是如果截取的是比如[pi/2,3pi/2]这一段呢?在两个端点处f(pi/2)=1,f(3pi/2)=-1,这时候如果强行截取,相当于给原函数乘了一个矩形函数g(x)=\left\{\begin{matrix} 1,\frac{\pi}{2}\leq x\leq \frac{3\pi}{2}\\0 ,elsewhere \end{matrix}\right.

而根据前面提到的傅里叶变换中的卷积定理,\mathcal{F}(f*g)=\mathcal{F}(f)\mathcal{F}(g)=\hat{f}\hat{g},反过来一样成立,即\mathcal{F}(fg)=\mathcal{F}(f)*\mathcal{F}(g),先把两个端点广义化为[a,b],而矩形函数的傅里叶变换为\hat{g}(\omega )=\frac{2sin(\omega (b-a)/2)}{w}e^{-j\omega \frac{a+b}{2}},chatgpt画出来大概长这样

两根须子是sinx傅里叶变换后的频域图,因为频率只有1,所以显示为±1

按照卷积方程,窗函数在原函数频域曲线上滑动卷积之后,就变成了橙色这根线,频谱能量被滑到了附近频率(对于窗函数来说,中间最高的这段叫主瓣(main lope),旁边逐渐变矮的叫旁瓣(side lope)),就是所谓的频谱泄露,导致做频谱分析时得出不准确的结果。

而为了解决这个问题(其实不能完全解决,因为这种泄露是不可避免只能减小的,不同窗函数都有不同程度的特性,一般旁瓣越低频谱泄露越小,但一般会导致主瓣变宽,主瓣越宽频率分辨率越低),就要根据原函数特性和需要达到的效果选择不同的窗函数,比如对于光谱分析、峰值检测就选用主瓣窄的比如矩形窗来提高频率分辨率,对于幅值测量、弱信号检测等对频谱泄露敏感的就选一些旁瓣衰减快的比如布莱克曼窗,而大部分时候汉宁(Hanning)窗和汉明(Hamming)窗有较好的平衡性,可以说适用于90%的场景,其表达式:

汉宁窗:w(n)=0.5-0.5cos(\frac{2\pi n}{N-1})

汉明窗:w(n)=0.54-0.46cos(\frac{2\pi n}{N-1})

其中n指样本索引,N是窗函数长度,傅里叶变换后和长得和矩形窗形态类似,区别于主瓣宽度、旁瓣衰减速度。


3. 傅里叶变换到拉普拉斯变换

本科时候学控制工程书上直接就说有个拉普拉斯变换,每个函数是这么变的,记住就完了,最近才知道其实也是从傅里叶变换卷积出来的,基本思想如下:

还是因为傅里叶变换只适用于取值范围两端点衰减到0的函数,而对于比如指数信号、阶跃信号等很明显不论怎么取值也不会满足这个特性,所以拉普拉斯变换的解决办法就是对于f(t)乘上e^{-\gamma t},确保当t→+∞时衰减为0,再乘一个H(t)=\left\{\begin{matrix} 0,t<0\\1,t\geq 0 \end{matrix}\right.,确保当t<0时也衰减到0,

F(t)=f(t)e^{-\gamma t}H(t)=\left\{\begin{matrix} 0,t<0\\ f(t)e^{-\gamma t},t\geq 0 \end{matrix}\right.   (1)

所以,对F(t)做傅里叶变换

\mathcal{F}(F(t))=\int_{-\infty }^{\infty }F(t)e^{-i\omega t}dt \\\\= \int_{0 }^{\infty }f(t)e^{-\gamma t}e^{-i\omega t}dt \\\\= \int_{0 }^{\infty }f(t)e^{-(\gamma+i\omega ) t}dt

s=\gamma +i\omega,继续变形

\mathcal{F}(F(t))= \int_{0 }^{\infty }f(t)e^{-s t}dt=\bar{f}(s)=\mathcal{L}(f(t))   (2)

其反变换

f(t)=e^{\gamma t}F(t)=\frac{1}{2\pi i}\int_{\gamma -\infty }^{\gamma +\infty}\bar{f}(s)e^{st}ds  (3)

继续如果对f(t)的导数做拉普拉斯变换,又有:

\mathcal{L}(\frac{df(t)}{dt})=-f(0)+s\bar{f}(s)  (4)

再求导:

\mathcal{L}(\frac{d^2f(t)}{dt^2})=s^2\bar{f}(s)-sf(0)-f'(0)  (5)

根据(1)(2)(3)(4)就可以推导出一些我们常见函数的拉普拉斯变换,进而可以用于解微分方程(将常微分方程直接转化为非微分方程求解,再逆变换得到所需结果,过程与上一篇使用傅里叶变换将PDE变为ODE类似,这里不举例了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值