卷 III · 付账CH 10深度 10/20

时间与频率不能同时精确

上一章那笔账还能谈——多付一点主瓣宽度,就能买到更低的旁瓣。这一章的账谈不了。不管你换什么窗、用什么算法、堆多少算力,有一个乘积你永远压不到某个数以下。而那个数你大概听说过,只是没想到它是在这儿。

★★ 0.0795775不是量子力学的性质是傅里叶的性质

▷ 先猜一下

取四个高斯形状的脉冲(就是钟形曲线),宽度分别是 σ = 0.02、0.05、0.1、0.2 秒——最宽的是最窄的十倍。

对每一个,量两个数:它在时间上有多宽(σt,以能量为权的标准差),和它的频谱在频率上有多宽(σf)。

问:这四个脉冲的 σt × σf 分别是多少?

A 四个都不一样,脉冲越窄乘积越大——窄脉冲的频谱特别宽 B 四个都不一样,脉冲越窄乘积越小 C 四个完全相同,都等于 0.079577 D 四个完全相同,都等于 0.159155

先看这组数

高斯脉冲,采样率 1024 Hz,4096 点

  σ 参数     时间宽度 σt      频率宽度 σf      乘积 σt · σf
  ─────────────────────────────────────────────────────────
   0.02      0.01414 s      5.6270 Hz       0.079577
   0.05      0.03536 s      2.2508 Hz       0.079577
   0.10      0.07071 s      1.1254 Hz       0.079577
   0.20      0.14142 s      0.5627 Hz       0.079577
  ─────────────────────────────────────────────────────────
  1 / (4π) = 0.079577

σt 差了十倍,σf 也差了十倍,方向相反,乘积一位不差。

而 0.079577 不是随便一个数,它是 1/(4π)。这就是不确定性原理:

◆ 主线
σt · σf  ≥  1 / (4π)  =  0.0795775…

对任何信号都成立。等号只在**高斯脉冲**上取到。

翻译成人话:你不可能既知道一件事「什么时候发生」,又知道它「频率是多少」,两者都很精确。把脉冲压窄,它的频谱必然变宽;把频谱压窄,它在时间上必然拖长。

这不是测量技术的问题,也不是算法的问题。「一个又短又单频的东西」在数学上不存在——就像「一个又是圆的又是方的东西」不存在。

为什么高斯是那个特殊的形状

试试别的形状。同样量一个方波脉冲(在一小段时间里是 1,其余为 0):

方波脉冲:  σt · σf = 0.8689

高斯脉冲:  σt · σf = 0.079577       ← 小了近 11 倍

方波差得远。原因在第 8 章已经说过:方波有两个突然的跳变,跳变是宽频的,所以它的 σf 被那些慢慢衰减的旁瓣拖得很大(严格说,矩形脉冲的 σf 在数学上是发散的,这里量到的 0.8689 是被 4096 点这个有限窗口截住的结果)。

高斯特殊在哪?高斯的傅里叶变换还是高斯。它是这个变换的不动点之一——你把它缠到圆上取质心,出来的还是同一个形状,只是宽度取了倒数。所有「最紧凑」的性质都归它。

严格证明用柯西–施瓦茨不等式加一次分部积分,两页纸,这里不做。但它的味道值得说一句:不等式的等号成立条件,正好是一个微分方程 x·f(x) = c·f'(x),而它的解就是高斯。「取等号的形状」是被方程逼出来的,不是凑出来的。

这就是海森堡

量子力学里那条最出名的公式:

Δx · Δp  ≥  ħ / 2

而在量子力学里,一个粒子的**位置波函数**和**动量波函数**
互为傅里叶变换,联系它们的比例常数正是普朗克常数:

      p = h · f          (德布罗意,1924)

把上面那条 σt·σf ≥ 1/4π 里的「频率」换成「动量除以 h」,
两边整理一下,出来的就是 Δx · Δp ≥ ħ/2。

换句话说:

海森堡不确定性原理不是量子力学的性质,是傅里叶的性质。量子力学贡献的部分只有一句话——「粒子的位置和动量由一对互为傅里叶变换的函数描述」。剩下的全是这一章这条纯数学的不等式,1927 年之前就已经躺在信号分析里了。

