音量的计算

来源:互联网 发布:scratch编程教程案例 编辑:程序博客网 时间:2024/05/16 02:06
音量又称响度、音强,是指人耳对所听到的声音大小强弱的主观感受,其客观评价尺度是声音的振幅大小。这种感受源自物体振动时所产生的压力,即声压。物体振动通过不同的介质,将其振动能量传导开去。人们为了对声音的感受量化成可以监测的指标,就把声压分成“级”——声压级,以便能客观的表示声音的强弱,其单位称为“分贝”(dB)。

音量的计算

1,声音数据data,长度为len

方法1,音量为声音的最大值减去最小值的一半,类似均值。
function vol1 = calcVolume1(data,len)
vol1 =0.5 * ( max(data) - min(data));

方法2, 类似方差
function vol2 = calcVolume2(data, len)
sum = sum(data) / len ;
sqr = sum(data.*data) / len;
vol2 = sqrt( sqr - sum * sum);

2 声强,

I=(P^2)/(ρv) (此时P为有效值,若P为幅值,则 I=(P^2)/(2ρv) )   其中ρ-介质密度(空气的),v-声速

3 声压级


SPL=20LOG(10)[p(e)/p(ref)]   其单位是分贝。   在空气中参考声压p(ref)一般取为2*10E-5帕,这个数值是正常人耳对1千赫声音刚刚能觉察其存在的声压值,也就是1千赫声音的可听阈声压。一般讲,低于这一声压值,人耳就再也不能觉察出这个声音的存在了。显然该可听阈声压的声压级即为零分贝。
p(e) = I * ρv
=(P^2) = 音量的平方。

原创粉丝点击