声波与声音的合成:正弦波、振幅、频率、相位与叠加原理

声音是空气的振动。要在程序里描述、分析甚至”制造”声音,第一步就是理解最简单的振动——正弦波。这一篇不假设你有任何物理或数学背景,我们从”旋转”开始,一步步推出正弦波公式,再讲清楚它三个参数的含义,最后用叠加原理说明:复杂的音乐其实是由简单的正弦波拼出来的。


1. 先从旋转说起:正弦是什么

1.1 单位圆上的旋转

想象一个点在单位圆上匀速转圈。它每转一圈,角度从 00 走到 2π2\pi(也就是 360°360°)。如果我们只记录这个点竖直方向的高度,会得到一条波浪线。

把角度记为 θ\theta,竖直高度记为 yy,那么:

y=sinθy = \sin\theta

几个关键角度:

θ\theta00π/2\pi/2π\pi3π/23\pi/22π2\pi
sinθ\sin\theta0011001-100

所以 sin\sin 本质上是一个”旋转的投影”:角度匀速变化,投影高度就上下起伏。频率就是”每秒转多少圈”。

1.2 把旋转变成时间函数

设每秒转 ff 圈,经过时间 tt 秒转了 ftft 圈,对应角度 2πft2\pi ft。于是高度随时间变化为:

s(t)=Asin(2πft)s(t) = A\sin(2\pi f t)

这里先乘上振幅 AA,后面马上解释。这就是正弦波的完整公式。你可以把它读成:”s(t)s(t) 等于振幅 AA 乘以一个以频率 ff 转动的正弦值”。

正弦波参数图解

图上青色实线就是一条正弦波:横轴是时间,纵轴是”振动偏移量”。


2. 振幅 A:波有多高

2.1 定义

振幅 AA 是振动偏离平衡位置的最大距离。公式里 sin\sin 的取值范围是 [1,1][-1, 1],乘上 AA 后取值范围变成 [A,A][-A, A]

s(t)=Asin(2πft)As(t)As(t) = A\sin(2\pi f t) \quad \Longrightarrow \quad -A \le s(t) \le A

2.2 振幅决定了什么

振幅对应声音的”大小”。振幅越大,空气压强变化越剧烈,传到耳朵里的能量越大,我们感觉越响。

但注意:振幅和响度不是线性关系。振幅翻倍,人耳并不会感觉”响了一倍”,而是只响了一点。这是因为人耳对响度的感知接近对数(详见系列第 3 篇《响度与分贝》)。这也是为什么音频软件里的音量滑块通常不是线性的。

2.3 在图上怎么看

看图:红色竖线标注的 AA 就是波峰到平衡线的距离。一条振幅为 2A2A 的波,形状和 AA 的波完全一样,只是整体”变高变低”了。


3. 频率 f 与周期 T:波有多密

3.1 定义

频率 ff 是每秒完成振动的次数,单位 Hz(赫兹)。1 Hz 表示每秒振一次,1000 Hz 表示每秒振 1000 次。

完成一次完整振动需要的时间叫周期 TT

T=1fT = \frac{1}{f}

两者互为倒数:频率越高,周期越短。

3.2 频率决定了什么

频率对应音高。440 Hz 是音乐里的标准音 A4(小提琴调音用的”国际标准音”),880 Hz 比它高一个八度,220 Hz 比它低一个八度。

人的听觉范围大约是 20 Hz 到 20 kHz(20000 Hz):

  • 20–60 Hz:超低音,主要是”震动感”而不是”音高感”;
  • 60–250 Hz:贝斯、底鼓的主体;
  • 250 Hz–2 kHz:人声和旋律的主要范围;
  • 2 kHz–20 kHz:高频泛音、镲片、空气感。

3.3 角频率 ω

公式里经常出现 2πf2\pi f,它叫角频率,记作 ω\omega

ω=2πf\omega = 2\pi f

含义是”每秒转多少弧度”(2π2\pi 弧度 = 一整圈)。用它可以把正弦公式写得更短:

