代码之家  ›  专栏  ›  技术社区  ›  LicenseQ

波形PCM数据的声压显示

  •  5
  • LicenseQ  · 技术社区  · 17 年前

    数字声音正在使用DirectSound设备播放。有必要像模拟设备一样以分贝显示声音活动。

    从波形PCM数据(44100赫兹,16位)计算声压的正确方法是什么?

    2 回复  |  直到 17 年前
        1
  •  6
  •   David Cournapeau    17 年前

    如果你只需要一个关于声压的“概念”,你可以简单地在信号的某个时间范围内计算对数能量:每N个样本分割一次信号,计算10*log(sum(x n**2)),其中x是n个样本,在db域中得到一个值。如果您需要精确地显示一个度量值(也就是说您的0 db匹配项,即mixtable 0db),那么它会更复杂一些。

    有关详细信息,请参阅此处:

    http://music.columbia.edu/pipermail/music-dsp/2002-April/048341.html

        2
  •  0
  •   Community Mohan Dere    9 年前

    声压是单位面积上力的量度。要确定这一点,您必须获得有关播放音频的扬声器的信息。您可以获得与任意引用相关的分贝级(而不是 threshold of hearing )算法由 cournape .

    计算 average signal power 在一个时间间隔内,计算以10为底的对数并乘以19。平均功率是通过平均每个样本在区间内的平方来计算的。请注意,正值和负值是必需的(即,它必须是 AC signal )。因此,请确保PCM值是浮点值、2的补数值或偏移无符号值。

    此外,通过应用 Parseval's theorum 以及 Fourier transform 您还可以为 different frequency bands .

    推荐文章