首页 › programming › FFT神课:把波拆开的算法

概述

如果只能选一条视频来解释“算法如何塑造现代生活”,Veritasium 这期讲快速傅里叶变换(FFT)的长视频是最好的答案之一。它用一条主线串起三个层次:一段持续两百年的数学史(傅里叶—高斯—库利与图基),一次复杂度上的惊天压缩(从 O(N²) 到 O(N log N)),以及一张覆盖你全部数字生活的应用网——你手机里的照片压缩、无线信号收发、语音识别,背后都是这同一个算法在转。本文按视频叙事顺序拆解它的核心主张,补齐理论与史料出处,指出哪些说法证据充分、哪些属于修辞,最后给出三条可以直接上手的启示。看完本文,你不需要会推导公式,也能明白为什么这期视频敢用“史上最巧妙的算法”当标题。

视频基本信息

项目 内容
视频标题 The Fast Fourier Transform (FFT): The Most Ingenious Algorithm Ever?(中译参考:《快速傅里叶变换:史上最巧妙的算法?》)
频道 Veritasium(物理学者 Derek Muller 主理的科普频道,订阅量千万级)
发布时间 2025年上线(据频道页面,未核对到具体日期)
播放量 数百万量级且仍在增长(以频道页面实时数据为准)
时长 约半小时
核心主题 傅里叶变换的原理、FFT 的历史与它如何支撑整个数字世界
链接 https://www.youtube.com/@veritasium (频道页内检索标题即可看到)

一、核心主张拆解:一场五幕的算法剧

第一幕:你口袋里的隐形冠军

视频的开场策略很典型:先让你意识到这个算法的无处不在。你早上拍的 JPEG 照片、路上连的 WiFi、通勤时刷的短视频流、语音助手对你说的第一句话——这些场景共同点在于,它们都要在毫秒级时间内回答同一个问题:一段混杂的信号里,都藏着哪些频率的波? 回答这个问题的标准工具就是快速傅里叶变换。视频据此抛出标题里那个挑衅性的判断:论对物质世界数字化处理的实际影响力,FFT 有资格竞争“史上最重要算法”。这是一个修辞上聪明的钩子,也把整期视频的任务定清楚了:讲清楚这个算法为什么“快”、为什么“妙”、又是谁想出来的。

第二幕:傅里叶的豪赌

故事回到 1807 年的巴黎。约瑟夫·傅里叶研究热传导问题时提出了一个大胆命题:任何周期信号都可以被分解成一组不同频率、不同振幅、不同相位的正弦波的叠加——时域里看起来杂乱无章的曲线,换个视角看,只是若干“纯音”的总和。这个想法当场遭到拉格朗日的反对:凭什么是正弦波?凭什么随便一个函数都能这样拆?这场争论的数学细节(级数的收敛条件)要等到狄利克雷等人在几十年后才逐步补齐,工程界则用更实际的方式投了票:正弦波是线性系统的“本征响应”——一个正弦输入进去,出来的还是同频正弦,只是幅度和相位变了。这意味着在频率视角下,复杂的微积分运算会退化成简单的乘法。傅里叶变换的真正威力不是“分解”,而是“换语言”:时域里难解的问题,到频域里可能一步就解决了。这是全片最重要的概念跃迁,也是后面一切应用的共同根。

第三幕:DFT,一场数学上的苦力活

概念美好,实现残酷。计算机能处理的只是离散版本——离散傅里叶变换(DFT):给定 N 个采样点,要算出 N 个频率分量,按定义需要把每个点与每个频率两两配对,做大约 N² 次复数乘法。视频用具体数字把这种“暴力”的代价砸实:N=1000,就是约一百万次乘法;而真实音频一分钟就有几十万个采样点。二十世纪六十年代的计算机面对这个量级束手无策,“把信号变换到频域”在工程上长期只是纸上谈兵。瓶颈不在数学,在算力账单——这一幕为下一幕的转折蓄满了势能。

第四幕:1965,算法的解放

转折发生在 1965 年。普林斯顿的统计学家约翰·图基(此人还顺手参与了"bit"这个词的发明)想通了一个关键点:DFT 的计算里充满冗余——旋转因子具有对称性和周期性,同一个乘法被反复做了无数遍。物理学家理查德·加文得知这个想法后,敦促在 IBM 工作的程序员詹姆斯·库利把它实现出来。方法本质上是我们今天熟悉的分治:把 N 点变换拆成两组 N/2 点变换(偶数下标一组、奇数下标一组),递归下去,再用“蝶形运算”把结果合并。递推式 T(N)=2T(N/2)+O(N) 一展开,复杂度从 N² 塌缩到 N log N。数字对比是这条视频最震撼的部分:N=1024 时,暴力法约需一百万次乘法,FFT 只需约一万次,一百倍差距;N 增大到一百万点时,差距拉大到约五万倍。同年,两人的论文《复数傅里叶级数的机器计算算法》发表在《Mathematics of Computation》上,而且刻意发表在公开文献里——从此任何人、任何机器都可以自由使用它。这也是视频强调的一个深意:这篇论文的开放性,本身就是数字世界的一份公共基础设施。