这也解释了为什么它和「测量会干扰系统」没有关系。海森堡本人早期用「显微镜实验」做过那种解释(用光子去看电子,光子会把电子撞飞),但那是一个类比,不是原理的内容。真正的内容是:一个既有确定位置又有确定动量的量子态,压根不存在。就像一个既短又单频的脉冲不存在。「测不准」这个中译名把整件事引向了错误的方向,物理学界现在更倾向叫它「不确定性关系」。

一个你耳朵能验证的推论

把这条不等式换算成音乐:要分辨相邻半音,需要听多久?

  音高            相邻半音的频率差        至少需要听
  ──────────────────────────────────────────────────
  A4  440 Hz         26.16 Hz            38.2 ms
  E2  82.41 Hz        4.90 Hz             204 ms
  ──────────────────────────────────────────────────
  (用第 7 章的 T ≥ 1/δ 换算)

低音要听五倍久才能辨别音高。这解释了几件音乐上人人有感但很少被讲清的事:

  • 贝斯和低音鼓需要「提前」一点。录音师的经验是低频乐器要稍微推前,否则听起来拖。原因就在这里:你的听觉系统需要更长的时间窗才能确定一个低音的音高,那段时间就是延迟。
  • 低音听起来「位置不清楚」。这也是为什么家庭影院可以只有一个低音炮而必须有五个中高音音箱——低频在时间上分辨不清,也就在空间上定位不了(定位靠的是两耳的时间差)。
  • 吉他的低音弦调音更慢。调 E2 弦时调音器反应明显比调 E4 慢,那不是软件偷懒,是它必须多听 160 毫秒。
✎ 术语正名

「不确定性原理」在不同领域有不同的常数,很容易被搞混,其实全是同一条:

  • 信号处理:σt · σf ≥ 1/(4π) ≈ 0.0796(用普通频率 f,单位 Hz)
  • 用角频率 ω = 2πf 时:σt · σω ≥ 1/2
  • 量子力学:Δx · Δp ≥ ħ/2(其中 ħ = h/2π)

三个常数看着不同,因为「宽度」的单位定义不同。换单位而已,同一条定理。

还有一个常见混淆:这里的 σ 是以能量为权的标准差,不是「半高宽」也不是「主瓣宽度」。用不同的宽度定义会得到不同的常数(比如用半高宽,高斯的乘积是 0.4413),所以看到一个不一样的数字,先问它的宽度怎么定义的。

⌨ 自己跑一遍

亲手把 1/4π 量出来:

import numpy as np

N, dt = 4096, 1/1024
t = np.fft.fftfreq(N, 1/(N*dt))      # 时间轴(中心在 0,绕回来)
f = np.fft.fftfreq(N, dt)            # 频率轴

for sig in (0.02, 0.05, 0.1, 0.2):
    x = np.exp(-t**2 / (2*sig**2))                    # 高斯脉冲
    p = x**2
    st = np.sqrt((p*t**2).sum() / p.sum())            # 时间宽度
    P = np.abs(np.fft.fft(x))**2
    sf = np.sqrt((P*f**2).sum() / P.sum())            # 频率宽度
    print(f'σ={sig}  σt={st:.5f}s  σf={sf:.4f}Hz  乘积={st*sf:.6f}')

print('1/(4π) =', 1/(4*np.pi))
# 四行乘积全是 0.079577,1/(4π) = 0.07957747154594767

np.exp(-t**2/(2*sig**2)) 换成方波 (np.abs(t) < 0.0625).astype(float),乘积跳到 0.8689换任何形状,你都压不到 0.0796 以下——这一点值得多试几个形状亲自确认,因为它是这本书里唯一一条「你怎么努力都没用」的结论。

python3 -c "import math;print(1/(4*math.pi))"

在线跑:Google Colab。想看它在音乐里的样子:Audacity 里对同一段录音把 FFT 长度从 512 改到 8192,你会看到频率轴上越来越清楚、时间轴上越来越糊——那就是这条不等式在滑动。