s(t)=Asin(ωt)s(t) = A\sin(\omega t)

两种写法完全等价,后面文章里会混用。

3.4 在图上怎么看

图上绿色标注的 TT 是相邻两个波峰之间的时间。频率 2 Hz 的波,一秒钟能看到两个完整波峰;频率 1000 Hz 的波,一秒钟有 1000 个波峰——在图上会挤成一条实心带,这也是为什么可视化时通常只显示很短的时间窗口。


4. 相位 φ:波从哪开始

4.1 定义

如果转圈不是从角度 0 开始的,而是先偏了 φ\varphi 弧度,公式变成:

s(t)=Asin(2πft+φ)s(t) = A\sin(2\pi f t + \varphi)

φ\varphi初相位(简称相位)。它只改变波形在时间轴上的起点,不改变形状、频率或振幅。

4.2 相位差:两个同频波的”错位”

两个频率、振幅都相同的波,如果相位不同,它们形状完全一样,只是错开了一段时间。错开的量:

Δt=φ2πf=φω\Delta t = \frac{\varphi}{2\pi f} = \frac{\varphi}{\omega}

相位差 φ\varphi 用弧度表示,一整圈是 2π2\pi90°=π/290° = \pi/2 弧度,180°=π180° = \pi 弧度。

4.3 相位为什么重要

单独听一个纯音时,相位几乎听不出来(耳朵对单一频率的相位不敏感)。但多个波叠加时,相位决定结果是加强还是抵消

  • 相位差 00(同相):Asinθ+Asinθ=2AsinθA\sin\theta + A\sin\theta = 2A\sin\theta,振幅翻倍;
  • 相位差 π\pi(反相):Asinθ+Asin(θ+π)=AsinθAsinθ=0A\sin\theta + A\sin(\theta+\pi) = A\sin\theta - A\sin\theta = 0,完全抵消。

图上橙色虚线就是同频但相位右移的波:它和青色实线形状一样,只是起点偏右。


5. 叠加原理:复杂声音 = 简单波之和

5.1 核心思想

声音在空气中的传播满足线性规律:两个波同时存在时,任意时刻的总振动等于各自振动的直接相加。写成公式:

stotal(t)=s1(t)+s2(t)++sN(t)s_{\text{total}}(t) = s_1(t) + s_2(t) + \dots + s_N(t)

每个 si(t)s_i(t) 都可以是一个正弦波:

stotal(t)=i=1NAisin(2πfit+φi)s_{\text{total}}(t) = \sum_{i=1}^{N} A_i \sin(2\pi f_i t + \varphi_i)

这就是叠加原理:同一时刻,把每个分量在那个时刻的值加起来,就是合成波的值。

叠加原理图解

上图里:

  • 蓝色曲线是低频分量;
  • 绿色曲线是中频分量;
  • 白色曲线是两者相加的结果。

注意白色曲线在蓝色和绿色同向时更高、反向时更低——这就是”相加”在图形上的含义。

5.2 为什么正弦波是”积木”

你可能会问:为什么要选正弦波当积木,不能选别的形状?

答案是傅里叶定理(系列第 5 篇会详细证明):任何”足够平滑”的周期信号,都可以唯一地分解成不同频率、振幅、相位的正弦波之和。正弦波是”原子”,其他所有波形都是它的组合。这意味着:

  • 一段小提琴声 = 基频正弦 + 若干泛音正弦;
  • 一段鼓声 = 很多不同频率的正弦瞬间叠加再快速衰减;
  • 一个方波 = 基频 + 奇次谐波(f,3f,5f,f, 3f, 5f, \dots)的无穷级数。

5.3 拍频:两个”很近”的频率

如果两个频率非常接近,比如 440 Hz 和 443 Hz,叠加后会产生周期性的”忽强忽弱”,这叫拍频(beating)。用和差化积:

sina+sinb=2cosab2sina+b2\sin a + \sin b = 2\cos\frac{a-b}{2}\,\sin\frac{a+b}{2}

