傅里叶的回声:从声波到快速卷积

原标题Echoes of Fourier: From Sound Waves to Fast Convolution

通过实际例子了解傅里叶变换、卷积,以及如何用数学方法让录音呈现真实或想象空间的声学效果。

CHChristopher Hardin讲者
频道
Jane Street
发布
2018年1月16日
视频
56:12
阅读
9 分钟
幻灯片
8
原文
英语
在 YouTube 打开
往下滚动阅读时,视频会缩到右下角继续播放。字幕跟随阅读语言。
阅读语言共 2 种语言可读
由 AI 从英语原文翻译。打开“对照原文”可以逐段核对。
摘要

30 秒看懂

在这场 Jane Street 演讲中,Christopher Hardin 从声音采样和复正弦波出发,介绍离散傅里叶变换和 FFT。他利用卷积定理,将实测和模拟的房间响应应用于录音,并讨论共振、反卷积和图像处理。

  1. 1声音是波的叠加复正弦波构成采样信号的一组正交基,其系数编码幅值和相位。
  2. 2快速变换FFT 采用分治算法,在 O(N log N) 时间内计算离散傅里叶变换。
  3. 3回声与卷积脉冲响应描述延迟到达的反射声,卷积将它们的贡献加到每个输出样本中。
  4. 4卷积定理分别变换两个输入,将对应系数相乘,再进行逆变换,就能高效计算卷积。
  5. 5虚拟走廊的共振一条模拟的 30 米长走廊在约 10.977 赫兹处出现共振,对应波长约 30 米。
  6. 6消除回声的限制响应中出现零值时无法求逆;系数接近零时,反卷积也可能不稳定。

要点建议

  1. 采样声音可以表示成一组复正弦波的和,其系数包含幅值和相位。
  2. FFT 能在 O(N log N) 时间内计算离散傅里叶变换。
  3. 脉冲响应描述空间如何改变声音,包括产生的回声。
  4. 卷积定理将时域卷积转化为频域的逐点乘法。
  5. 补零可以防止循环回绕,重新缩放则可防止播放时削波。
  6. 频率系数为零或接近零时,反卷积可能不稳定。
全文

按章节阅读整理后的全文

只看原始文稿
01

声音采样与复数

录音是一系列样本。复数和欧拉公式为表示周期运动提供了一种方法。

我想探讨回声与傅里叶变换之间的关系。要用数学处理声音,可以先把录音看作时间的函数:函数值描述每一时刻的压力。波形由许多不同频率的振荡以不同方式组合而成。

为了计算,我们用离散样本代替连续时间。采样率为每秒 44,100 个样本时,一个样本相当于 1/44,100 秒。因此,声音可以视为离散时间的函数,也可以看作样本值构成的向量。

处理声音之前,我们需要复数。复数有实部和虚部,可以表示为复平面上的一个点。极坐标用该点到原点的距离,以及从实轴起算的角度来描述它。

极坐标形式的复数乘法
幻灯片 1 / 8极坐标形式的复数乘法图中展示了复数相乘时模长相乘、角度相加。

加法分别将实部和虚部相加。乘法用极坐标更容易理解:两个模长相乘,角度相加。角度按逆时针方向计量,所以顺时针角度为负。

利用幂级数,我们可以将指数、正弦和余弦等函数扩展到复数输入。把虚数代入指数级数,再分别整理实部和虚部,就会得到余弦和正弦的级数。

这就得到了欧拉公式 e^(iθ) = cos θ + i sin θ。它的绝对值为 1,所以随着 θ 增大,点会沿单位圆运动。例如,e^(iπ/2) = i,e^(iπ) = −1。

圆周运动是一种特别自然的周期运动。在合适的位置与速度相空间中,弹簧上的重物会画出一个圆;正弦和余弦可以看作这个圆的投影。因此,复指数是构造周期信号的有用基础。

我们不必分别将信号分解为正弦和余弦,而可以使用不同频率的复正弦波。正频率对应沿圆周逆时针运动,负频率对应顺时针运动。

02

以复正弦波为基

