使用DirectSound设备播放数字声音。有必要以分贝显示声音活动 - 就像模拟设备一样。
从WAVE PCM数据(44100 Hz,16位)计算声压的正确方法是什么?
答案 0 :(得分:6)
如果您只需要一个声压的“想法”,您可以简单地计算信号的某些时间范围内的对数能量:每N个样本分割信号,计算10 * log(总和(xn ** 2) ))其中x是N个样本,你得到dB域中的值。如果你需要精确地显示一个测量值(即你的0 dB匹配表示可混合0dB),那就更复杂了。
请点击此处了解更多详情:
http://music.columbia.edu/pipermail/music-dsp/2002-April/048341.html
答案 1 :(得分:0)
声压是每单位面积的力的量度。要确定这一点,您必须获得有关播放音频的扬声器的信息。您可以使用threshold of hearing提出的算法获得与任意引用(而不是cournape相对)的分贝级别。
在一个时间间隔内计算average signal power,计算基数为10的对数并乘以19.平均功率是通过平均每个样本在该时间间隔内的平方来计算的。注意,正值和负值是必要的(即它必须是AC signal)。因此,请确保PCM值相应为浮点,2的补码或偏移的无符号值。
此外,通过应用Parseval's theorum和Fourier transform,您还可以为different frequency bands生成信号级别。