• 音频(六)——理解 dB


    理解 dB

    声明:该文为本人学习音频所记的笔记,所有内容均摘录自网上

    前言

    我们通常说话都会说大概是多少多少分贝的,比如经常会说,安静的轻声絮语为 20-40dB 左右,正常室内说话为 40-60dB 左右,那么声音的分贝是如何度量的呢?

    根据下表可以对 dB 有一个感性的认识

    声源SPL(dB)声压 (Pa)
    喷气式飞机起飞 50m140200
    痛阈13063.2
    不舒服的阈值12020
    电锯 1m1106.3
    舞厅扬声器 1m1002
    柴油机卡车 10m900.63
    繁忙道路人行路 5m800.2
    吸尘器 1m700.063
    对话 1m600.02
    普通家庭500.0063
    安静的图书馆400.002
    晚上安静的卧室300.00063
    电视演播室背景噪音200.0002
    远处沙沙声100.000063
    听阈00.00002

    基本概念

    SPL

    SPL(Sound Pressure Level) 即声压级。

    声音本质是一种波,通过空气传播到达人耳引起鼓膜震动,所以声音的大小其实就是反映震动的强烈。由于空气的振动会引起大气压强的变化,可以使用压强变化的程度来表示声音的大小,这就是声压 SPL 的概念,单位为 Pa。

    比如 1 米外步枪射击的声音大概是 7000Pa,10 米外开过的汽车大概为 0.2Pa。

    RMS

    RMS(Root mean square) 即均方根

    在物理上经常用某一个数学公式来带入实际物理意义,我们一般用 RMS 来指代有效值

    均方根常见的定义一般用于离散序列,具体为 n 个项的平方和除以 n 再开方,即

    r m s = x 0 2 + x 1 2 + . . . + x n − 1 2 n = ∑ i = 0 n − 1 x i 2 n rms = \sqrt{\frac{x^2_0 + x^2_1 +...+x^2_{n-1}}{n}} = \sqrt{\frac{\sum_{i=0}^{n-1} x^2_i}{n}} rms=nx02+x12+...+xn12 =ni=0n1xi2

    而把它改成连续性方程就是

    r m s = ∫ 0 T x ( t ) 2 d x T rms = \sqrt{\frac{\int_0^T{x(t)^2}dx} {T}} rms=T0Tx(t)2dx

    为了区别于均方根的纯数学概念,我们一般称电流均方根的值为电流有效值, 同理电压的也叫电压有效值

    正弦信号的有效值 (均方根)

    正弦信号峰值和有效值 (均方根) 换算公式

    I r m s = I m a x 2 ≈ 0.707 I m a x I_{rms} = \frac{I_{max}}{\sqrt{2}} ≈ 0.707I_{max} Irms=2 Imax0.707Imax

    • I m a x I_{max} Imax 为峰值
    • I r m s I_{rms} Irms 为有效值 (均方根)

    对数相关计算公式

    • log ⁡ 10 A − log ⁡ 10 B = log ⁡ 10 A B \log_{10}A - \log_{10}B = \log_{10}\frac{A}{B} log10Alog10B=log10BA
    • log ⁡ 10 A + log ⁡ 10 B = log ⁡ 10 ( A ∗ B ) \log_{10}A + \log_{10}B = \log_{10}(A * B) log10A+log10B=log10(AB)
    • log ⁡ 10 A e = e log ⁡ 10 A \log_{10}A^e = e\log_{10}A log10Ae=elog10A

    dB 计算公式

    分贝 (dB) 是一个对数单位(logarithm unit),与常见的千克、秒、米、升的物理单位不同,不能直接拿来描述一个物理量的大小或多少,表示的是两个相同物理单位量的比值。分贝常用来描述声音,如超过 50dB 会影响人的睡眠,但是分贝不仅仅用语描述声音,也可以用来描述电子等其他领域的物理量,如描述无线信号的发射强度或接收强度等。分贝描述的是两个相同单位物理量的比值,分母通常是一个标准的基准值(standard reference value),分贝就是分子所表示的物理量相对于基准值的大小,分贝计算公式如下

    d B = 10 ∗ l o g 10 v a l u e v a l u e r e f dB = 10*log_{10}{\frac{value}{value_{ref}}} dB=10log10valuerefvalue

    • v a l u e value value 需要表示的量
    • v a l u e r e f value_{ref} valueref 参考值 基准值

    在使用分贝表示物理量基准值是非常重要的,基准值用分贝表示的话是 0dB,dB 是无量钢的 (因为是比值)

    在工程中 dB 的计算公式通常有很多的变体,但是主要分为下面两类

    功率类

    两个同类功率量或可与功率类比的量之比值的常用对数乘以 10
    公式如下
    d B = 10 ∗ l o g 10 P 1 P 0 dB = 10*log_{10}{\frac{P_1}{P_0}} dB=10log10P0P1

    • dB 表示信号 P 1 P_1 P1 对信号 P 0 P_0 P0 的分贝值
    • P 1 P_1 P1 P 0 P_0 P0 对应为功率量的单位,如电流平方、电压平方、质点速度平方、声压平方

    -3dB 是一个很特殊的点,如果是按功率比来计算,则功率比为 1/2,也就是原来功率的一半,因此,-3dB 称为 半功率点

    口诀:

    • 加 3 乘 2,加 10 乘 10
    • 减 3 除 2,减 10 除 10

    +3dB 表示功率增加为 2 倍;+10dB 表示功率增加为 10 倍
    -3dB 表示功率减小为 1 2 \frac12 21;-10dB 表示功率减小为 1 10 \frac{1}{10} 101

    计算示例
    • 示例 1 假设 A 的电功率为 20 瓦,B 的电功率为 10 瓦,则
      d B = 10 ∗ l o g 10 P A P B = 10 ∗ l o g 10 2 ≈ 3 dB = 10 * log_{10}\frac{P_A}{P_B} = 10 * log_{10}{2} ≈ 3 dB=10log10PBPA=10log1023
      也就是说 A 的电功率比 B 的电功率大 3dB。即 3dB 对应一倍

    • 示例 2 假设 A 的电功率为 100 瓦,B 的电功率为 10 瓦,则
      d B = 10 ∗ l o g 10 P A P B = 10 ∗ l o g 10 10 = 10 dB = 10 * log_{10}\frac{P_A}{P_B} = 10 * log_{10}{10} = 10 dB=10log10PBPA=10log1010=10
      也就是说 A 的电功率比 B 的电功率大 10dB。即 10dB 对应 10 倍

    • 示例 3 假设 A 的电功率为 10 瓦,B 的电功率为 20 瓦,则
      d B = 10 ∗ l o g 10 P A P B = 10 ∗ l o g 10 1 2 = 10 ∗ l o g 10 2 − 1 = − 10 ∗ l o g 10 2 ≈ − 3 dB = 10 * log_{10}\frac{P_A}{P_B} = 10 * log_{10}{\frac 12} = 10 * log_{10}{2^{-1}} = -10 * log_{10}2≈ -3 dB=10log10PBPA=10log1021=10log1021=10log1023
      也就是说 A 的电功率比 B 的电功率小 3dB。即 -3dB 对应 1 2 \frac{1}{2} 21

    • 示例 4 假设 A 的电功率为 10 瓦,B 的电功率为 100 瓦,则
      d B = 10 ∗ l o g 10 P A P B = 10 ∗ l o g 10 1 10 = − 10 dB = 10 * log_{10}\frac{P_A}{P_B} = 10 * log_{10}{\frac{1}{10}} = -10 dB=10log10PBPA=10log10101=10
      也就是说 A 的电功率比 B 的电功率小 10dB。即 -10dB 对应 1 10 \frac{1}{10} 101

    可见 dB 是个相对值,它的使命就是把一个很大或者很小的数,用一个简短的形式表达出来

    功率变化dB 表示
    增大到 100000000 倍(8 个 0)80dB
    减小到 0.00000001 倍-80dB

    这可以极大的方便我们计算和描述

    电压类

    两个同类电压量或可与电压类比的量之比值的常用对数乘以 20
    公式如下
    d B = 20 ∗ l o g 10 U 1 U 0 dB = 20 * log_{10}{\frac{U_1}{U_0}} dB=20log10U0U1

    电压类的计算公式其实可从功率类的公式推导而出,推导过程如下

    功率 P = U I P = UI P=UI I = U R I = \frac UR I=RU,所以 P = U 2 R P = \frac{U^2}{R} P=RU2,根据功率类的计算公式有如下推导

    d B = 10 ∗ l o g 10 P 1 P 0 = 10 ∗ l o g 10 ( U 1 2 R ) ( U 0 2 R ) = 10 ∗ l o g 10 U 1 2 U 0 2 = 20 ∗ l o g 10 U 1 U 0 dB = 10*log_{10}{\frac{P_1}{P_0}} = 10*log_{10}{\frac{(\frac{U^2_1}{R})}{(\frac{U^2_0}{R})}} = 10*log_{10}{\frac{U_1^2}{U_0^2}} = 20 * log_{10}{\frac{U_1}{U_0}} dB=10log10P0P1=10log10(RU02)(RU12)=10log10U02U12=20log10U0U1

    • dB 表示信号 U 1 U_1 U1 对信号 U 0 U_0 U0 的分贝值
    • U 1 U_1 U1 U 0 U_0 U0 对应为电压类的单位,如电流、电压、质点速度、声压
    计算示例
    • 示例 1 假设 A 的电压为 20V,B 的电压为 10V,则
      d B = 20 ∗ l o g 10 U A U B = 20 ∗ l o g 10 2 ≈ 6 dB = 20 * log_{10}\frac{U_A}{U_B} = 20 * log_{10}{2} ≈ 6 dB=20log10UBUA=20log1026

    描述声音的分贝

    描述声音的物理单位有很多:声压、功率、产生声音信号的电压等,用不同的物理量表示声音所对应的分贝大小也不同

    dB(dBSPL)

    声学领域,dB 经常用作为表征声压级 SPL(Sound Pressure Level)的大小,前面说过声音本质是一种波,声音的传播会引起压强的变化,使用声压作为作为测量量的分贝单位为 dBSPL,通常所说的声音大小 dB 即为 dBSPL

    声音和声压的大小关系如下:
    I = P 2 p I = \frac{P^2}{p} I=pP2

    • I 声音的强度
    • P 声压
    • p 空气阻力,通常室温下为 400

    分贝的计算还需要选择一个基准值 (0dB),该值是固定的,有了该值之后,带入分贝的计算公式

    I ( d B ) = 10 ∗ l o g 10 P 2 p P r e f 2 p = 10 ∗ l o g 10 P 2 P r e f 2 = 20 ∗ l o g 10 P P r e f I(dB) = 10 * log_{10} \frac{\frac{P^2}{p}}{\frac{P^2_{ref}}{p}} = 10 * log_{10}\frac{P^2}{P^2_{ref}} = 20 * log_{10}\frac{P}{P_{ref}} I(dB)=10log10pPref2pP2=10log10Pref2P2=20log10PrefP

    • P 声压测量值
    • P r e f P_{ref} Pref 标准值 (0dBSPL)

    这里选择的声压标准值为 2 × 1 0 − 5 P a 2 × 10^{−5}Pa 2×105Pa,即 20 μPa 是人耳在 1KHz 这个频率下能听到的最小的声音,大致相当于 3 米外一只蚊子在飞的声音

    将标准值带入上面的公式中

    I ( d B S P L ) = 20 ∗ l o g 10 P 2 ∗ 1 0 − 5 I(dBSPL) = 20 * log_{10}\frac{P}{2 * 10^{-5}} I(dBSPL)=20log102105P

    • P 声压测量值

    dBA

    dBSPL(A) 简称 dBA,dBA 是指对声音的 A 计权。通常对 A 计权的结果,用单位 dBA 或 dB(A) 来表示

    人耳可听的声音有一定的频率范围 (20-20KHz) 和一定的声压级范围 (0-130dB),因为人耳对不同的频率,敏感度不一样,即使声压级的量级一样,听起来也不一样,所以,需要对真正听到的声压级通过增益因子进行修正,而用得最多的则是 A 计权。当然还有 B,C,D 计权。A 计权对应的是 40 方的等响曲线。而 B,C 计权则对应 70 和 100 方的等响曲线。

    对同一信号采用不同的计权方式,最后得到的声压级是不一样的,dBA 在 NVH 领域较为常用

    dBm

    声音不仅仅可以通过振动传播,还可以通过电信号传播。dBm 是使用产生声音信号的功率当作被测物理量,选择 1mW(毫瓦) 当作基准值,所以其公式为
    d B = 10 ∗ l o g 10 P P r e f = 10 ∗ l o g 10 P 1 ∗ 1 0 − 3 dB = 10*log_{10}{\frac{P}{P_{ref}}} = 10*log_{10}{\frac{P}{1 * 10^{-3}}} dB=10log10PrefP=10log101103P

    • P 功率测量值

    dBw

    dBw 中的基准值把 dBm 中的 1mW 改成 1W。
    d B = 10 ∗ l o g 10 P P r e f = 10 ∗ l o g 10 P 1 dB = 10*log_{10}{\frac{P}{P_{ref}}} = 10*log_{10}{\frac{P}{1}} dB=10log10PrefP=10log101P

    • P 功率测量值

    dBu

    使用电压作为测量量,计算声音的分贝值,得到的分贝单位为 dBu。

    功率 P 可以由电压 V 和电阻 R 计算得到
    P = U 2 R P = \frac{U^2}{R} P=RU2
    根据上面的电压类计算方法
    d B = 20 ∗ l o g 10 U 1 U 0 dB = 20 * log_{10}{\frac{U_1}{U_0}} dB=20log10U0U1

    • U 1 U_1 U1 U 0 U_0 U0 对应为电压类的单位,如电流、电压、质点速度、声压

    19 世纪 30 年代,音频设备的输入电阻都为 600Ω,即 R = 600,在 dBm 中,1mW 作为基准值,那么在 R = 600Ω 时可以得到测试的电压 U = P ∗ R = 1 ∗ 1 0 − 3 ∗ 600 = 0.6 = 0.7746 V U = \sqrt{P * R} = \sqrt{1 * 10^{-3} * 600} = \sqrt{0.6} = 0.7746V U=PR =1103600 =0.6 =0.7746V

    所以 dBu 是以电压为测量量计算声音分贝值,选择的基准电压为 0.775V,其计算公式为:

    d B = 20 ∗ l o g 10 U 0.775 dB = 20 * log_{10}{\frac{U}{0.775}} dB=20log100.775U

    • U 电压测量值

    dBV

    上世纪实际音频设备的输入阻抗都是 600 欧姆,是固定不变的。但是到了现代,就有了更高阻抗的设备,例如 1000 欧姆,这样再选择 0.775 作为电压的基准值,显然是不合理的。所以,就有了一个新基准值 1V。本质上 dBu 和 dBV 是没有区别的,都是选择电压作为被测单位,只是选择的基准值不同罢了。dBV 仍然是以电压作为被测量,计算声音的分贝值,选择 1V 作为基准值,计算公式如下:
    d B = 20 ∗ l o g 10 U 1 dB = 20 * log_{10}{\frac{U}{1}} dB=20log101U

    • U 电压测量值

    dBFS

    dBSPL、dBA、dBm、dBw、dBu、dBV 中被测量量都是模拟量,在数字时代更多的音频分贝表示的是 dBFS。dBFS 的全称是 decibel Full Scale,全分贝刻度,是数字音频分贝值表示方法。dBFS 的基准值是最大的那个值。也就是说 0dBFS 是数字设备能达到的最大值,其他的值都是负值。

    以数字音频的采样分辨率 16bits 为例,最大能表示的值为 65535,因此 dBFS 的计算公式为:
    d B = 20 ∗ l o g 10 s a m p l e 65535 dB = 20 * log_{10}{\frac{sample}{65535}} dB=20log1065535sample
    这样,最小的 d B F S = 20 ∗ l o g 10 1 65535 = − 96 d B F S dBFS = 20 * log_{10}{\frac{1}{65535}} = -96dBFS dBFS=20log10655351=96dBFS。也就是说 16 位无符号音频的动态范围是 0~-96dBFS

    dBFS 和 dBu 之间的转换

    dBu 是度量模拟信号的,而 dBFS 是度量数字信号的,并且 dBFS 不会用于度量模拟信号,所以没有在 dBu 和 dBFS 之间没有统一的转换公式,依赖于具体的数字设备。在 dBu 和 dBFS 转换时,需要规定一个峰值电压,该电压下产生的音频信号经过 AD 转换后得到的 sample 为 0dBFS。例如,+18dBu 对应于 0dBFS,在该条件下 求 xdBu 对应于 ydBFS,那么就有 y = x − 18

    总结

    • dBSPL,通常所说的 dB,使用声压作为被测量,选择 20μPa 作为基准值。

    • dBA,dBSPL 使用 A-weight filter 滤波。

    • dBm,使用功率作为被测量,选择 1mW 作为基准值。

    • dBu,使用电压作为被测量,选择 0.775V 作为基准值。

    • dBV,和 dBu 一样,使用电压作为被测量,选择 1V 作为基准值。

    • dBFS,和上面的量都不相同,上面的量都是测量模拟值的,dBFS 是测量数字音频的,其选择的基准值为 sample 的最大值为 0dBFS,其他的值都为负值。

    • dBFS 和模拟量之间的转换,例如 dBu,需要规定一个基础的对应关系。例如 + 18dBu 对应于 0dBFS,则 ydBFS = x - 18,两者时钟相差 18

    常见问题

    • 人耳朵能够正常听到的声音为 50-70 分贝,但是使用公式 d B = 20 ∗ l o g 10 s a m p l e 65535 dB = 20 * log_{10}{\frac{sample}{65535}} dB=20log1065535sample 计算音频文件的分贝却是负值
      • 人耳听见的分贝单位是 dBSPL,而数字音频的单位是 dBFS,一个是模拟量,一个是数字量,二者是无法比较的。

    参考链接

    https://blog.csdn.net/landing_guy_/article/details/121955134

    https://andy-fighting.blog.csdn.net/article/details/117568164

    https://blog.csdn.net/weixin_43847179/article/details/113623618

    https://zhuanlan.zhihu.com/p/22821588

    https://baijiahao.baidu.com/s?id=1722028647203360593&wfr=spider&for=pc

  • 相关阅读:
    Pytorch之LeNet-5图像分类
    什么是反向代理,反向代理是如何工作的?
    【机器学习】21天挑战赛学习笔记(一)
    HarmonyOS NEXT应用开发之MpChart图表实现案例
    区块链架构-fabric集群版安装(centos7版本)
    二叉树层级遍历(深度优先、广度优先算法)
    【LC简单】704. 二分查找
    LENOVO联想笔记本小新 Pro-14 2021AMD处理器ACH版(82MS)原厂Win10系统
    MySQL之函数
    Mysql高阶自定义排序
  • 原文地址:https://blog.csdn.net/tyustli/article/details/128136447