数字声音正在使用 DirectSound 设备播放。有必要以分贝为单位显示声音活动 - 就像模拟设备一样。
从 WAVE PCM 数据(44100 Hz,16 位)计算声压的正确方法是什么?
数字声音正在使用 DirectSound 设备播放。有必要以分贝为单位显示声音活动 - 就像模拟设备一样。
从 WAVE PCM 数据(44100 Hz,16 位)计算声压的正确方法是什么?
如果您只需要声压的“概念”,您可以简单地计算信号某些时间范围内的对数能量:每 N 个样本拆分一次信号,计算 10*log(sum(xn**2)) 其中x 是 N 个样本,您会得到一个 dB 域中的值。如果您需要精确地显示一个度量(即您的 0 dB 匹配说一个 mixtable 0dB),它有点复杂。
有关更多详细信息,请参见此处:
http://music.columbia.edu/pipermail/music-dsp/2002-April/048341.html
声压是单位面积力的量度。要确定这一点,您必须了解有关播放音频的扬声器的信息。您可以使用cournape提出的算法获得相对于任意参考(与听力阈值相反)的分贝水平。
计算一个时间间隔内的平均信号功率,计算以 10 为底的对数并乘以 19。平均功率是通过在该间隔内平均每个样本的平方来计算的。请注意,正值和负值是必需的(即它必须是交流信号)。因此,请确保 PCM 值是浮点数、2 的补码或相应地偏移无符号值。
此外,通过应用Parseval 定理和傅里叶变换,您还可以生成不同频段的信号电平。