第五幕:无处不在,以及高斯的幽灵

最后一幕是应用巡礼,外加一个反转彩蛋。应用侧:JPEG 与 MP3 这类压缩格式在编码前先把图像/声音变换到频率域,丢掉人眼人耳不敏感的高频成分——严格说 JPEG 用的是离散余弦变换(DCT),MP3 用的是它的变体 MDCT,都是傅里叶家族的近亲,视频也专门做了这个区分,没有含糊其辞。无线通信这边是通信工程师最熟悉的画面:5G 和 WiFi 使用的 OFDM 调制,发射端用一次 IFFT 把成百上千个正交子载波“合成”为一个时域符号,接收端再用一次 FFT 拆回去——没有 FFT,多载波通信在工程上根本不可行。医学影像里的 MRI 扫描仪采集的是频率空间的原始数据,成像靠的是二维逆傅里叶变换。而在叙事的反转处,视频讲了那个著名的故事:数学史家后来考证,高斯早在 1805 年的手稿里,为了给小行星轨道做插值,就已经发明了本质上相同的快速算法——比傅里叶的论文还早两年,只是他没有发表,这个方法在故纸堆里沉睡了一个半世纪,直到 1984 年才被学者正式挖掘出来。

二、知识与理论溯源

视频里的每个戏剧节点,都有真实文献可查,这也是它经得起深挖的地方:

傅里叶的原始主张出自 1807 年提交巴黎科学院的热传导论文,成熟版本是 1822 年的《热的解析理论》(Théorie analytique de la chaleur)。拉格朗日质疑的严格答案由狄利克雷收敛定理给出:对工程中遇到的“够规矩”的信号,傅里叶级数确实收敛;数学上的例外(如吉布斯现象)不影响工程使用。

Cooley–Tukey 论文:James Cooley 与 John Tukey,"An algorithm for the machine calculation of complex Fourier series",Mathematics of Computation,1965 年。这是 O(N log N) 快速算法的现代起点,也是“算法开放发表”价值观的经典案例。

高斯优先权考证:Michael Heideman、Don Johnson 与 C. Sidney Burrus 于 1984 年在 IEEE ASSP Magazine 发表"Gauss and the history of the FFT",确认高斯 1805 年未发表的手稿(与小行星帕拉斯轨道插值有关)已包含同型的快速算法。

更早的先声:1942 年 Danielson 与 Lanczos 已发表过利用对称性降低计算量的傅里叶分析方法。也就是说,1965 年不是从零开始的顿悟,而是想法的集大成与工程定型——这个细节后面批判性审查会用到。

工程侧的延续:库利-图基只给出了骨架,现代软件里的 FFT 是被反复打磨过的工业品。麻省理工开源的 FFTW(Fastest Fourier Transform in the West,主页 fftw.org)用运行时自适应规划器的思路,把“同一算法在不同 CPU 上最优实现不同”这个硬件现实做成了软件问题,1999 年拿下数值软件领域的 Wilkinson 奖。这也是给程序员观众的一层知识增量:从论文算法到可信工程,中间还隔着一代人的手艺。

通信侧的落点:3GPP 定义的 5G NR 下行采用 CP-OFDM,WiFi 的 802.11 系列同样建立在 OFDM 之上;OFDM 的收发机之所以能塞进手机芯片,正是因为 IFFT/FFT 把“管理上千个子载波”的复杂度压到了对数级。这一条可延伸阅读维基百科的 OFDM 条目,与视频内容互相印证。

三、批判性审查:哪些可信,哪些要打折

可信度最高的部分是数学与历史骨架:傅里叶 1807/1822、Cooley–Tukey 1965、高斯 1805 手稿、1984 年考证论文,全部有文献支撑,交叉核对无冲突。O(N²) 到 O(N log N) 的复杂度对比是算法教材级别的结论,没有争议。

需要打折的第一处是“史上最巧妙/最重要算法”这个定语。这是标题党的修辞,虽然有大人物背书——数学家 Gilbert Strang 曾在 1994 年的文章里称 FFT 是“我们这个时代最重要的数值算法”——但“最重要”的候选名单从来不短:快速排序、单纯形法、PageRank、卡尔曼滤波都被人提过。正确理解是:在“信号处理”这个特定战场上,FFT 的统治地位无可撼动;跨领域比较则是见仁见智的评论,不是定理。

第二处是英雄叙事的简化。广为流传的版本把 1965 年讲成灵光一现,但库利本人后来在回顾文章里指出过程要曲折得多,而且如前所述,1942 年的 Danielson–Lanczos 工作已经摸到了同一种思路的门槛。视频在这条线上属于“讲了一个真实但被压缩的故事”,这也是几乎所有算法史科普的通病——好故事和完整史之间总要做取舍。观看时应把“某年某人发明了它”理解为“某年某人让它变成了公共财产”。