有限的循环时间将信号表示为向量,正交的复正弦波构成该空间的一组基。

我们还要让时间变成有限的:只有 N 个不同的采样位置,索引到达 N 后便回绕至零。声音于是成为 N 维复数空间 C^N 中的向量,也可以等价地看作定义在样本索引 0 到 N−1 上的函数。

当 t 走完整个采样区间时,复正弦波 exp(2πit/N) 绕圆周一圈。指数中加入整数频率 ω,就会绕 ω 圈;ω 为负时方向相反。可以把这个表达式看作频率为 ω 的波。

有限时间与复正弦波
幻灯片 2 / 8有限时间与复正弦波幻灯片定义了 C^N,并展示复指数在采样区间内如何绕圆周旋转。

虽然我们在复向量空间中处理声音,例子中的声音取值都是实数。重要的定理是:任何这样的向量都可以表示为复正弦波之和,每个波都乘以一个系数。用线性代数的语言说,这些正弦波构成 C^N 的一组基。

系数的幅值告诉我们信号中含有多少该频率的成分;它的角度,也就是相位,则包含时间信息。这些系数共同在另一套坐标中描述同一个声音。

为什么这些波构成一组基?复数内积需要对其中一个因子取共轭,因此两个波的内积涉及一个频率等于两者频率之差的正弦波。频率索引不同时,它的值在单位圆上均匀分布,总和为零。

所以这些波互相正交。在 N 维空间中,N 个非零且互相垂直的向量线性无关,构成一组基。如果频率相同,差值为零,总和就不会消失。

03

傅里叶变换与滤波

离散变换将时间样本转为频率系数,FFT 可以高效计算这一变换。带通滤波演示展示了这种表示方式。

可以用一个与重建公式相似的公式求回这些系数,只是指数的符号相反,归一化因子的位置则取决于约定。这一公式来自对信号和正交基向量求内积。

离散傅里叶变换将时域样本映射为这些频率系数,逆变换则把系数还原为样本。变换只是改变了基,原始信号并未因此丢失。

快速傅里叶变换
幻灯片 3 / 8快速傅里叶变换幻灯片概述 FFT 的分治方法及其 O(N log N) 运行时间。

快速傅里叶变换,简称 FFT,是一种在 O(N log N) 时间内计算离散变换及其逆变换的算法。Cooley 和 Tukey 于 1965 年发表了一个版本;Hardin 提到 Gauss 更早的版本。它采用分治法,分别变换偶数和奇数索引的样本,再合并结果。

在 Octave 演示中,我变换这首曲子,并绘制频率系数的幅值。对于实值信号,高频一侧是低频一侧的镜像:每个样本旋转八分之七圈,在采样点上与反向旋转八分之一圈无法区分。

低频图中有许多峰值,可能反映乐器或录音空间的共振。幅值只是信息的一部分,每个系数还有相位。单独绘制相位图时,很难直接从图中看出规律。

作为简单的滤波,我们只保留 300 到 400 赫兹的频率,其余设为零。频率区间需要从整个录音中的周期数换算为每秒周期数。我们还要保留对应的负频率成分,使重建后的信号保持为实数。

频带滤波
幻灯片 4 / 8频带滤波Octave 命令保留选定频带内的系数及其对应的负频率。

逆变换之后,滤波后的录音听起来明显不同。频域表示让我们能直接选出一个频带,再把结果变回声音。数值舍入可能留下微小的虚部,对于这个实值信号,可以将其丢弃。

先做变换再做逆变换,得到的结果几乎就是原录音;剩下的差异只是微小的浮点误差。在使用同样的方法进行更复杂的处理之前,这种往返运算是一个有用的实际检查。

04

回声与卷积

脉冲响应描述房间中延迟到达的反射声,卷积将这一响应与输入声音结合起来。

现在考虑回声。声音在空间中发出后,反射声会以不同的延迟和强度到达。这些延迟响应的模式描述了空间如何改变任意录音;每次反射的符号可能保持不变,也可能因边界条件而反转。

