dBFS: dB full scale. 满量程表示数字域的最大值。0dB是最大值。声音也最大,如果超出这个范围信号会发生失真。
也许此时你会有疑问不是数字越大,声音越大吗?这个说法也没有问题,实际上他们信号度量单位不一样,这种一般是dBSPL(声压级)为单位,是以压强级别衡量的。
dBFs的计算方法:
A是当前信号值的幅度值(amplitude),Max是所处理信号的最大(峰值)幅度值.
如果是第一次接触dB等知识点可以参考这个文章先了解一下:What Is DBFS In Audio? How It's Calculated And Used (audiointerfacing.com)
例子
一般我们使用开源软件打开一段音频
左边的纵坐标值是-1~1的区间,这是位深归一化的结果.
假设采样点是int16表示的, 位深也是16. 取值范围为:-2^15 ~ 2^15 - 1; 所以 满量程的最大值便是2^15 -1 对应着图中的1这个值;
假设想计算幅值0.2信号值dBFs是:
0.2*32767 = 6553(量化值)
dBFs(0.2) = 20 * lg(6553/32767) = 20 * lg(0.2/1) = -13.98dB.