在數值分析领域中,吉布斯現象(Gibbs phenomenon)是傅立葉級數對具有不連續點的週期函數進行近似時出現的振盪行為。對該函數的N項傅立葉級數部分和(由函數傅立葉級數中最低的 N 個正弦波組成)在不連續點附近會出現明顯的過衝。即使使用更多的正弦項,這種逼近誤差也只會收斂到約為跳躍高度 9% 的極限,儘管無窮傅立葉級數最終仍會幾乎處處收斂。
吉布斯現象最初是由實驗物理學家觀察到的,當時人們認為這是由於測量儀器的缺陷所致,但其實這是一個純粹的數學現象。這種現象也是訊號處理中常見的振鈴效應原因之一。該現象以喬賽亞·威拉德·吉布斯(Josiah Willard Gibbs)的名字命名。
現象描述
吉布斯現象描述的是函數具有跳躍不連續時,其傅立葉級數呈現的行為。可描述如下:當傅立葉級數加入更多的組成項時,其在跳躍點附近的震盪行為會出現第一次超越,逼近跳躍高度約 9%,而這種震盪並不會消失,只會越來越接近跳躍點,使得震盪的積分趨近於零。
在跳躍點處,傅立葉級數的值是該函數在該點左右極限的平均值。
方波範例
右側的三張圖片展示了一個方波的吉布斯現象(方波的峰峰值為 c,範圍從 -c/2 到 c/2,週期為 L),其N項傅立葉級數部分和為:
\frac{2c}{\pi}\left ( \sin(\omega x) + \frac{1}{3} \sin(3\omega x) + \cdots + \frac{1}{2N-1} \sin((2N-1)\omega x) \right )
其中 \omega = 2\pi/L。更精確地說,該方波函數 f(x) 在區間 2n(L/2) 到 (2n+1)(L/2) 間等於 \tfrac{c}{2},而在 (2n+1)(L/2) 到 (2n+2)(L/2) 間等於 -\tfrac{c}{2},對於每個整數 n 成立;因此該方波在每個 L/2 的整數倍處都有跳躍不連續,跳躍高度為 c。
隨著加入更多的正弦項(即增加 N),部分傅立葉級數的誤差會收斂到一個固定高度。但由於誤差的寬度會不斷縮小,因此其面積,也就是誤差的能量,會趨近於 0。 對方波的分析顯示,誤差超過了方波由零到頂的高度 \tfrac{c}{2},其超出量為:
\frac{c}{\pi} \int_0^\pi \frac{\sin(t)}{t}\ dt - \frac{c}{2} = c \cdot (0.089489872236\dots).()
即約為跳躍總高度 c 的 9%。更一般地,對於任何具有跳躍高度 c 的分段連續可微函數,其 N項傅立葉級數部分和(當 N 趨於很大時)在跳躍點一側會出現近似 c \cdot (0.089489872236\dots) 的超出,在另一側出現等量的低估;因此級數的「總跳躍量」約為原函數的跳躍量多出 18%。在不連續點處,傅立葉級數會收斂到該跳躍的中點,這是狄利克雷定理的結果。
歷史
吉布斯現象最早由Henry Wilbraham在 1848 年的一篇論文中提出和分析。 該文在當時未受到重視,直到 1914 年被Heinrich Burkhardt在Klein's encyclopedia中提及。 1898 年,阿爾伯特·邁克耳孫開發了一種能夠計算並重建傅立葉級數的裝置。 有一則流傳甚廣的軼事說,當輸入方波的傅立葉係數時,圖形在不連續處會出現震盪。當時由於機器存在製造誤差,邁克耳孫誤以為這些超出是機器的錯誤。事實上,該裝置所產生的圖形解析度並不足以清楚展現吉布斯現象,邁克耳孫本人可能並未注意到此現象,因為他在發表的論文或隨後寄給《自然》的信件中均未提及。
在《自然》雜誌上,邁克耳孫與奧古斯塔斯·樂甫(A. E. H. Love)關於方波傅立葉級數收斂性的通信激發了喬賽亞·威拉德·吉布斯的興趣。他於 1898 年發表了一則短文,指出傅立葉級數部分和圖形的極限與部分和的極限圖形之間的重要差異。在他最初的信中並未提及吉布斯現象,並且對極限的描述有誤。1899 年,他發表了修正稿,描述了不連續點處的超出現象(《Nature》,1899 年 4 月 27 日,第 606 頁)。1906 年,馬克西姆·博謝對該超出進行了詳細的數學分析,並首次使用「吉布斯現象」一詞,從而使該術語廣為人知。
解釋
不嚴謹地說,吉布斯現象反映了以「有限個」連續的正弦波來近似一個「不連續函數」所固有的困難。這裡強調「有限」一詞很重要,因為儘管傅立葉級數的每一個部分和在每個不連續點附近都會有過衝(overshoot)的情況,無限項的總和在極限下並不會出現這種現象。當項數增加時,超出的波峰會越來越靠近不連續點,因此收斂仍是可能的。
這並不矛盾(即便超出的誤差在極限下收斂到一個非零的高度,而無限總和本身卻沒有超出),因為這些波峰逐漸向不連續點靠近。吉布斯現象因此展現出的是「逐點收斂」(pointwise convergence),而不是「一致收斂」(uniform convergence)。對於分段連續可微(即屬於 C¹ 類)的函數,其傅立葉級數在除跳躍不連續點以外的「每一點」都會收斂到該函數的值。至於跳躍不連續點,無限和會收斂到跳躍點的中點值(即該點左右極限的平均值),這是狄利克雷定理(Dirichlet’s theorem)的結果。
吉布斯現象與「函數的平滑度控制其傅立葉係數的衰減速度」這一原理密切相關。愈平滑的函數,其傅立葉係數衰減得愈快(因此收斂得也愈快);而不連續的函數,其傅立葉係數會緩慢衰減(導致收斂變慢)。例如,不連續的方波,其傅立葉係數為 (\tfrac{1}{1},{\scriptstyle\text{0}},\tfrac{1}{3},{\scriptstyle\text{0}},\tfrac{1}{5},{\scriptstyle\text{0}},\tfrac{1}{7},{\scriptstyle\text{0}},\tfrac{1}{9},{\scriptstyle\text{0}},\dots),只以 \tfrac{1}{n} 的速度衰減;而連續的三角波,其傅立葉係數為 (\tfrac{1}{1^2},{\scriptstyle\text{0}},\tfrac{-1}{3^2},{\scriptstyle\text{0}},\tfrac{1}{5^2},{\scriptstyle\text{0}},\tfrac{-1}{7^2},{\scriptstyle\text{0}},\tfrac{1}{9^2},{\scriptstyle\text{0}},\dots),則以 \tfrac{1}{n^2} 的速度快速衰減。
然而這只是對吉布斯現象的部分解釋,因為若傅立葉級數的係數「絕對收斂」,根據魏爾斯特拉斯 M 測試(Weierstrass M-test),其級數將會「一致收斂」,從而不會出現上述的振盪現象。同理,不連續函數也不可能具有絕對收斂的傅立葉係數,因為那樣的函數將是連續函數的「一致極限」,也就是連續的,這將導致矛盾。
解決方法
由於吉布斯現象是因「過衝」(overshooting)而造成的,因此可以透過使用「非負核函數」來消除這個現象,例如使用 Fejér 核。
在實際應用中,可以藉由採用較平滑的傅立葉級數求和方法來改善吉布斯現象所帶來的問題,例如 Fejér 求和、Riesz 求和,或是使用 σ-近似(sigma-approximation)。使用連續的小波轉換時,小波吉布斯現象的嚴重程度永遠不會超過傅立葉的吉布斯現象。此外,若使用以 Haar 基底函數 為基礎的 離散小波轉換,則對於具有跳躍不連續的連續資料,吉布斯現象完全不會出現,在離散資料中,大幅變化點附近的吉布斯現象也會被大幅減輕。在小波分析領域,這種情況通常被稱為 Longo 現象(Longo phenomenon)。在多項式插值的應用場景中,可以利用 S-Gibbs 演算法 來緩解吉布斯現象。
吉布斯現象的正式數學描述
設 f: {\mathbb R} \to {\mathbb R} 為一個分段連續可微的函數,並且具有某個正的週期 L > 0。假設在某個點 x_0,函數 f 的左極限 f(x_0^-) 與右極限 f(x_0^+) 存在差異,跳躍量為非零常數 c:
f(x_0^+) - f(x_0^-) = c \neq 0.
對每個正整數 N \geq 1,令 S_N f(x) 為 N 次的傅立葉部分和(S_N 可以視為對函數作用的數學算子):
S_N f(x) := \sum_{-N \leq n \leq N} \widehat f(n) e^{\frac{i2\pi n x}{L}} = \frac{1}{2} a_0 + \sum_{n=1}^N \left( a_n \cos\left(\frac{2\pi nx}{L}\right) + b_n \sin\left(\frac{2\pi nx}{L}\right) \right),
其中傅立葉係數 \widehat f(n), a_n, b_n 定義如下:
\widehat f(n) := \frac{1}{L} \int_0^L f(x) e^{-\frac{i2\pi nx}{L}}\, dx a_0 := \frac{1}{L} \int_0^L f(x)\ dx a_n := \frac{2}{L} \int_0^L f(x) \cos\left(\frac{2\pi nx}{L}\right)\, dx b_n := \frac{2}{L} \int_0^L f(x) \sin\left(\frac{2\pi nx}{L}\right)\, dx
那麼,我們有以下極限性質:
\lim_{N \to \infty} S_N f\left(x_0 + \frac{L}{2N}\right) = f(x_0^+) + c\cdot (0.089489872236\dots) \lim_{N \to \infty} S_N f\left(x_0 - \frac{L}{2N}\right) = f(x_0^-) - c\cdot (0.089489872236\dots)
但同時也有:
\lim_{N \to \infty} S_N f(x_0) = \frac{f(x_0^-) + f(x_0^+)}{2}
更一般地說,若 x_N 是一個實數數列,當 N \to \infty 時趨近於 x_0,且跳躍 c 為正數,則有:
\limsup_{N \to \infty} S_N f(x_N) \leq f(x_0^+) + c\cdot (0.089489872236\dots) \liminf_{N \to \infty} S_N f(x_N) \geq f(x_0^-) - c\cdot (0.089489872236\dots)
若跳躍 c 為負,則上述兩個不等式中需要對調上極限(\limsup)與下極限(\liminf),並對調不等號中的 \leq 與 \ge。
一般情況下吉布斯現象的證明
設 f: {\mathbb R} \to {\mathbb R} 為一個具週期性、週期為 L > 0 的逐段連續可微函數,且此函數在若干處具有跳躍不連續點,記作 x_i,其中 i = 0, 1, 2, \ldots。在每個不連續點處,其垂直跳躍的幅度為 c_i。
那麼,f 可以表達為一個連續函數 f_c 與一個多階躍函數 f_s 的和,其中 f_s 是若干階躍函數的總和:
f = f_c + f_s,
f_s = f_{s_1} + f_{s_2} + f_{s_3} + \cdots,
f_{s_i}(x) = \begin{cases} 0 & \text{if } x \leq x_i,
\\ c_i, & \text{if } x > x_i. \end{cases}
設 S_N f(x) 為 f = f_c + f_s = f_c + \left ( f_{s_1} + f_{s_2} + f_{s_3} + \ldots \right ) 的第 N 項傅立葉級數部分和,則除了在不連續點 x_i 附近外,該級數在所有 x 點處均收斂良好。在每個不連續點 x_i 附近,只有 f_{s_i} 會呈現出吉布斯現象(最大振盪誤差約為跳躍值 c_i 的 9%,可參見方波分析),因為在該點附近,其他函數皆為連續(f_c)或為常零函數(f_{s_j},其中 j \neq i)。這便證明了吉布斯現象會在每個跳躍不連續點發生。
訊號處理觀點的解釋
是理想低通濾波器的脈衝響應。縮放會使該函數變窄,對應地增大其幅度(此圖未顯示),但不會減少其下擺(undershoot)的大小,因為下擺是尾部的積分值。]]
從訊號處理的角度來看,吉布斯現象就是低通濾波器的階躍響應(step response),其振盪稱為振鈴或振鈴效應。對於一個實數域上的信號,截斷其傅立葉變換,或對週期信號(等價於定義在圓上的信號)截斷其傅立葉級數,相當於使用一個理想的(也稱「磚牆式」)低通濾波器來濾除高頻分量。這種濾波過程可以表示為將原始信號與濾波器的脈衝響應(亦稱為捲積核)做捲積,而該脈衝響應就是sinc函數。因此,吉布斯現象可以視為將一個單位階躍函數(若不要求週期性)或一個方波(若要求週期性)與 sinc 函數進行捲積的結果:sinc 函數中的振盪造成輸出中的波紋。
,展示了在實數域階躍函數上的吉布斯現象]]
當與單位階躍函數做捲積時,結果正是 sinc 函數的積分,也就是Si函數;對於方波,則較難用簡單方式表述。對於階躍函數,負下擺的大小正是 sinc 函數左尾巴從負無限大積到第一個負零點的積分值:若使用單位取樣週期的標準化 sinc 函數,該值為
\int_{-\infty}^{-1} \frac{\sin(\pi x)}{\pi x},dx.
同理,正的上擺(overshoot)則具有相同大小:可看作是右尾巴的積分,或(等價地)是從負無限大積分至第一個正零點後再減去 1(即非振盪時的理想值)。
上擺與下擺可以這樣理解:捲積核(kernel)通常會被標準化,使其總積分為 1,從而能將常數函數映射為常數函數——否則該濾波器將具有增益。捲積結果在某一點的值是輸入信號的一組線性組合,其係數為核函數的值。
若捲積核為非負(如高斯核),則濾波後的信號值會是輸入值的凸組合(因為係數為非負且總和為 1),因此結果必落於輸入信號的最大值與最小值之間——不會有上擺或下擺。但若捲積核含有負值(如 sinc 函數),則濾波後的信號值將是輸入值的仿射組合,因此可能落在輸入的最小與最大值之外,從而產生上擺與下擺,也就是吉布斯現象。
若進行更長的展開——即在更高的頻率處截斷——這在頻域中相當於加寬磚牆濾波器,在時域中則相當於縮窄 sinc 函數並成比例地增高其幅度,使得在相應點之間的積分值保持不變。這是傅立葉變換的一個普遍性質:在一個域中拉寬,會導致在另一個域中縮窄並增高幅度。這使得 sinc 函數中的振盪變得更窄、更高,而捲積後的濾波結果中振盪的面積雖然變小,但幅度並不會降低:即使截斷於任意有限頻率,所對應的 sinc 函數仍具有不變的尾部積分。這便解釋了為何上擺與下擺的幅度不會消失。
Image:Gibbs phenomenon 10.svg|振盪可以解釋為與 sinc 函數的捲積。
Image:Gibbs phenomenon 50.svg|更高的截止頻率會使 sinc 函數變得更窄且更高,但尾部積分大小不變,因此得到更高頻率的振盪,但其幅度不會消失。
因此,吉布斯現象的特徵可以如此解釋:
- 下擺是因為脈衝響應具有負的尾部積分,這是因為該函數本身取有負值;
- 上擺則是對應的對稱補償(整體積分在濾波下保持不變);
- 振盪的持續性來自於:即使增加截止頻率,脈衝響應變窄,積分卻未減少——因此振盪雖然集中靠近不連續點,但其幅度並未減弱。
方波分析
我們考察一個具有週期性 L 的方波 f(x) 的第 N 階傅立葉部分和 S_N f(x),該方波在 x = x_0 處具有一個從 y = y_0 起跳的垂直「完整」跳躍 c。由於奇數 N 的情況類似,我們僅考慮偶數 N:
S_N f(x) = \left(y_0 + \frac{c}{2} \right) + \frac{2c}\pi \left ( \sin(\omega (x - x_0) ) + \frac{1}{3} \sin(3\omega (x - x_0)) + \cdots + \frac{1}{N-1} \sin((N-1)\omega (x - x_0)) \right )
其中 \omega = \frac{2\pi}{L}。(N = 2N',N' 是非零的傅立葉正弦項數,因此某些文獻會用 N' 代替 N。)
令 x = x_0(即不連續點),代入可得:
S_N f(x_0) = \left(y_0 + \frac{c}{2}\right) = \frac{f(0^-) + f(0^+)}{2} = \frac{y_0 + (y_0 + c)}{2}
如前所述,傅立葉級數在跳躍點處的值是左右極限的平均值。
接下來,我們透過檢查 S_N f(x) 的一階與二階導數來找出跳躍點 x = x_0 附近震盪的第一個極大值位置。第一個條件是導數為零,即:
\frac{d}{dx} S_N f(x) = \frac{2c}{\pi} \left ( \cos(\omega (x - x_0)) + \cos(3\omega (x - x_0)) + \cdots + \cos((N-1)\omega (x - x_0)) \right ) = \frac{c}{\pi} \frac{\sin(N\omega (x - x_0))}{\sin(\omega (x - x_0))} = 0
第二個等號是利用拉格朗日三角恆等式推得。解此條件得:
x - x_0 = \frac{k\pi}{N\omega} = \frac{kL}{2N},
其中 k 為整數,須排除使分母為零的 N\omega 倍數,因此允許的 k 為 1, 2, \ldots, N\omega - 1, N\omega + 1, \ldots,以及其負值。
在 x - x_0 = kL / (2N) 處,S_N f(x) 的二階導數為:
\frac{d^2}{dx^2} S_N f(x) = \frac{c\omega}{\pi} \left ( \frac{N\cos(N\omega (x - x_0))\sin(\omega (x - x_0)) - \sin(N\omega (x - x_0))\cos(\omega (x - x_0))}{\sin^2(\omega (x - x_0))} \right )
\left. \frac{d^2}{dx^2} S_N f(x) \right \vert _{x_0 + kL / (2N)} = \begin{cases} \frac{2c}{L} \frac{N }{\sin(k\pi/N)}, & \text{if }k \text{ is even,} \\[4pt] \frac{2c}{L} \frac{-N }{\sin(k\pi/N)}, & \text{if }k \text{ is odd.} \end{cases}
因此,第一個極大值出現在 x = x_0 + L / (2N)(即 k = 1),此時的函數值為:
S_N f\left(x_0 + \frac{L}{2N} \right) = \left(y_0 + \frac{c}{2}\right) + \frac{2c}{\pi} \left ( \sin\left(\frac{\pi}{N}\right) + \frac{1}{3} \sin\left(\frac{3\pi}{N}\right) + \cdots + \frac{1}{N-1} \sin\left( \frac{(N-1)\pi}{N} \right) \right )
若引入正規化的sinc函數 \operatorname{sinc}(x) = \frac{\sin(\pi x)}{\pi x}(x \neq 0),則上述可寫為:
S_N f\left(x_0 + \frac{L}{2N} \right) = \left(y_0 + \frac{c}{2}\right) + c \left[ \frac{2}{N} \operatorname{sinc}\left(\frac{1}{N}\right) + \frac{2}{N} \operatorname{sinc}\left(\frac{3}{N}\right)+ \cdots + \frac{2}{N} \operatorname{sinc}\left( \frac{(N-1)}{N} \right) \right]
對於充分大的 N,括號內的和為黎曼和,可近似積分 \int_0^1 \operatorname{sinc}(x)\ dx(實際上是步長為 \tfrac{2}{N} 的中間點法則)。由於 sinc 函數是連續的,該和在 N \to \infty 時會趨近於積分值。因此,
\begin{align} \lim_{N \to \infty} S_N f\left(x_0 + \frac{L}{2N}\right) & = \left(y_0 + \frac{c}{2}\right) + c \int_0^1 \operatorname{sinc}(x)\, dx \\[8pt] & = \left(y_0 + \frac{c}{2}\right) + \frac{c}{\pi} \int_0^1 \frac{\sin(\pi x)}{x}\, dx \\[8pt] & = \left(y_0 + \frac{c}{2}\right) + \frac{c}{\pi} \int_0^\pi \frac{\sin(t)}{t}\ dt \quad = \quad y_0 + c + c \cdot (0.089489872236\dots) \end{align}
這就是前一節所提及的結果。類似的計算可得:
\lim_{N \to \infty} S_N f\left(x_0 -\frac{L}{2N}\right) = y_0 - c \cdot (0.089489872236\dots)
結論
吉布斯現象在應用中往往是不受歡迎的,因為它會造成失真,如因過衝與下衝產生的削波,以及由震盪產生的振鈴失真。在低通濾波器的應用中,可透過改變濾波器設計來減少或消除這些效應。
在核磁共振成像(MRI)中,當相鄰區域的訊號強度差異很大時,吉布斯現象會造成偽影。這在脊髓 MRI 中尤為常見,有時可能會誤認為是脊髓空洞症。
在圖像的離散傅立葉轉換中,吉布斯現象會以十字型的偽影圖樣出現, 這是因為多數圖像(如顯微圖或照片)在上下或左右邊界處存在明顯不連續。當傅立葉轉換強制使用週期性邊界條件時,這種跳躍不連續在頻域中會以軸向的頻率連續分佈形式表現出來,即在傅立葉頻譜中形成一個十字圖樣。
儘管本文主要探討的是在時間域中用部分傅立葉級數重建不連續訊號所造成的失真,但在傅立葉反變換與正變換結構對稱的情況下,這種問題在頻率域中同樣存在。例如,理想化的磚牆濾波器與矩形函數在頻率域中具有不連續性,因此在時間域中其精確表示必然需要無限脈衝響應的sinc濾波器。若使用有限脈衝響應,會在截止頻率附近導致頻率響應中的吉布斯震盪。不過可以透過窗函數對有限脈衝響應濾波器進行加窗處理來減少震盪(代價是過渡帶會變寬)。
參見
*傅里叶级数
*约西亚·吉布斯
*馬赫帶(Mach bands)
*龍格現象(Runge's phenomenon):在多項式近似中出現的類似現象
*Si函数
引用
延伸阅读
*
*
*
- [https://archive.org/details/trigonometricser0001zygm/ 第1卷], [https://archive.org/details/trigonometricser0002zygm/ 第2卷]
*
*Paul J. Nahin, 《Dr. Euler's Fabulous Formula》,Princeton University Press,2006年,第4章,第4節。
*
外部連結
*
*
*[http://mathworld.wolfram.com/GibbsPhenomenon.html Weisstein, Eric W., "Gibbs Phenomenon"],出自 Wolfram MathWorld
评论 (0)