为什么16位系统的最小dBFS为-96?


8

我正在研究此页面上的示例:http : //chimera.labs.oreilly.com/books/1234000001552/ch03.html

我完全理解为什么音频系统的最大级别将为0,因为对数1是0。

但是,我对最低要求感到困惑。dBFS的定义是

dBFS = 20 * log( [sample level] / [max level] )

在16位系统中,有2 ^ 16 = 65536个值。因此,这意味着值从-32768到+32767。排除0,假设最小值为1。因此,将其插入公式可得出:

dBFS = 20 * log( 1 / 32767 ) = -90.3

但是书说它应该是-96dBFS。我要去哪里错了?

Answers:


8

您已使用,这是峰值信号电平。因此,峰到峰信号电平为2 LSBp-p。但是您可以发出较小的信号:-132767

最小的信号是该信号的一半(即1 LSBp-p),因此另外的6dB会使您降至-96dBFS


1
啊哈!我想我明白了。因此,最大波的pp值为-32768至32767,即(65536),而最小波的峰峰值为0至1,即1,即给我-96dB。(本来我原本以为最小信号从-1变为1。)您认为我的(基本)推理还可以吗?
2013年

@Aptary听起来像您已经掌握了-对称性欺骗了您!
安迪(aka Andy)

布里尔(Brill),谢谢,如果我得到足够的代表,国防部将给您好评!
2013年

3

您可以为对称信号定标,但是这个概念完全是任意的。每个位会增加6 dB SNR(更具体地说是信号量化噪声),因为它会使标度加倍,因子2为6 dB。因此16位是16 x 6 dB = 96 dB。
更精确的数字:20 log(2)= 6.02,因此16 x 6.02 dB = 96.33 dB。


3

您几乎自己找到了它!用无符号值而不是有符号值来思考,您就是完美的。在公式

dBFS = 20 * log( [sample level] / [max level] )

考虑

[sample level]=1[max level]=65536这将导致您:

dBFS = 20 * log(1/65536)

dBFS = 20 * -4.816

dBFS = -96.3


1

在计算SNR时,您正在将满量程信号功率(通常是正弦波)与量化噪声功率进行比较。根据波形的RMS值计算功率。

最好将量化噪声建模为锯齿波,其RMS值为(IIRC) 1/12峰值。与相同峰值幅度的正弦波相比,这可以为您提供额外的6 dB。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.