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) 的逆變換,正是連接二者的那個鉸鏈。