JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

卷积、阶跃与冲激

在 s 世界里把两个变换相乘很容易,但回到时间,它就变成一种叫卷积的混合。再添上赫维赛德开关与狄拉克的猛击,变换便能驾驭那些骤然开启、或在一瞬间击打的输入。

把两个变换相乘,意味着什么?

到这一步,那个节奏已经长进你骨头里了:变换、在 s 域里做代数、求逆。而做代数这一步,不断把*乘积*塞到你手里。当你解一个线性常微分方程,你会走到 Y(s) = H(s) X(s)——输出的变换等于传递函数乘以输入的变换——而要把它求逆,你必须回答一个尖锐的问题:若 F(s) 与 G(s) 是 f(t) 与 g(t) 的变换,那么乘积 F(s) G(s) 属于哪个时间函数?诱人的猜测是 f(t) g(t),即逐点乘积。这个猜测是错的,而看清它为何错,便打开了通往本学问中最有用的想法之一的那扇门。

一个快速的可信度检验就杀死了那个错猜测。取 f(t) = g(t) = 1,它们经变换给出的积分是 F(s) = G(s) = 1/s。倘若规则真是逐点相乘,那么 F(s) G(s) = 1/s^2 的逆变换就该是 1 乘 1 = 1。可是查表可知,1/s^2 的逆变换是 t,而非 1。所以变换的乘积对应的是*全然另外一样东西*——而那样东西,是由一个滑动、重叠的积分搭起来的,绝不是把对齐时刻上的函数值相乘。

卷积:把一个函数的过去掺进另一个

在 s 域里与乘法对应的那个时间运算,叫做卷积,用一颗星号来写:(f * g)(t) = 从 0 到 t 对 f(tau) g(t - tau) d tau 积分。把这积分读成一份配方。让 tau 跑遍从 0 到当下 t 的一切过去时刻。在每个过去时刻 tau,取出 f(tau) 这个值,再用 g(t - tau) 给它加权——即第二个函数在「自 tau 起所经过的时间」处的取值。然后累加。卷积定理给出干净的承诺:L{f * g} = F(s) G(s)。s 世界里的乘积,就是 t 世界里的卷积,没有别的。

想象那个机械动作。要构造 g(t - tau),你把 g 拿来,左右翻转(那个负号),再平移,使它的原点正坐在当下时刻 t 上;然后让它与 f 重叠,把两条图像在它们共享的区域上之乘积积分起来。随着 t 推进,翻转后的 g 滑得更远,扫过 f 历史中更多的部分——这正是为什么卷积让人感到像回声、像涂抹:当下的输出,是整段过去的一个加权和。这与你日后会在傅里叶卷积定理中再次遇见的「翻转—平移—累加」是同一幅图景;这个运算是同一个想法,在各种变换间共享。

现在是求逆所得的回报。假设你做完一个常微分方程,手里握着 Y(s) = 1/(s(s^2 + 1))。你也许在任何表里都找不到它,但你认得每一个因子:1/s 是 1 的变换,而 1/(s^2 + 1) 是 sin(t) 的变换。定理说,乘积的逆变换是各逆变换的卷积,于是 y(t) = 1 * sin(t) = 从 0 到 t 对 sin(tau) d tau 积分 = 1 - cos(t)。你把一个查不到的乘积求了逆,靠的是对两块查得到的东西做卷积。这就是该定理的日常用法:拆开、认出、卷积。

赫维赛德阶跃:一个数学开关

真实的输入很少从远古一直运行;它们是被开关切换的。电压被施加、阀门被打开、力在 t = 2 秒开始。这个数学开关,就是赫维赛德阶跃函数 u(t - a):它在时刻 a 之前为 0、之后为 1,是一次从关到开的干净跳跃。在变换世界里,它是组装一切分段、通断输入的基本积木。它的变换出奇地简单——L{u(t - a)} = e^{-a s}/s,而原点处的阶跃 u(t) 变换为 1/s。

阶跃组合起来便能拼出任何分段的东西。仅在 t = a 与 t = b 之间为 1 的矩形脉冲,是 u(t - a) - u(t - b):第一个阶跃把它打开,第二个把它关回去。阶梯是若干阶跃之和;一个反复通断的信号,是若干这样的脉冲之和。要变换一个*被延迟并平移过的*信号,你用第二平移定理:L{f(t - a) u(t - a)} = e^{-a s} F(s)。换句话说,把函数在时间上延迟 a,就在它的变换上乘以 e^{-a s}——那个指数因子是纯时间延迟的鲜明标志,看到它,你在求逆时便能把一段延迟倒着读出来。

