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

收敛性与吉布斯现象

一个简单、用眼睛就能验证的判据,能告诉你傅里叶级数究竟收敛到哪里——包括在跳跃点处那个出人意料的答案。但就在那个跳跃旁边,潜伏着一个再多项数也抹不掉的过冲。

写下一个级数,和信任它,是两回事

在前几篇指南里,你搭起了一个三角傅里叶级数:你拿一个周期信号,用欧拉-傅里叶积分算出它的系数,然后写下 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) 周期延拓)上。

  1. 查绝对可积性:|x| 在 (-pi, pi) 上的积分是 pi^2,有限。通过。
  2. 查极值点有限:x 在开区间上单调递增——内部没有转折点。通过。
  3. 查有限个有限跳跃:周期延拓在 x = pi(及其副本)处从 +pi 跌到 -pi。每周期一个跳跃,大小为有限的 2pi。通过。
  4. 读出裁决:处处收敛;在每个内部点都等于 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)
威尔布拉汉姆-吉布斯常数的微缩版:Si 在 x = pi 处的峰值比它最终的极限高约 17.9%,换算成跳跃的约 8.95% 的过冲——大约 9%——与函数无关。

读出结论:部分和的峰值大约在 1 + 0.0895 乘以跳跃处,所以对跳跃为 2 的方波,它达到约 1.179,正是我们看到的那个数。两点澄清让这话保持诚实。过冲的百分比才是那个普适常数——约为跳跃的 8.95%,对任何狄利克雷类函数的任何跳跃都一样——但鼓包的绝对高度,当然随跳跃有多大而成比例变化。而随着项数增多确实改善的,是振铃的宽度:过冲被压进一道越来越细、紧贴跳跃的窄缝,纵然它的峰高拒绝下降。更多的项把损伤局部化;它们从不治愈它。

与之共处:光滑性、能量,以及一种补救

为什么方波遭此一劫,而光滑信号却安然通过?归根到底,在于系数衰减得多快,而这由 f 的光滑性决定——你能感到这个主题回响着光滑函数的泰勒级数为何收敛得那么甘愿。一个带跳跃的函数,它的傅里叶系数只像 1/n 那样消退,慢得远不足以让尾巴一致地消失,而那条迟缓的尾巴,恰恰就是振铃。把拐角磨平——让 f 连续,或可微——系数就像 1/n^2 或更快地下落,尾巴变得可忽略,收敛转为一致,根本不再有过冲。吉布斯是一道货真价实的间断的签名,仅此而已。

这里有一条令人宽慰的记账。吉布斯尖峰虽高,却薄得趋于消失,所以它几乎不携带能量:它对 f^2 总积分的贡献,随 N 增大而缩到乌有。这就是为什么帕塞瓦尔定理——那本把 f^2 的积分等同于系数平方和的能量账——尽管有过冲却依然精确成立,也是为什么即便在级数无法一致收敛之处,它仍在均方意义下收敛。那道偏差对眼睛是真实的,对能量却是隐形的。两个不同的问题,两个不同的答案;诚实,就在于把它们分开。

而如果振铃真的妨碍了你的应用——重建图像里锐边旁可见的光晕、数值解里虚假的振荡——有一种实用的补救。与其在第 N 项粗暴地截断级数(一刀切的矩形截断,正是它造出了振铃),不如在截断之前,用一个光滑的加权把高频系数温和地压低。像费耶尔平均或兰乔斯西格玛因子这样的方法做的正是这件事,以边缘处一点点模糊,换取过冲的消除。值得带走的教训是:吉布斯不是傅里叶想法里的一个漏洞,它是用光滑的波去表示一个瞬时跳跃所付的诚实代价——而你驾驭它的办法,是软化函数本身、或软化你截断求和的方式,绝不是简单地加更多项。