第三处是量级修辞。“你的手机每秒执行数十亿次 FFT”这类说法在定性上站得住(调制解调、音频、相机 ISP 的确在持续调用),但它不是任何机型的实测指标,不同场景相差几个数量级都正常。把它当作“无处不在”的感性说明即可,不要当性能数据引用。同样,用 100 倍、5 万倍这样的加速比讲故事时,注意它们只在特定 N 值下成立,不是普适常数。

第四处是傅里叶命题本身的边界。视频中“任何函数都能拆成正弦波”是工程口径的简化;数学上收敛性有条件,分段的、带跳变的函数会在跳变点出现吉布斯振荡。这不影响任何实际应用,但如果你拿着视频的表述去和数学系的人讨论,会被补这一课。

四、认知提升与实用启示

第一,卡在暴力解时,先问“换个表示会不会塌缩”。 FFT 的故事本质上不是“把循环写得更快”,而是发现计算里藏着对称与冗余,换到频率视角后问题自己变简单了。同构的思想随处可见:卷积在时域是 N² 的滑窗,到频域只是一次乘法;多项式乘法、大整数乘法(Schönhage–Strassen 算法)都靠这一步“换表示”从平方级降到对数线性。写代码遇到双重循环时,值得养成一个习惯:这个 N² 里,有没有可以复用的中间结果?有没有一个坐标变换能让两两交互变成整体变换?

第二,用二十行代码亲手买一张“一百倍”的门票。 打开 Python,先按定义写一个双重循环的 DFT,再用 numpy.fft 各跑一遍 N=8192 的变换并计时。你会亲眼看到暴力版和 FFT 版之间两个数量级的差距,并且把 N 翻倍时,前者的耗时变成四倍,后者只变成略多于两倍——O(N²) 与 O(N log N) 的抽象符号第一次变成你机器上的秒表读数。这个五分钟的实验,比任何文章都更能建立“复杂度是真实成本”的手感。

第三,知道你调用的库的成本模型,是工程师和调包侠的分界线。 scipy.fft 一行调用背后,是分治、蝶形、旋转因子表、SIMD 与缓存局部性的层层打磨;FFTW 甚至会为你的机器现场规划最优实现。你不需要会写这些,但知道“变换的代价是 N log N、实数序列有专门的快速路径、频率分辨率取决于采样时长”这几条,足以让你在设计滤波、抽帧、频谱分析功能时不犯数量级错误。算法史的另一个隐藏教训也在这里:高斯的天才手稿沉睡了一百五十年,而 1965 年那篇论文改变世界——让好想法进入公共流通,和想出好想法同样重要。

五、一张图看懂视频的论证结构

flowchart TD
    A["一条神课:FFT<br/>史上最巧妙的算法?"] --> B["1807 傅里叶<br/>信号即波之叠加"]
    A --> C["暴力 DFT<br/>复杂度 N 的平方"]
    A --> D["1965 库利与图基<br/>塌缩到 N log N"]
    A --> E["1805 高斯彩蛋<br/>先发明却不发表"]
    B --> F["换语言的力量<br/>时域难题频域变乘法"]
    C --> G["千点采样<br/>百万次乘法算不动"]
    D --> H["分治加蝶形<br/>复用对称与冗余"]
    E --> I["1984 考古论文<br/>沉睡一个半世纪"]
    H --> J["数字世界的底座"]
    J --> K["JPEG 与 MP3<br/>频域里丢掉冗余"]
    J --> L["5G 与 WiFi<br/>OFDM 收发全靠它"]
    J --> M["MRI 与科学计算<br/>从 k 空间到图像"]

延伸阅读

  1. 3Blue1Brown 的《But what is the Fourier Transform? A visual introduction》——用动画把“信号拆成波”讲到直觉层,与本视频的“历史+复杂度”主线正好互补,站内检索标题可见。
  2. FFTW 官网(ffw.org 的正确地址为 fftw.org)——看看一篇 1965 年的论文如何长成现代工业级软件,其文档里的“性能规划”一节是算法工程化的绝佳教材。

参考来源

  1. Veritasium 频道页 — 目标视频《The Fast Fourier Transform (FFT): The Most Ingenious Algorithm Ever?》可在频道内检索标题观看,播放量与发布信息以该页面为准
  2. Fast Fourier Transform - Wikipedia — 算法原理、Cooley–Tukey 历史与复杂度结论的综合条目
  3. Orthogonal frequency-division multiplexing - Wikipedia — OFDM 与 IFFT/FFT 的关系,对应 5G/WiFi 应用部分
  4. Heideman, Johnson & Burrus, "Gauss and the history of the FFT", IEEE ASSP Magazine, 1984 — 高斯 1805 年手稿的优先权考证
  5. Cooley & Tukey, "An algorithm for the machine calculation of complex Fourier series", Mathematics of Computation, 1965 — FFT 的现代起点论文

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入