寫下一個級數,和信任它,是兩回事
在前幾篇指南裡,你搭起了一個三角傅立葉級數:你拿一個週期訊號,用歐拉-傅立葉積分算出它的係數,然後寫下 f(x) = a_0/2 + sum (a_n cos(n x) + b_n sin(n x))。那個等號,值得你狠狠盯一眼。算係數只是製造出一個候選級數;這個無窮和究竟是否真的加得回原來的 f——又在哪些點上加得回——這是一個完全獨立的問題。這正是你在第一卷裡見過的那個區分:一個你能寫下來的無窮級數,和一個真正收斂的級數,並不是一回事。
讓這件事變得緊迫的是:傅立葉的全部賣點,恰恰是那些參差不齊的訊號——方波脈衝、鋸齒斜坡、電路的開關跳變。這些函數帶著跳躍,而跳躍正是你該擔心的地方:一堆處處光滑、各自處處連續的正弦和餘弦之和,怎麼可能重現出一道懸崖邊?它沒法以樸素的方式逐點做到這一點,而對它實際做了什麼的誠實記賬,正是本篇指南的主題。我們需要一個能用的收斂判據、一個在跳躍處明確的裁決,以及對級數唯一一處失常之地毫不迴避的審視。
狄利克雷條件:一個用眼睛就能跑的判據
乾淨、實用的答案來自**狄利克雷條件**。它們是一組友好的假設——一眼就能驗證,不需要任何重型機械——保證級數收斂,並告訴你它在每一個點上究竟收斂到什麼值。對週期函數 f 來說:如果在一個週期上,f 是絕對可積的(|f| 的定積分有限)、只有有限個極大與極小、且只有有限個各自有限的跳躍間斷點,那麼它的傅立葉級數處處收斂。就這些——三件你看一眼圖就能確認的事。
現在是逐點的裁決。在 f 連續的地方,級數收斂到 f(x) 本身——這不意外。在 f 有跳躍的地方,級數收斂到跳躍的中點:右極限與左極限的平均 (f(x+) + f(x-))/2。這一條,正是實用上最要緊的。級數拒絕選邊站;它取折中。一個在原點從 -1 躍到 +1 的方波,它的傅立葉級數在原點處恰好收斂到 0——而事實上每一項 sin(n·0) 在那裡都為零,算術完全對得上。這就是跳躍處的收斂,它不是一個需要道歉的缺陷;它是那個精確、正確的答案。
在實踐中怎麼用這個判據
擁有一個可驗證的判據,回報在於:替一項傅立葉計算辯護,從一個研究課題縮成一次快速的目檢。你幾乎從不需要重型的 L^2 理論;你確認訊號是分段光滑、跳躍有限的,就立刻知道這個級數是合法的,以及它在每一點落在哪裡。下面就是整套流程,跑在鋸齒函數 f(x) = x(從 (-pi, pi) 週期延拓)上。
- 查絕對可積性:|x| 在 (-pi, pi) 上的積分是 pi^2,有限。通過。
- 查極值點有限:x 在開區間上單調遞增——內部沒有轉折點。通過。
- 查有限個有限跳躍:週期延拓在 x = pi(及其副本)處從 +pi 跌到 -pi。每週期一個跳躍,大小為有限的 2pi。通過。
- 讀出裁決:處處收斂;在每個內部點都等於 x;而在跳躍點 x = pi 處,級數收斂到中點 (pi + (-pi))/2 = 0——而不是函數值 pi。
有兩條值得內化的警告。其一,級數在 x = pi 處返回的值(也就是 0),乾脆就不是你也許會替 f 在那裡寫下的 pi——而這沒關係,因為傅立葉級數從來只在乎 f 在孤立跳躍點之外的取值。如果這讓你不安,把 f 在跳躍處重新定義為它自己的中點,級數與函數就完全吻合。其二,正是這條中點法則會在半區間展開裡咬人:對一個在端點處非零的函數取奇延拓,就在那裡製造出一個全新的跳躍,於是它的正弦級數在端點處坍縮為 0——儘管你原來的 f 在區間上完全連續。那個跳躍是延拓造出來的,原始數據裡並沒有——這是只盯著公式、忘了圖像時一個經典的困惑來源。
吉布斯現象:一個不肯消失的過衝
於是級數處處收斂——在跳躍處,收斂到中點。你現在也許會期待:項數足夠多的部分和,無非就是 f 的一個略微圓滑的版本,隨著加項越來越緊地貼住它。看看實際發生了什麼。畫出方波(從 -1 跳到 +1)的部分和,比如取十項:它確實把平台貼得很好,但就在跳躍旁邊,它竄上到大約 1.179 才折回——一個高出真值 1 大約跳躍高度 9% 的鼓包。再加九十項。這鼓包變窄了,更擠向跳躍,但它的高度並不縮小:它仍然過衝到大約 1.179。加上一百萬項;同樣的過衝。這個頑固、不死的尖峰,就是吉布斯現象。
請細細體會這有多奇怪。我們剛剛藉狄利克雷條件證明了級數在每一點都收斂。吉布斯過衝並不與此矛盾,原因美妙而微妙:收斂是逐點的,而過衝之所以倖存,是因為它的位置一直在移動。固定跳躍右側任意一個點 x_0;隨著你加項,那個鼓包終將滑過 x_0,那裡的部分和確實會安定到真值。沒有任何一個固定的點被永久地過衝——所以級數在每一點都收斂。但總存在某個點,離跳躍越來越近,部分和在那裡仍以那固定的約 9% 在過衝。這個瑕疵從不在任何一個靜止的點上停留得足夠久,讓逐點收斂把它抹掉。
那 9% 是從哪來的
過衝不是方波的怪癖;它是跳躍的一個普適常數,可以追溯到一個特定的積分。當你把傅立葉級數的前 N 項加起來,可以把部分和改寫成 f 與狄利克雷核的卷積,而恰在跳躍處,這個卷積約化成 (sin t)/t 的一段積分——也就是正弦積分 Si(x) = 從 0 到 x 的 (sin t)/t 之積分背後的那個被積函數。過衝的高度,完全由 Si 在安定之前的行為決定,而 Si 會超出它自己的極限。當 x 增大到無窮,Si(x) 攀升到 pi/2 約 1.571——但它不是單調攀升;它的第一個峰,在 x = pi 處,達到 Si(pi) 約 1.852,越過了那個最終值。
Final limit: Si(infinity) = pi/2 ~ 1.5708 (the Dirichlet integral)
First peak: Si(pi) ~ 1.8519 (where the partial sum tops out)
Fractional overshoot of a unit step:
Si(pi)/(pi/2) - 1 = 1.8519/1.5708 - 1 ~ 0.1789
so the partial sum reaches ~ 1.0895 on a step of height 1
==> excess ~ 0.0895 = about 8.95% of the JUMP height
Square wave -1 -> +1 (jump = 2):
peak ~ 1 + 0.0895 * 2 ~ 1.179 (vs. true value 1)讀出結論:部分和的峰值大約在 1 + 0.0895 乘以跳躍處,所以對跳躍為 2 的方波,它達到約 1.179,正是我們看到的那個數。兩點澄清讓這話保持誠實。過衝的百分比才是那個普適常數——約為跳躍的 8.95%,對任何狄利克雷類函數的任何跳躍都一樣——但鼓包的絕對高度,當然隨跳躍有多大而成比例變化。而隨著項數增多確實改善的,是振鈴的寬度:過衝被壓進一道越來越細、緊貼跳躍的窄縫,縱然它的峰高拒絕下降。更多的項把損傷局部化;它們從不治癒它。
與之共處:光滑性、能量,以及一種補救
為什麼方波遭此一劫,而光滑訊號卻安然通過?歸根到底,在於係數衰減得多快,而這由 f 的光滑性決定——你能感到這個主題迴響著光滑函數的泰勒級數為何收斂得那麼甘願。一個帶跳躍的函數,它的傅立葉係數只像 1/n 那樣消退,慢得遠不足以讓尾巴一致地消失,而那條遲緩的尾巴,恰恰就是振鈴。把拐角磨平——讓 f 連續,或可微——係數就像 1/n^2 或更快地下落,尾巴變得可忽略,收斂轉為一致,根本不再有過衝。吉布斯是一道貨真價實的間斷的簽名,僅此而已。
這裡有一條令人寬慰的記賬。吉布斯尖峰雖高,卻薄得趨於消失,所以它幾乎不攜帶能量:它對 f^2 總積分的貢獻,隨 N 增大而縮到烏有。這就是為什麼帕塞瓦爾定理——那本把 f^2 的積分等同於係數平方和的能量賬——儘管有過衝卻依然精確成立,也是為什麼即便在級數無法一致收斂之處,它仍在均方意義下收斂。那道偏差對眼睛是真實的,對能量卻是隱形的。兩個不同的問題,兩個不同的答案;誠實,就在於把它們分開。
而如果振鈴真的妨礙了你的應用——重建圖像裡銳邊旁可見的光暈、數值解裡虛假的振盪——有一種實用的補救。與其在第 N 項粗暴地截斷級數(一刀切的矩形截斷,正是它造出了振鈴),不如在截斷之前,用一個光滑的加權把高頻係數溫和地壓低。像費耶爾平均或蘭喬斯西格瑪因子這樣的方法做的正是這件事,以邊緣處一點點模糊,換取過衝的消除。值得帶走的教訓是:吉布斯不是傅立葉想法裡的一個漏洞,它是用光滑的波去表示一個瞬時跳躍所付的誠實代價——而你駕馭它的辦法,是軟化函數本身、或軟化你截斷求和的方式,絕不是簡單地加更多項。