a=2πf1ta = 2\pi f_1 tb=2πf2tb = 2\pi f_2 t,得到:

sin(2πf1t)+sin(2πf2t)=2cos ⁣(2πf1f22t)sin ⁣(2πf1+f22t)\sin(2\pi f_1 t) + \sin(2\pi f_2 t) = 2\cos\!\Big(2\pi\frac{f_1-f_2}{2}t\Big)\sin\!\Big(2\pi\frac{f_1+f_2}{2}t\Big)

右边像一个平均频率 f1+f22\frac{f_1+f_2}{2} 的波,外面包着一层频率 f1f22\frac{|f_1-f_2|}{2} 的”外壳”。人耳听到的就是每秒 f1f2|f_1-f_2| 次的强弱变化。吉他调音就利用这个现象:两根弦音高接近时会有拍频,越接近拍得越慢。


6. 用叠加”造”声音:音色从哪来

6.1 谐波与音色

同一个音高(比如 220 Hz 的 A),钢琴、吉他、单簧管听起来完全不同,差别不在基频,而在**泛音(谐波)**的振幅与相位分布。

一组典型的谐波:

谐波频率振幅(示例)作用
基频ff1.0决定音高
二次谐波2f2f0.4增加”明亮度”
三次谐波3f3f0.2增加”厚度”
四次谐波4f4f0.1再增加亮度
高次谐波\dots递减决定”尖锐”还是”圆润”

合成公式:

s(t)=k=1KAksin(2πkft+φk)s(t) = \sum_{k=1}^{K} A_k \sin(2\pi k f t + \varphi_k)

6.2 一个可以直接玩的实验

系列文章的配套工具音频混合工具可以实时演示:

  1. 只开 220 Hz 分量:你听到一个干净、单调的”纯音”;
  2. 依次加上 440、660、880 Hz:声音逐渐从”正弦”变成更像乐器的音色;
  3. 切到”和弦”预设:三个非整数倍的频率叠加,形成丰满的和声;
  4. 拖动相位:波形形状变化,但音色变化不明显——这正说明相位对单音感知较弱、对叠加形状重要。

工具上半部分画的各分量曲线和白色合成线,就是本节公式的实时可视化。


7. 小结

这一篇的核心结论:

  1. 正弦波是”旋转的投影”:s(t)=Asin(2πft+φ)s(t) = A\sin(2\pi f t + \varphi)
  2. 振幅 AA 决定响度,频率 ff 决定音高,相位 φ\varphi 决定起点;
  3. 任意复杂声音都可以写成多个正弦波之和——这就是叠加原理;
  4. 音色差异来自各次谐波的振幅和相位分布;
  5. 同频同相相加变强,反相相消,相近频率产生拍频。

下一篇《音高与十二平均律》将回答一个更深的问题:为什么音乐用 12 个半音?频率和音高到底是什么关系?

8. 深入专题:叠加的代数、几何与常见误区

前面的内容足够应付日常使用,但”叠加”这个主题还能挖得更深:为什么拍频公式长那样?为什么方波需要无限个谐波?相位到底重不重要?这一节全部展开。

8.1 和差化积:拍频的完整推导

要证明”两个相近频率叠加会产生拍频”,需要三角恒等式。从最基础的加法公式出发:

sin(a+b)=sinacosb+cosasinb\sin(a+b) = \sin a\cos b + \cos a\sin b sin(ab)=sinacosbcosasinb\sin(a-b) = \sin a\cos b - \cos a\sin b

两式相加:

sin(a+b)+sin(ab)=2sinacosb\sin(a+b) + \sin(a-b) = 2\sin a\cos b

a=2πf1ta = 2\pi f_1 tb=2πf2tb = 2\pi f_2 t,并做变量代换 a=(u+v)/2a = (u+v)/2b=(uv)/2b = (u-v)/2,得到:

sinu+sinv=2cosuv2sinu+v2\sin u + \sin v = 2\cos\frac{u-v}{2}\,\sin\frac{u+v}{2}

