2. 声学量度:声压、声强、声功率与分贝
各位好,欢迎来到第二章。上一章我们聊了声波的基本物理图像,这一章咱们得把「度量」这件事搞清楚。做音频处理,说白了就是跟几个物理量打交道:声压、声强、声功率,以及它们怎么用分贝来表达。
我个人习惯,在接触一个新系统时,先搞清楚它「量什么」和「怎么量」。声学里这三个量,就是最底层的标尺。你想想看,如果连麦克风测出来的是声压还是声强都分不清,后面做降噪、做波束成形,那基本是空中楼阁。
2.1 声压、声强、声功率的定义与单位
2.1.1 声压(Sound Pressure)
声压是最直观的。声波传播时,空气被压缩和稀疏,导致局部压强相对于大气压的起伏,这就是声压。单位是帕斯卡(Pa)。
我刚开始做麦克风阵列时,有个误区:以为麦克风输出的是声强。其实不是,绝大多数麦克风测的是声压。你对着麦克风说话,振膜感受到的是压强变化,不是能量流。
关键点:声压是标量,有正负(压缩为正,稀疏为负)。人耳能感知的最小声压约为 2×10⁻⁵ Pa,称为听阈;痛阈约为 20 Pa。两者差了 100 万倍。
2.1.2 声强(Sound Intensity)
声强描述的是能量在单位时间内通过单位面积的多少。单位是 W/m²。它是个矢量,有方向——指向声波传播的方向。
声强和声压的关系,在自由场(无反射)中很简单:
I = p² / (ρ₀ · c)
其中 ρ₀ 是空气密度(约 1.2 kg/m³),c 是声速(约 343 m/s)。ρ₀·c 称为特性阻抗,约 412 Pa·s/m。
实用技巧:在近场测量时,声强和声压的关系会变得复杂。我曾经在消声室做声源定位实验,发现近场数据用自由场公式算出来偏差很大。后来改用声强探头(双麦克风法)直接测,才把问题解决。
2.1.3 声功率(Sound Power)
声功率是声源在单位时间内辐射的总声能量,单位是瓦特(W)。它不随距离变化——你离声源再远,声源本身的声功率是不变的。变的是声压和声强。
举个例子:一个 10W 的扬声器,电功率 10W,但声功率可能只有 0.1W 甚至更低。效率极低。我做过一个项目,客户说「我的音箱 100W」,我说「那是电功率,声功率能有 1W 就不错了」。他当时很惊讶。
| 物理量 | 符号 | 单位 | 性质 | 典型值(日常对话) |
|---|---|---|---|---|
| 声压 | p | Pa | 标量,有正负 | 0.02 ~ 0.2 Pa |
| 声强 | I | W/m² | 矢量,有方向 | 10⁻⁶ ~ 10⁻⁴ W/m² |
| 声功率 | W | W | 标量,不随距离变 | 10⁻⁵ ~ 10⁻³ W |
2.2 分贝(dB)的概念与计算
为什么要用分贝?因为人耳对声音的感知是对数级的。你从 1 倍音量调到 2 倍,感觉变化很大;但从 100 倍调到 101 倍,几乎没感觉。分贝正好用对数来压缩这个巨大的动态范围。
分贝的定义:两个相同物理量之比的对数。公式:
dB = 10 · log₁₀(P₁ / P₂) (功率类)
dB = 20 · log₁₀(V₁ / V₂) (场量类,如声压)
为什么声压用 20 倍?因为声压平方正比于功率,平方在对数里变成 2 倍系数:10·log(p²) = 20·log(p)。
避坑指南:我曾经在写音频算法时,把声压级公式里的 20 误写成 10,结果算出来的 SPL 全偏了 6 dB。排查了一整天才发现。记住:声压是场量,用 20log;声强是功率类,用 10log。
2.2.1 分贝的加法
两个声源同时发声,总声压级不是简单相加。比如两个 60 dB 的声源,总声压级是 63 dB,不是 120 dB。为什么?因为分贝是对数,相加要回到线性域:
L_total = 10 · log₁₀(10^(L₁/10) + 10^(L₂/10))
如果两个声源声压级相同,总声压级 = L + 10·log₁₀(2) ≈ L + 3 dB。
嗯,这里要注意:如果两个声源是相干声(比如同频同相),那总声压级可能达到 L + 6 dB。我在做扬声器阵列时遇到过这种情况——两个单元靠太近,声压叠加不是 3 dB 而是 6 dB,导致局部声场不均匀。
2.3 声压级与声强级
2.3.1 声压级(SPL)
声压级的参考值是听阈 2×10⁻⁵ Pa。公式:
SPL = 20 · log₁₀(p / p_ref) dB
p_ref = 20 μPa
日常对话的 SPL 约 60 dB,摇滚音乐会约 110 dB,喷气发动机 1 米处约 140 dB。超过 120 dB 就可能损伤听力。
重要概念:0 dB SPL 不是没有声音,而是人耳能听到的最小声压。负的 SPL 也是存在的,比如在消声室里,背景噪声可能低至 -5 dB SPL。我第一次进消声室时,那种「绝对的安静」反而让人耳鸣——那是身体在适应。
2.3.2 声强级(SIL)
声强级的参考值是 10⁻¹² W/m²,对应听阈的声强。公式:
SIL = 10 · log₁₀(I / I_ref) dB
I_ref = 10⁻¹² W/m²
在自由场中,SPL 和 SIL 数值上几乎相等(因为特性阻抗接近 400,换算后差异小于 0.1 dB)。但在近场或扩散场中,两者会有偏差。
| 场景 | SPL (dB) | SIL (dB) | 说明 |
|---|---|---|---|
| 听阈 | 0 | 0 | 参考值 |
| 图书馆 | 30-40 | 30-40 | 自由场近似相等 |
| 正常对话 | 60 | 60 | 1 米距离 |
| 繁忙街道 | 80 | 80 | 扩散场偏差 < 1 dB |
| 摇滚音乐会 | 110 | 109 | 近场可能有 1-2 dB 差异 |
2.4 知识体系图:声学量度核心逻辑
下面这张图把本章的核心逻辑串起来了。从声源到接收,三个物理量层层递进,分贝是它们共同的「语言」。
2.5 小结与实用建议
这一章的内容,说白了就是三句话:
- 声压是麦克风直接测的,单位 Pa,用 20log 转成 dB SPL。
- 声强是能量流,单位 W/m²,用 10log 转成 dB SIL。
- 声功率是声源总能量,单位 W,不随距离变。
分贝不是单位,是比值。记住参考值,你就能在任何场景下快速换算。
我的习惯:在项目初期,我会先确认测量环境是自由场还是扩散场。自由场用声压级就够了;扩散场或近场,我建议用声强探头直接测。另外,写代码时把参考值定义成常量,别手写数字——我吃过这个亏。