傅里叶与频率:把一段信号拆成一堆积木
前情提要:在第 6 篇《内积与正交:量子态如何"互相独立"》里,我们给量子态配上了一把"尺子"——内积,并得出关键结论:一组两两垂直、长度都为 1 的矢量能当一套"正交基",把空间里任意矢量唯一地拆成这些基的线性组合,而"某根基占多少"就是该矢量在这根基上的投影(内积)。本文顺着这套语言往下走:把一段随时间起伏的信号,也拆成一组"积木"之和——只是这里的积木换成了不同频率的正弦波。
一、一段乱糟糟的波形,凭什么能"拆开看"
先想象三段你天天见、却从没"拆过"的波形。
第一段是音乐:小提琴拉一个长音,录音软件上是一条上下抖动的曲线。第二段是脑电:贴在头皮上的电极,记下一串忽高忽低的电压。第三段最玄——一个量子态的"振幅"随时间怎么变,画出来也是一条弯弯曲曲的线。
它们长得完全不像,可背后藏着一个共同的、有点反常识的承诺:任何一段够规矩的波形,都能被"拆开",拆成一堆形状极其简单、你小学就见过的曲线之和——正弦波。
这承诺为什么了不起?因为正弦波太好对付了:它只有三个参数——频率(抖多快)、振幅(抖多大)、相位(从哪开始抖)。一旦你能把一段复杂信号拆成"哪些频率、各占多少",你等于把一堆乱麻整理成了清单。医生看心电图找异常频率,工程师压缩音乐丢掉听不见的频率,量子算法在频谱里找周期——干的都是同一件事:先拆,再看清单。
二、正弦波:最好用的积木
什么叫"拆成正弦波之和"?举个例子。
你有两个音叉,一个每秒抖 3 下(低频,听起来低沉),一个每秒抖 10 下(高频,听起来尖细),同时敲响。把两个正弦波逐点相加——同一时刻两个波的高度加起来——得到一条新的、弯来弯去的曲线。这条曲线本身不是正弦波,但它"由"那两个正弦波拼成。
傅里叶变换干的是反向操作:给你这条拼出来的曲线,它反推出"里头藏了频率为 3 和 10 的两个分量,各自振幅多大"。换句话说,时域里的一条曲线,对应频域里的一张清单:频率映射到振幅。
傅里叶变换就是那位"拆积木的人":它不问"这一刻信号多高",而问"这段信号里,每个频率各占多少"。清单上的"占多少",就是那个频率正弦波该有的振幅。
这里有个惊喜:对绝大多数够规矩的信号,"拆法"是唯一的。一段曲子不会"既等于 3 和 10 赫兹拼成,又等于别的什么拼成"。这唯一性不是巧合,是下一节要讲的"正交"给的保证。
再多说一句,免得你心里留个疙瘩:真实的声音里往往不止两三个频率,而是密密麻麻一整排——从低到高铺满,像一道连续的"颜色条"。数学上我们说它包含"无穷多个频率分量",清单变成了连续的频谱。但道理完全一样:每个频率仍是一支正弦积木,只是数量多到数不清。后面为了好懂,我们只拿两三个分量举例子,记住那只是把连续频谱"抽样"成了几块。
三、为什么偏偏是正弦波?——因为它们两两正交
现在到了全篇的骨架。为什么是正弦波、而不是别的曲线当积木?答案就藏在第 6 篇《内积与正交:量子态如何"互相独立"》那把尺子里。
回忆一下:两个矢量"正交",就是它们做内积等于 0,意味着彼此"毫无共同分量、互不借力"。对连续不断的信号,我们也能量内积——把两条曲线在相同时间点上的高度两两相乘、再沿时间积分,得到一个数。两个数串能算内积,一条曲线也能。
关键事实:频率不同的两条正弦波,做内积恰好等于 0。 也就是说,频率为 3 的正弦波和频率为 10 的正弦波,是"正交"的——它们互不打扰,你在我身上投影不出任何东西,我在你身上也投影不出任何东西。
于是,所有不同频率的正弦波,凑成了一组正交基:它们两两垂直、彼此独立。而一段信号"在某个频率上占多少",翻译成数学,正是这段信号和那支该频率的正弦波做内积——也就是第 6 篇说的"投影"!
你可能会问:正弦波不是还有"从哪开始抖"的相位吗?没错。严格说,单靠"正弦"(sin)还不够,得把"余弦"(cos,相当于错开四分之一周期的正弦)也拉进来,两者频率相同但波形错开,正好补齐一个自由度。好在第 6 篇讲过:正交的关键是"互不借力"——同一频率的 sin 和 cos 做内积也是 0,照样正交,照样能一起当基。所以"频率、振幅、相位"三件套,前两个由 sin 的投影定,相位则由 sin 和 cos 的"配比"定。一句话:正弦基家族足够大,大到能把任何信号包圆。
这就把整件事串起来了:
- 普通矢量空间里,正交基(如 |0> 和 |1>)让我们把任意矢量唯一拆开;
- 信号的空间里,不同频率的正弦波就是一组正交基,傅里叶变换就是"把信号往每根基上投影",投影的大小就是那个频率的振幅。
所以"傅里叶变换 = 问每个频率占多少",换个说法就是"求信号在每个正弦基上的投影"。这一句,是连接你刚学的线代语言和信号处理这座桥的桥墩。
四、时域和频域:同一支箭头的两种"坐标"
既然是"换基",那就得说清一个常被绕晕的点:时域和频域,到底谁是真相?
答案是:两边都是同一段信号的真身,只是用了两套不同的坐标去描述它。
回想平面里一支箭头。你既可以说它"往东 3、往北 4"(东西加南北这套坐标),也可以说它"沿这条街走 5、垂直街偏 0"(沿街加垂直街这套坐标)。箭头本身没变,变的是你选了哪组基来报它的"地址"。时域坐标回答"这一刻信号多高",频域坐标回答"这段信号里各频率占多少"——本质就是给同一段信号换了一组基。
这解释了为什么"拆开看"不会丢信息:你只是换了种记账方式。从频域清单,理论上能完全还原出原来的时域曲线——加回去就行。换基不改变信号本身,只改变你"看见"它的角度。这也是第 6 篇那句"同一套正交基下,一个矢量只有一种拆法"的回响:在正弦基这组坐标下,信号的频谱是确定唯一的。
五、分辨率的拉扯:看时间,还是看频率
换了坐标,听着很美,但有一处天然的矛盾,值得提前心里有数。
傅里叶变换默认你拿的是"整段无限长的信号"。可现实里你只有一小段录音、一小段脑电。你截的窗口越短,能分辨的频率就越糊——短窗口里连一个完整周期都凑不齐,自然说不清"它抖的是 3 还是 3.2 赫兹"。反过来,窗口拉得越长,频率分得越清,但"这件事发生在哪个时刻"就越来越说不准了:长窗口把时间揉成了一团。
举个具体的数帮你感受这道坎:要分辨出"相差 1 赫兹"的两个音,你至少得听够 1 秒——因为 1 赫兹意味着每秒差一个周期,不凑满一秒根本分不出谁多谁少。窗口只有 0.1 秒,你顶多分清相差 10 赫兹的俩音;想分清 3 和 3.2,对不起,得等 10 秒的窗口。所以"分辨频率的精度"和"观察的时间长度"互为倒数——这不是算法笨,是数学本身设的限。
这不是你算得不准,而是时域和频域之间的天然张力:你没法同时把"什么时候"和"什么频率"都看得一清二楚。就像隔着毛玻璃——盯着时间就模糊了频率,盯着频率就模糊了时间。量子力学里的"不确定性原理",骨子里也是同一种换基的拉扯,只是换到了位置和动量这对基上。给个直觉就好,公式先不碰。
六、回到量子:傅里叶变换就是给振幅"换一组基"
最后把镜头切回量子,你会发现今天这座桥直接通到了量子算法的门口。
一个量子态,可以"按位置"写(每个位置上一个振幅),也可以"按频率"写(每个频率上一个振幅)。量子傅里叶变换(QFT)做的,正是给这些振幅换一组基:把"按位置写的态"改写成"按频率写的态"。它和量子系列第 15 篇《量子傅里叶变换:Shor 的心脏》里那套眼花缭乱的相位旋转门,是同一件事——在振幅上换到正弦基,于是藏在周期里的秘密(比如一个待分解大数的周期)就暴露成了频谱里的尖峰。
更妙的是,频率在量子世界里和"相位"是同一枚硬币的两面:一个分量"频率多少",等价于它的振幅随时间的"旋转角速度多少",而旋转角正是物理系列第 8 篇《波·频率·相位:波动的通用语言》里那套 e^{iθ} 语言的主角。所以 QFT 也好,量子系列第 23 篇《Grover 的振幅放大为什么是 根号N》里靠反复转动夹角把目标放大的把戏也好,底层都不过是在正弦基这张桌子上,玩"频率"与"相位"的排列组合。
你今天学到的"正交基、投影、换基",就这样悄无声息地,长成了量子计算机最锋利的几把刀。
读后小测
3 句话复述
1. 任何够规矩的信号都能拆成不同频率正弦波之和,傅里叶变换就是问"每个频率各占多少",得到的清单叫频谱。 2. 正弦波能当积木,是因为不同频率的正弦波两两正交;"某频率占多少"正是信号在这根正弦基上的投影(内积)。 3. 时域和频域是同一段信号的两种坐标(换基),换基不改信号本身,只改你看它的角度;但窗口越短频率越糊、窗口越长越分不清时刻。
1 件动手小事
在纸上画两个不同频率的正弦波(比如一个慢悠悠每格抖一下、一个快快地每格抖三下),再把它们在每个时刻的高度逐点相加,得到一条新曲线;然后反过来想:给你这条拼出来的曲线,你能不能从"抖得快的那部分振幅更大"猜出它含高频分量?再打开浏览器搜一个"傅里叶变换交互演示",拖动滑块看曲线怎么被拆成一根根不同频率的彩条——你亲手做一次,就真的懂了"拆积木"。
---
傅里叶变换说到底是一件朴素的事:给一段信号换一套更好用的坐标。当你学会用"频率"而不是"时刻"去报一个波形的地址,那些藏在周期里的秘密——一段音乐的音色、一次脑电的异常、一个大数的因数——就都摊开成了一张清单。下一篇我们不妨换个角度,看看同样的"换基"思想,还能在哪些地方帮我们把混乱理顺。