¿Por qué los sistemas de 16 bits tienen un dBFS mínimo de -96?

8

Estoy trabajando en el ejemplo de esta página: http://chimera.labs.oreilly.com/books/1234000001552/ch03.html

Entiendo totalmente por qué el nivel máximo de un sistema de audio sería 0 porque el registro de 1 es 0.

Sin embargo, estoy confundido sobre el mínimo. La definición de dBFS es

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

En un sistema de 16 bits hay 2 ^ 16 = 65536 valores. Entonces esto significa valores de -32768 a +32767. Excluyendo 0, digamos que el valor mínimo es 1. Así que al conectar esto a la fórmula se obtiene:

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

Pero el libro dice que debería ser -96dBFS. ¿A dónde me estoy yendo mal?

Apiario
fuente

Respuestas:

8

Has usado 132767y este es el nivel de señal pico . El nivel de señal pico a pico es, por lo tanto, 2 LSBp-p. Pero puede tener una señal más pequeña:

La señal más pequeña es la mitad de esto (es decir, 1 LSBp-p), por lo tanto, otros 6dB lo llevan a -96dBFS

Andy alias
fuente
1
¡Ajá! Creo que lo he entendido. Entonces, la onda máxima tiene una pp de -32768 a 32767, es decir (65536), y la mínima tiene un pico a pico de, digamos 0 a 1, (es decir, 1), lo que me da -96dB. (Originalmente estaba pensando que la señal mínima fue de -1 a 1.) ¿Crees que mi razonamiento (básico) aquí está bien?
Aptary
@Aptary suena como si lo tuvieras: ¡la simetría te engañó!
Andy alias
¡Brill, gracias, definitivamente te dará un voto positivo cuando tenga suficiente representante!
Aptary
3

Usted hace la escala para señales simétricas, pero esa noción es totalmente arbitraria. Cada bit agrega 6 dB SNR (más específicamente ruido de señal a cuantificación), porque duplica la escala, y un factor 2 es 6 dB. Entonces 16 bits es 16 x 6 dB = 96 dB.
Números más exactos: 20 log (2) = 6.02, por lo tanto, 16 x 6.02 dB = 96.33 dB.

radagast
fuente
3

¡Casi lo has encontrado tú mismo! Piensa en términos de valor sin signo en lugar de firmado, y eres perfecto. En la formula

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

Considerar

[sample level]=1y [max level]=65536que te llevará a:

dBFS = 20 * log(1/65536)

dBFS = 20 * -4.816

dBFS = -96.3

RawBean
fuente
1

Al calcular la SNR, está comparando la potencia de la señal a gran escala. (generalmente una onda sinusoidal) con la potencia de ruido de cuantificación. La potencia se calcula en función del valor RMS de la forma de onda.

El ruido de cuantización se modela mejor como una onda de diente de sierra, cuyo valor RMS es (IIRC) 1/ /12El valor pico. En comparación con una onda sinusoidal de la misma amplitud máxima, esto es lo que le proporciona los 6 dB adicionales.

Dave Tweed
fuente