+50dB/ | 您所在的位置:网站首页 › 声音db是什么意思 › +50dB/ |
+50dB/-50dB 是什么概念. 在阅读ffmpeg 代码时遇到的一个概念. 声音降低-50dB 为静音. 对于S16格式的音频, 音量最大值是7fff = 32767 -50dB 是什么概念呢? 它是一个比值 先把分贝化成贝尔, 声音要除以20, 故 -50dB/20 = -2.5贝尔. 这个比值是以10为底,贝尔为幂, 故数值为10的-2.5次方,为1/316=0.003 同样,+50dB就是10^2.5=316 有一个口算方法, 对于功率, 3db就是一倍, 对于电压,6db算一倍, 声压也是6db算一倍. 它们分别对应着10log(10)N 和 20log(10)N 因为10的0.3次幂为一倍. 50dB=48dB+2dB = (6*8)dB+2dB > 2倍的8次幂 = 256倍. 就是说48db 是 256倍 54db 是 512倍 50db 又比48多了2db 实际是316倍 ffmpeg中计算倍数实际上是采用了2的N次幂来计算的. 来一段代码吧,留个纪念. 将'dB'换算成数值就是计算10的多少次幂. 下面是相关代码 d_out = ff_exp10(db_in / 20); //10的n次幂由下面函数定义 static av_always_inline double ff_exp10(double x) { return exp2(M_LOG2_10 * x); // 2的n次幂为库函数 } #define M_LOG2_10 3.32192809488736234787 /* log_2 10 */10的多少次幂是用2的多少次幂来计算的 2的3.32次方就是10 分贝的神秘性解除了, 我们还是考虑通常意义下10log 功率的计算方法. 记住下面几个常数. 0分贝就是它自己. 10的0次方=1 1分贝: 10^0.1 = 1.26 //1分贝多出的0.26比3分之1小,比4分之一(0.25)略大. 2分贝 10^0.2 = 1.58 //2分贝多出0.58比3分之2小,比二分之一(0.5)略大 3分贝 10^0.3 = 2.00 //3 分贝就会多出1倍了. 原来分贝就是考察我指数运算来了! |
CopyRight 2018-2019 实验室设备网 版权所有 |