u=2πf1tu = 2\pi f_1 tv=2πf2tv = 2\pi f_2 t 代入:

sin(2πf1t)+sin(2πf2t)=2cos ⁣(2πf1f22t)sin ⁣(2πf1+f22t)\sin(2\pi f_1 t) + \sin(2\pi f_2 t) = 2\cos\!\Big(2\pi\frac{f_1-f_2}{2}t\Big)\sin\!\Big(2\pi\frac{f_1+f_2}{2}t\Big)

解读:

  • sin\sin 部分是平均频率 f1+f22\frac{f_1+f_2}{2} 的载波;
  • cos\cos 部分是频率 f1f22\frac{|f_1-f_2|}{2} 的包络;
  • 包络从 +1 到 −1 再回来是一个周期,对应 1/f1f21/|f_1-f_2| 秒,所以人耳每秒听到 f1f2|f_1-f_2| 次强弱变化。

例如 440 Hz 和 443 Hz:每秒 3 次强弱变化,这就是”拍频 3 Hz”。

8.2 为什么方波需要无限个谐波

方波的数学定义:

square(t)={+1,0<t<T/21,T/2<t<T\text{square}(t) = \begin{cases} +1, & 0 < t < T/2 \\ -1, & T/2 < t < T \end{cases}

它的傅里叶级数是:

square(t)=4πk=0sin(2π(2k+1)ft)2k+1\text{square}(t) = \frac{4}{\pi}\sum_{k=0}^{\infty}\frac{\sin\big(2\pi(2k+1)ft\big)}{2k+1}

也就是只有奇次谐波f,3f,5f,7f,f, 3f, 5f, 7f, \dots,振幅按 1/k1/k 衰减。

方波由奇次谐波合成

图里可以看到:

  • 只有 ff:一条正弦;
  • 3f3f:波形开始”变方”;
  • 5f5f:边缘更陡;
  • 7f7f 甚至更多:顶部更平、跳变更锐利。

但注意:无论加多少有限个谐波,合成结果都不会是完美方波,因为跳变处需要无穷多个高频分量。这是傅里叶级数的一个重要现象(吉布斯现象)。同理,任何有限个正弦波合成的信号都是光滑的,只有无穷级数才能产生真正的”角”。

8.3 相位叠加的三种典型情况

同相与反相叠加

两个同频同幅的正弦波 AsinθA\sin\thetaAsin(θ+φ)A\sin(\theta+\varphi)

情况一:φ=0\varphi = 0(同相)

Asinθ+Asinθ=2AsinθA\sin\theta + A\sin\theta = 2A\sin\theta

振幅直接翻倍。

情况二:φ=π\varphi = \pi(反相)

Asinθ+Asin(θ+π)=AsinθAsinθ=0A\sin\theta + A\sin(\theta+\pi) = A\sin\theta - A\sin\theta = 0

完全抵消,静音。这就是降噪耳机的基本原理:采集环境噪声,反相播放,把噪声”减掉”。

情况三:φ=π/2\varphi = \pi/2(正交)

利用和差化积:

Asinθ+Asin(θ+π/2)=Asinθ+Acosθ=2Asin(θ+π/4)A\sin\theta + A\sin(\theta+\pi/2) = A\sin\theta + A\cos\theta = \sqrt{2}A\sin(\theta+\pi/4)

结果仍是正弦,振幅变成 2A\sqrt{2}A,相位平移 45°45°。注意:两个同频正弦无论相位差多少,叠加结果都是同频正弦,只是振幅和相位变了。这一点很重要,也是为什么”同频”的分析可以只用振幅和相位两个数描述。

一般地,A1sin(ωt+φ1)+A2sin(ωt+φ2)A_1\sin(\omega t + \varphi_1) + A_2\sin(\omega t + \varphi_2) 可以合并成 Asin(ωt+φ)A\sin(\omega t + \varphi),其中:

A=A12+A22+2A1A2cos(φ2φ1)A = \sqrt{A_1^2 + A_2^2 + 2A_1A_2\cos(\varphi_2-\varphi_1)} tanφ=A1sinφ1+A2sinφ2A1cosφ1+A2cosφ2\tan\varphi = \frac{A_1\sin\varphi_1 + A_2\sin\varphi_2}{A_1\cos\varphi_1 + A_2\cos\varphi_2}

这两个公式在”合成器相位叠加”里很常用,建议自己代入验证一遍。

8.4 数值手算:三个谐波逐点相加

设采样间隔 TsT_s,取 t=0,Ts,2Ts,t = 0, T_s, 2T_s, \dots。我们用 f=220f = 2202f=4402f = 4403f=6603f = 660 Hz,振幅 1,0.5,0.251, 0.5, 0.25,相位全为 0,在一个周期内取 8 个点手算:

nnsin(2πftn)\sin(2\pi f t_n)0.5sin(2π2ftn)0.5\sin(2\pi\cdot2f t_n)0.25sin(2π3ftn)0.25\sin(2\pi\cdot3f t_n)合成
00000
10.7071.0000.7072.414
21.0000−1.0000
30.707−1.0000.7070.414
40000
5−0.7071.000−0.707−0.414
6−1.00001.0000
7−0.707−1.000−0.707−2.414

注意 tn=nTst_n = nT_s2πftn=2πn/82\pi f t_n = 2\pi n/8(因为一个周期 8 个点),于是 sin(2πn/8)\sin(2\pi n/8)sin(2π2n/8)\sin(2\pi\cdot2n/8)sin(2π3n/8)\sin(2\pi\cdot3n/8) 可以直接查表。合成列就是”同一行三个值相加”,这正好演示了叠加原理的逐点计算。把这张表画到坐标纸上,就是白色合成曲线的 8 个采样点。

8.5 常见误区

误区一:“相位不重要,可以随便设”

对单一频率的纯音,人耳确实很难分辨相位。但叠加多个波时,相位直接决定波形形状:同相翻倍、反相抵消。降噪耳机、波束成形、相控阵雷达全是靠”控制相位”工作的。

误区二:“振幅越大,响得越多”

人耳对响度的感知接近对数。振幅从 1 到 2 只增加约 6 dB,感觉只”响了一点”;要感觉”响了一倍”大约需要 +10 dB(振幅 ×3.16)。详见系列第 3 篇。

误区三:“声音大 = 音调高”

音高由频率决定,响度由振幅决定,两者独立。低音贝斯可以震得胸口发闷(振幅大),但音高很低。

误区四:“方波就是两个正弦波”

方波需要无穷多个奇次谐波。有限个正弦叠加永远是光滑曲线,不能产生真正的直角跳变。

误区五:“播放器里的波形就是原始声波”

播放器画的波形通常只取很短的时间窗口(几毫秒到几十毫秒),低频分量在这种窗口里可能只看到一小段;而且显示时做了归一化和压缩,不代表真实振幅。

8.6 扩展练习

  1. 用和差化积证明:440 Hz 与 444 Hz 叠加后包络频率是 2 Hz。
  2. 计算 3sinθ+4cosθ3\sin\theta + 4\cos\theta 的振幅和相位(提示:写成 Asin(θ+φ)A\sin(\theta+\varphi))。
  3. 音频混合工具分别设两个分量为 220 Hz(振幅 1)和 660 Hz(振幅 0.33),观察是否接近方波的前两项,并解释为什么比例是 1:1/3。
  4. 为什么降噪耳机需要”反相”而不是”减小音量”?用公式说明。

练习

  1. 440 Hz 的正弦波,周期是多少毫秒?
  2. 写出 s(t)=3sin(2π1000t+π/2)s(t) = 3\sin(2\pi\cdot 1000 t + \pi/2) 的振幅、频率、初相位。
  3. 两个同频同幅反相的正弦波叠加结果是什么?用公式验证。
  4. 打开音频混合工具,分别设置两个分量为 440 Hz 和 443 Hz,观察白色合成波的”拍频”。