正因如此,拉普拉斯方法把处理分段强迫的经典做法碾压了。旧办法在每个区间上分别解常微分方程,然后在每个断点处费力地匹配解及其导数,以保持连续。变换的办法则把整个强迫函数编码成一个用阶跃写的表达式,变换一次、解代数一次、求逆一次——切换信息原封不动地搭着变换通过,物理上的连续性自动掉了出来。一条诚实的告诫住在自变量里:定理需要的是真正被平移过的 f(t - a),而非 f(t) 仅仅乘以一个阶跃。若你手里是 g(t) u(t - a) 而 g 尚未平移,那就先把 g 用 (t - a) 改写,再套用规则。

狄拉克 delta:理想化的猛击

有些输入不是开关,而是猛击:锤击、倾倒进去的电荷火花、碰撞——全部集中在一个瞬间。其模型,就是狄拉克 delta delta(t - a):一个持续时间为零、却总强度为一的输入,无限高、无限窄,却恰恰围出面积一。它的定义性行为是*筛选性质*:delta(t - a) g(t) 对 t 的积分 = g(a)。delta 伸进任意函数,把它在点 a 处的值掐了出来。由此,它的拉普拉斯变换一行即得——L{delta(t - a)} = e^{-a s},而原点处的 delta 变换为光秃秃的常数 1。

给系统喂一记冲激,惊人的事就发生了。解 y'' + y = delta(t),初值 y(0) = 0、y'(0) = 0。变换:因为 L{delta(t)} = 1,方程变成 (s^2 + 1) Y = 1,于是 Y = 1/(s^2 + 1),y(t) = sin(t)。请注意,同一个系统若没有强迫、又有同样的零初值,就只会永远静坐在 y = 0。t = 0 处那一记瞬时的猛击改变了一切:它在 0- 与 0+ 之间注入它的强度,实际上把速度 y' 从 0 跳到了 1,此后系统便回荡不已。冲激是一次突然的注入,而代数替你处理了它,你从头到尾都无需把时间轴切开。

冲激响应:万物在此系到一处

把一口钟猛地敲一下,听。那回荡又渐隐的声音,是这口钟的签名——而了不起的是,它告诉你这口钟将如何对任何声音作出响应。这个签名有一个精确的名字:冲激响应 h(t),即一个静止的线性系统在输入为单个单位冲激(一个狄拉克 delta)时的输出。因为 L{delta(t)} = 1,s 域输出不过是 H(s) 乘以 1,所以 h(t) 与传递函数 H(s) 是一对变换:冲激响应恰是传递函数的拉普拉斯逆变换。

现在看本篇的几条线索如何编到一起。对任意输入 x(t),s 域里的输出是 Y(s) = H(s) X(s)——一个乘积。由卷积定理,那个乘积求逆便是时间里的一个卷积:y(t) = (h * x)(t) = 从 0 到 t 对 h(tau) x(t - tau) d tau 积分。从物理上读它。把输入看成一列密集的、被缩放并延迟的冲激;系统对每一个,都回以它冲激响应被缩放并延迟的一份拷贝;你把所有回声叠加起来。这个卷积积分,对连续的输入而言*就是*叠加原理。这正是为什么钟那一声回荡就讲出了整个故事:知道了一记猛击的回声,你便靠卷积知道了任何输入的回声。

Two costumes for one fact (linear, time-invariant system at rest):

   s-domain:    Y(s) = H(s) * X(s)        ( ordinary product )
                          |
                  invert  |  convolution theorem
                          v
   t-domain:    y(t) = (h * x)(t)
                     = integral_0^t h(tau) x(t - tau) d tau

   where  h(t) = inverse-Laplace{ H(s) }   = impulse response
          ( forcing = delta(t),  zero initial conditions )

   Worked impulse:  y'' + y = delta(t),  y(0)=y'(0)=0
      L:   (s^2 + 1) Y = L{delta} = 1
           Y = 1/(s^2 + 1)
           h(t) = sin(t)        <- the impulse response itself
传递函数(s 里的乘积)与叠加积分(t 里的卷积)是同一个事实披着两件外衣——而冲激响应 h(t),即 H(s) 的逆变换,正是连接二者的那个铰链。