把原声记为 a,回声模式或脉冲响应记为 b。要构造第 3 个样本处的输出 c,就将 a₀b₃、a₁b₂、a₂b₁、a₃b₀ 等贡献相加:每一项都把一个原始样本与到达样本 3 所需的延迟结合起来。

在这个循环模型中,索引按模 N 计算。一般地,cₜ = Σₘ aₘbₜ₋ₘ,其中 m 遍历 N 个样本。这一运算叫作卷积,记为 a * b。它描述了录音经过 b 所代表的空间后听起来会是什么样。

构造回声
幻灯片 5 / 8构造回声幻灯片通过累加原声和脉冲响应的延迟贡献,推导输出样本。

举个简单的例子:如果脉冲响应先有一个 1,随后在某个延迟处有一个 0.5,输出就包含原信号和一个延迟、幅度减半的副本。给向量补足够多的零,可以防止循环回绕干扰所需的结果。

脉冲响应可以通过测量得到。一个由单个 1 和后续一串零组成的信号是一次尖锐的爆响;它与 b 卷积得到的正是 b。在某个空间里录下气球爆裂或电火花的声音,录音就近似于该空间的脉冲响应,包括之后的反射声。

05

真实空间中的快速卷积

卷积定理避免了平方级计算。演示将教堂的实测响应应用于录音。

直接使用卷积公式,每个输出样本需要 N 次乘法,所有样本共约需 N² 次。样本数达到一百万时,这种计算就很昂贵。卷积定理提供了一条快得多的途径。

卷积定理
幻灯片 6 / 8卷积定理公式将卷积转化为傅里叶变换的逐点乘法。

定理指出,卷积的傅里叶变换等于两个傅里叶变换的逐点乘积:F(a * b) = F(a)F(b)。因此,a * b = F⁻¹(F(a)F(b))。FFT 的计算量为 O(N log N),乘法为 O(N),整个计算仍是 O(N log N)。

证明只需调整求和顺序,并运用变换和卷积的定义。它的实际意义在于:时域中涉及许多延迟副本的运算,在频域中变成了普通的逐点乘法。

作为真实例子,我使用在意大利 Santa Lucia 教堂录制的脉冲响应。尖锐的爆响和随后衰减的反射声记录了该空间的声学响应。演示时,我从立体声录音中选取一个声道。

教堂的脉冲响应
幻灯片 7 / 8教堂的脉冲响应图中显示用于卷积的 Santa Lucia 录音中逐渐衰减的响应。

要把它应用于歌曲,需要对两个信号补零,使长度达到合适的 2 的幂,且至少等于两者长度之和。分别变换后,将结果逐点相乘,再做逆变换。补零可以防止卷积结果的尾部回绕到开头。

舍入误差可能留下微小虚部,所以我取实部。输出也可能超出允许播放的 −1 到 1 范围;重新缩放可以避免削波。对比原声和处理结果,就能听到人工加入的混响。

06

模拟房间与共振

合成的脉冲响应模拟了一条反射性很强的走廊和一个较小的房间。镜像点阵解释了模拟方法。

实测的脉冲响应让我们能把真实场所的声学效果带到另一段录音中。我们也可以为不存在的空间制作脉冲响应。我模拟了一条宽 2 米、高 3 米、长 30 米的走廊,它的墙面反射能力很强。

合成走廊响应的处理方法相同:补零、变换、相乘、逆变换和重新缩放。处理后的录音听起来像在这条虚构走廊中播放,混响更强,也更鲜明。

走廊脉冲响应的傅里叶变换显示出共振峰。第一个明显峰值约为 10.977 赫兹。按每秒约 331 米的声速计算,波长约为 30 米,与模拟走廊的长度一致。

模拟走廊的共振峰
幻灯片 8 / 8模拟走廊的共振峰频谱图展示了人工房间响应中的峰值。

针对长方体空间,模拟采用镜像构造。把墙面想象成镜子、声源想象成一盏灯:反复反射会形成无限的三维镜像声源点阵。每个镜像都代表一条可能的反射路径。