▸ 在现实里
  • 雷达的模糊图。雷达要同时测目标的距离(靠时间)和速度(靠多普勒频率),而这两件事的精度被同一条不等式绑在一起。雷达工程师画的那张「模糊函数」等高线图,就是这条不等式的可视化——你只能选择把不确定性摊在哪个方向上,不能消掉它。第 16 章的啁啾信号正是为了在这张图上挑一个好形状。
  • 激光脉冲。做超快光学的人要产生飞秒级的脉冲,就必须准备一个极宽的光谱——「飞秒激光器」和「宽带激光器」在物理上是同一件事。反过来,做精密光谱的人要极窄的线宽,就必须让激光连续运行很久。你不可能又要飞秒又要窄线宽。
  • GPS 与蓝牙的带宽。定位精度取决于能把到达时间测得多准,而时间测得准就要求信号带宽宽。这就是为什么 GPS 要占用 2 MHz 以上的带宽却只传 50 bps 的数据——那些带宽不是用来传信息的,是用来买时间精度的。超宽带(UWB)室内定位能做到厘米级,用的正是几百 MHz 的带宽。
  • 你的性能剖析工具。要知道「某个函数在什么时刻变慢」(时间精度)和「某个周期性抖动的频率是多少」(频率精度),同一份采样数据不能两者都给你。这是这条定理在工程实践里最不被察觉的一次出场。
✗ 这个直觉是错的

「测不准原理说的是:测量本身会干扰被测对象,所以测了位置就把动量搅乱了。这是仪器精度的极限。」

这是流传最广的一个物理误解,而这一章正好是它的反例——上面那四行数里没有任何「测量」,也没有任何「干扰」。那是四个纯数学的函数,在浮点数里算出来的两个宽度,乘积是 1/4π。

真正的内容是:「窄脉冲」和「单一频率」是互相排斥的两种属性,一个东西不可能同时具备。它是这个东西本身的性质,和有没有人去看它无关。

测量确实会干扰系统(那是另一条独立的物理事实,叫观测者效应),但那不是不确定性原理。区分的办法很简单:不确定性关系对经典的声波、光波、股票价格序列一样成立——一段既短又单频的股价波动同样不存在,而没有人认为「看一眼 K 线会干扰股价」。

判据是:凡是能在一台不做任何测量的计算机里算出来的限制,就不是测量精度的限制。

◇ 揭晓

正确答案是 C:四个完全相同,都等于 0.079577 = 1/(4π)

A 「脉冲越窄乘积越大」——前半句的直觉是对的:窄脉冲的频谱确实特别宽。错在没意识到这两件事是精确互补的:σt 缩小十倍,σf 就正好放大十倍,乘积纹丝不动。这个「正好」不是巧合,它来自傅里叶变换的伸缩性质:把时间轴压缩 a 倍,频率轴就拉伸 a 倍,一分不多一分不少。 B 「越窄乘积越小」——如果这成立,那就意味着你可以通过把脉冲做窄来同时改善两个精度,那样不确定性原理就不存在了。不等式的方向本身就排除了这个选项:0.0796 是下界,只能等于或大于。 D 「0.159155」——这是 1/(2π),正好差一倍。它不是随便一个错,而是用角频率 ω 时的常数除以 π 的产物,也是最容易在换算里犯的一个错。这也提醒:看到这类常数,先确认三件事——频率用 f 还是 ω、宽度是标准差还是半高宽、有没有除以 2。常数记错通常不是记性问题,是单位问题。
⟳ 换个域看
「把这个脉冲压得更短一点」——一个纯粹的时域操作,看起来只影响时间轴。 同一个操作,是把频谱按同样的比例拉宽。你在时间轴上省下的每一分,都在频率轴上原封不动地付了出去。

这一章是这本书里唯一一次「换个域看」没有让问题变简单——因为这条限制在两个域里是完全对称的,你从哪一边看都一样。这恰恰是它厉害的地方:凡是能靠换坐标系解决的问题,都不是根本性的;而这一条从任何坐标系看都在那儿。

顺带一提,这也解释了第 5 章那个脚注:严格带限(频域上有限)的信号,在时间上必然无限长。因为「频域宽度为零之外的部分」这个要求太苛刻,时域必须无限拖开才付得起。现实里没有严格带限的信号,也没有严格有限时长的单频音——第 15 章的理想滤波器造不出来,根子就在这一章。

这一章的一句话

σt × σf ≥ 1/4π 是傅里叶的性质,不是量子力学的性质,也不是测量精度的问题——一个又短又单频的东西在数学上不存在,而海森堡只是把它换了个单位。

既然「时间和频率同时精确」这条路被彻底堵死了,剩下的问题就变成了:那我该把不确定性摊在哪一边?下一章给出工程上的答案——把长录音切成一小段一小段,每段单独做变换,得到一张「时间 × 频率」的图。你会看到这条不等式在那张图上现身成一个非常具体的东西:窗长 64,爆音在图上摊开 12 毫秒但两个音分不开;窗长 2048,两个音分开了,爆音摊成了 384 毫秒。