从音频信号计算以 dB 和 dBA 为单位的幅度

信息处理 fft 声音的 嵌入式系统
2022-02-12 05:39:10

进步

我是一名产品开发人员,对 DSP 的内部工作非常了解。我已经捕获了一个音频信号 - 一次 1024 个样本。我想知道的是波的幅度,以 dB 和 dBA 为单位。

D b

对于 dB,我创建了一个 10 深的循环缓冲区,每 100 毫秒记录一次数据,并平均过去 10 次读数的最大读数。因此,我的输出看起来不那么跳跃,并且更具人类可读性。为了获得幅度,我只需记录信号的最大值和最小值并取其差。

Q1:这是从样本中获取 dB 幅度的正确方法(或有效方法)吗?另一种方法是计算出运行平均值,然后进行平均 RMS 以获取信号中的能量。但我不认为这真的对应于最大音频声级?

分贝

对于 dBA,我使用平顶窗口对 512 个捕获的样本进行了窗口化,并对数据进行了 FFT。到目前为止一切看起来都很好。(我的资源有限,只能将 512 个样本放入我的 FFT)。

以 44.1 kHz 采样标准音频,有 512 个样本,我最终得到 256 个 86 Hz、172 Hz 等的可用频率区间……最高 22 kHz。到目前为止,任何更正,请跳入。

Q2:我如何解释这个 bin?代表从 0 Hz 到 80 Hz 的频带?还是 80 赫兹?由于下一步是将 A 加权应用于频率测量,因此我需要知道要使用的频率。

A 加权:我根据 bin 的值在代码中生成了一个 A 加权表。在这种情况下,86、172 的 256 个值 ... 最高 22 kHz。显然,重点是增加权重以补偿人类的频率响应——将 PSL 转换为 phons。

令我困惑的是,我看到一些公式表明,dBA 测量是通过从合适的低频(即 33.25 Hz)开始对每个八度音阶仅进行一次测量来完成的。然后,您创建一个包含 10 个条目的表,最高频率为 16 kHz,并将 A-Weighting 应用于这些条目。你基本上做一个反对数,平均,对数 10 个值,鲍勃是你的叔叔。

Q3:我有 256 个 bin,我想充分利用它们以提高准确性。上述方法表明,每个整个八度音程都包含等量的能量用于平均过程。在此基础上,如果我要对所有 256 个 bin 进行平均,结果将被严重(并且错误地)加权到我的采样集中的最高八度音阶,因为它包含一半的 bin!哪种方法是正确的?尽管我们喜欢以对数尺度查看频率,但能量不是线性分布在频域中是否有某种神奇的原因。

接受的答案和其他详细信息

我接受了@ZR Han 的回答,因为它简洁地提供了解决所述问题所需的信息,巧妙地回避了我最初在问题中做出的错误假设中的误导。

使用提供的公式,时域方法可以完美运行,以 dB 为单位得出答案。我想补充一点,二阶 IIR 级联 3 次,系数取自 jenshee.dk/signalprocessing/aweighting.pdf 也可以完美运行。我已经使用不同频率的信号发生器(我知道的老派)对此进行了测试,并且该比率在 1 kHz 时恰好为 1,正如 A 加权所预期的那样。问题解决了。

2个回答
  1. 不,您应该计算 RMS 声压。声压级的定义

Lp=20lgppref

在哪里p是均方根声压和pref是参考声压。对于单色声波,prms=22pmax.

  1. 至于分贝,您不必去频谱,只需使用 A 加权数字滤波器,然后返回第一步。

Q1:这是从样本中获取 dB 幅度的正确方法(或有效方法)吗?

假设您要构建声压级计,答案将是响亮的“不”。正确的方法是按照 IEC 标准 IEC61672 中的定义,构建具有适当时间管理的运行能量检测器。https://webstore.iec.ch/publication/5708这实际上很简单。到目前为止,最困难的部分是麦克风的校准。正如 ZR Han 在他们的回答中已经指出的那样:通过使用参考压力,您可以获得以 dB (dBSPL) 为单位的声压级20μPa,但这意味着您还必须将输入信号从伏特或“数字”转换为帕斯卡,这非常依赖于设备和设置。

Q2:我如何解释这个 bin?

这是一个复杂的问题。每个数字箱包含来自所有模拟频率的能量,除了其他数字箱的中心频率,确切的关系不是微不足道的。在您的情况下,您应该忽略这一点,因为首先没有理由进入频域。

Q3:我有 256 个垃圾箱,...

同样,这是一个非常复杂的问题,我不会回答,因为它对于您想要做的事情完全没有必要。

构建声级计相对简单

  1. 校准您的输入信号以表示以 Pa(帕斯卡)为单位的实际声压
  2. 应用时域加权过滤器(A、C、Z、无)
  3. 平方信号
  4. 应用具有适当时间常数的指数(一阶低通)平均
  5. 使用转换为 dBpref=20μPa

步骤 1 是迄今为止最复杂的。