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

电器工程 分贝
2022-01-23 07:37:53

我正在处理此页面上的示例: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。我哪里错了?

4个回答

你用过132767这是峰值信号电平。因此,峰峰值信号电平为 2 LSBp-p。但是你可以有一个更小的信号: -

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

您为对称信号制作比例,但这个概念完全是任意的。每个位增加 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。

你几乎自己找到了!考虑无符号值而不是有符号值,你就完美了。在公式

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

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

量化噪声最好建模为锯齿波,其 RMS 值为 (IIRC)1/12峰值。与具有相同峰值幅度的正弦波相比,这就是额外的 6 dB。