这个例子中的墙面反射 99.9% 的声音。反射次数越多,路径上的声音衰减越大;距离越远也会衰减。要构造有限的脉冲响应,就把传播时间在所选范围内的镜像声源贡献按相应延迟和衰减相加。

为了得到更细微的效果,再模拟一个长、宽、高均为 3 米的房间,墙面反射 90% 的入射声音。将另一段录音与这个响应卷积,就能赋予录音这一较小、吸声更强的空间的声音特征。

07

反卷积与问答

讨论涉及不稳定性、图像模糊、房间校正和实际脉冲响应测量。

有听众问卷积是否可以逆转。在频域中,反卷积意味着除以响应的傅里叶系数。如果任何系数为零,就不存在精确的逆;系数接近零时,逆值会变得非常大,导致数值不稳定。

同样的思路可以推广到二维。对于灰度图像,先变换每一行,再变换每一列。将图像与类似高斯凸峰的函数卷积会使图像模糊;出于同样的稳定性原因,试图通过反卷积恢复原图很困难。锐化可以近似改善效果,却无法完美恢复丢失的细节。

数字房间校正使用房间脉冲响应的近似逆。音响系统可以在播放前施加这一校正,声音再经过房间自身的响应,最终得到更好的整体效果。由于完美抵消通常不现实,这个逆只能是近似的。

我试过截取脉冲响应的最初部分,它应该包含反射之前直接到达的声音,然后用它进行精确反卷积。结果很糟。清理不完美的脉冲响应测量时,近似逆可能更有用。

在实践中,可以用扫频信号代替极尖锐的爆响来测量房间,再用数学方法消除已知的扫频效果。将能量分散到一段时间内,有助于避免麦克风进入非线性状态,否则线性卷积模型就会受到破坏。

同频道的其他文章

6 张幻灯片15:33EN → 简体中文
Jane Street· 2026年10月26日Figgie 策略:解读手牌、争夺多数与定价Bradley, Mike · Jane StreetJane Street 交易员 Bradley 和 Mike 分析三局游戏,展示私人信息、市场竞争和时机如何影响牌价。Decision MakingMathematicsFintech
1:48:29EN → 简体中文
Jane Street· 2026年10月16日AI 如何改变编程:John Crepezzi 与 Ron Minsky 的对话Yaron Minsky, John Crepezzi · Jane StreetJane Street 的 AI 工具负责人和 Signals and Threads 主持人探讨智能体基础设施、安全、代码审查,以及软件开发体验的变化。编程智能体Developer productivity评估+2
1:36:37EN → 简体中文
Jane Street· 2026年9月23日Aaron Bauer:在 AI 时代教授软件工程Yaron Minsky, Aaron Bauer · Jane Street当模型能够生成代码时,学习目标、主动练习和编辑器设计如何影响工程教育。AI in EducationSoftware engineeringEducation+2
9 张幻灯片1:05:45EN → 简体中文
Jane Street· 2026年9月11日Cyrus Omar:实时编程与人与 AI 共享的计算公共空间Cyrus Omar通过 Hazel 演示,探讨即时反馈、结构化协作和精细权限如何帮助人类与 AI 智能体共同工作。Programming LanguagesHuman-AI Collaboration开发流程与测试+2
1:25:00EN → 简体中文
Jane Street· 2026年9月2日Eric Mannes:如何将杂乱的外部数据用于交易研究Yaron Minsky, Eric Mannes · Jane Street从商品期货和 Excel 风险系统,到时点数据集和 AI,Eric Mannes 解释 Jane Street 数据工程背后的领域知识。Data quality & curation开发流程与测试Investing+2
7 张幻灯片1:16:29EN → 简体中文
Jane Street· 2026年8月26日Grant Sanderson 与 Alok Puranik:从群论看位置编码Grant Sanderson, Alok Puranik · 3Blue1Brown从注意力机制的假设出发,他们推导矩阵指数,并将旋转、衰减和 Jordan 块与 RoPE、ALiBi 联系起来。Transformers & attentionMathematics机器学习基础+1