Я работаю с примером на этой странице: http://chimera.labs.oreilly.com/books/1234000001552/ch03.html
Я полностью понимаю, почему максимальный уровень аудиосистемы будет равен 0, потому что лог 1 равен 0.
Тем не менее, я смущен по поводу минимума. Определение дБФС является
dBFS = 20 * log( [sample level] / [max level] )
В 16-битной системе есть 2 ^ 16 = 65536 значений. Таким образом, это означает значения от -32768 до +32767. За исключением 0, скажем, минимальное значение равно 1. Таким образом, включение этого в формулу дает:
dBFS = 20 * log( 1 / 32767 ) = -90.3
Но в книге говорится, что она должна быть -96dBFS. Куда я иду не так?
Вы делаете шкалу для симметричных сигналов, но это понятие совершенно произвольно. Каждый бит добавляет SNR 6 дБ (более конкретно, шум от сигнала к квантованию), потому что он удваивает масштаб, а коэффициент 2 равен 6 дБ. Таким образом, 16 бит - это 16 x 6 дБ = 96 дБ.
Более точные цифры: 20 log (2) = 6,02, следовательно, 16 x 6,02 дБ = 96,33 дБ.
источник
Вы почти нашли это сами! Думайте с точки зрения значения без знака вместо знака, и вы совершенны. В формуле
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 вы сравниваете мощность сигнала полной шкалы. (обычно синусоиды) с мощностью шума квантования. Мощность рассчитывается на основе среднеквадратичного значения сигнала.
Шум квантования лучше всего моделируется как пилообразная волна, среднеквадратичное значение которой (IIRC)1 /12--√ пиковое значение. По сравнению с синусоидой той же пиковой амплитуды это дает вам дополнительные 6 дБ.
источник