美文网首页
什么是分贝

什么是分贝

作者: allenyang羊羊 | 来源:发表于2019-05-28 20:42 被阅读0次

    分贝 Decibel

    分贝(dB)是一个对数单位(logarithmic unit), 表示的是两个相同单位物理量的比值

    公式1
    作为分母的那个量通常是一个基准值,分贝描述的就是作为分子的物理量相对于这个基准值的大小。

    分贝经常用来描述声音,如超过50dB的噪声就会影响人的睡眠和休息,但分贝不仅仅用来描述声音,它还被用来描述电子学等其他领域的物理量,如描述信号强度的衰减 、信噪比等等。本文主要介绍分贝如何描述声音的信号的强弱。

    模拟信号下的db测量

    用来描述声音强度的物理量有很多:声压,功率,产生声音信号的电压等,使用不同的物理量来表示声音的强度,其得到的分贝也是不同的。

    dB(dBSPL)

    声音本质上来说是一种波,通过空气传播,传到人耳朵里引发鼓膜的振动。所以,声音的大小,实际就是对这种振动强度的反映。而由于空气的振动会引起大气压强的变换,可以使用压强变化的程度来描述声音的大小,这就是“声压(SPL,Sound Pressure Levels)”概念,其单位是Pa。例如:1米外步枪射击的声音大约是7000Pa;10米外开过汽车大约是0.2Pa。声压和声音大小的关系,可以使用如下公式表示


    公式2

    其中,I是声音的强度;P是声压;ρ是空气阻力,通常在室温下,空气阻力大约是400。

    由于声音大小的变化幅度太大,所以需要变换到log域来比较大小。使用声压作为测量量的分贝就是dBSPL,通常用来表示声音大小的dB多指的就是dBSPL。
    分贝的计算还需要一个选择一个特定的声压值作为“标准值”(0分贝),该值是固定的。有了这个基准值后代入上面的公式:


    公式3

    其中,P是声压测量值;Pref是标准值(0dBSPL)。

    这里选择的声压标准值为2×10−5Pa,20μPa,是人耳在1KHz这个频率下能听到的最小的声音,大致相当于3米外一只蚊子在飞的声音。将标准值代入上式:

    公式4

    数字信号下的db测量

    在数字时代音频分贝的表示是dBFS。dBFS的全称为Decibels Full Scale,全分贝刻度,是数值音频分贝值的表示方法。和前面不一样的时,dBFS的基准并不是最小的或者是中间的某一个值,是最大的那个值!也就是说0dBFS是数字设备能达到的最大值,除了最大值外都是负值。

    db(FS)

    以数字音频的sample为16位有符号(short类型)为例,16位的无符号的最大值为32768,因此dBFS的计算公式:

    公式5
    这样,最小的dBFS为:
    公式6
    也就是说16位有符号音频的动态范围为0 ~ -90dBFS。

    音量减半则db值需要调多少?

    当你把声音大小减半,则db值需要减少6db,为什么呢?
    回顾公式2和公式3可以得出如下结论:
    假设X是音量大小的变化量,Y是db大小的变化量,则X和Y的关系是:


    公式7

    所以,如果声音大小减半,相当于 sample 变为 sample/2,则db值的变化为:20*log(1/2) = -6。下面是对应C代码的实现:

        //根据声音的增减系数返回对应db增减值
        static float  getSoundScaleByDB(float db){ return powf(10.0f,db/20.0f);}
        //根据db增减值返回声音对应增减系数
        static float getDBBySoundSCale(float scale){return 20.0f * log( fmax(1e-6f,scale) );}       
    

    db值随音量大小变化的情况如下图所示:

    db值随音量大小变化情况

    如果对两个相同的声音做加法则db值会提高多少?

    增加3 dB? 或者增加6 dB?
    欢迎你在评论区给出正确答案!

    相关文章

      网友评论

          本文标题:什么是分贝

          本文链接:https://www.haomeiwen.com/subject/xcprtctx.html