¿Convertidores de 16 bits o de 24 bits?

Quiero construir algunos efectos DSP, por ejemplo, en el procesador STM32F4, con una frecuencia de 96 o 192 KHz. ¿Son suficientes los convertidores de 16 bits (ADC y DAC) para ese tipo de operación? ¿Puedo escuchar una diferencia al elegir 16 bits o 24 bits?

¿Cuál es la frecuencia máxima de muestreo de sus ADC/DAC? Eso es lo que afecta las frecuencias que desea muestrear. Puede probar si escuchará una diferencia entre 16 bits y 24 bits en Windows (haga clic con el botón derecho en el icono de sonido en la caja de herramientas -> Dispositivos de reproducción -> elija el que está usando -> Propiedades -> Avanzado y cambie entre 24 bits y 16 bits).
A qué tipo de señales estás aplicando efectos y, en última instancia, qué haces con esas señales.
Quiero crear una plataforma que me permita crear muchos efectos diferentes. Quiero usar con guitarra. Al principio, quiero hacer una envolvente ADSR simple, pero a continuación, tal vez algo como delay o chorus.
Las guitarras tienen una respuesta de frecuencia y un rango dinámico mucho más bajos que otras fuentes de audio. 16 bits estaría bien.
Podrías echarle un vistazo al búho de Hoxton . Si bien no estaba especialmente enamorado de los sonidos de demostración que tienen en su sitio, tienen esquemas y una base de código en github . Su hardware incluye un procesador ARM, un códec WM8731 , algunos relojes de cristal. etc.

Respuestas (6)

Depende de a quien le preguntes. La mayoría de los humanos no pueden escuchar más allá de 20 kHz y 16 bits, por lo que 96 o 192 kHz deberían ser suficientes.

En cuanto a escuchar una diferencia entre los convertidores de 16 y 24 bits, depende de su DSP. El beneficio clave de los convertidores de 24 bits es que le brinda toneladas de margen adicional (rango dinámico) para que pueda realizar muchas operaciones matemáticas y no agregar un ruido de cuantificación notable.

En mi experiencia, no puedo notar la diferencia entre los convertidores de 16 y 24 bits. Algunas personas creen que pueden. Si yo fuera usted, elegiría los convertidores de 24 bits, por lo que es una cosa menos de la que preocuparse y puede concentrarse en su código DSP.

Hay mucha información mala y parodia de audio disponible sobre este tema, pero si está haciendo un canal de audio digital, las frecuencias de muestreo de 96 kHz y 192 kHz son una tontería. La audición humana se extiende a 20kHz. Para satisfacer a Nyquist a 20 kHz, necesitamos una frecuencia de muestreo superior a 40 kHz. Los CD son de 44,1 kHz y 48 kHz es otra frecuencia de muestreo común.

Ahora bien, recordemos que el audio digital es una señal discreta, no continua. Esto significa que tiene un valor en cada tiempo de muestra y no está definido en todos los demás tiempos. Para una señal de banda limitada, muestreada en o más que Nyquist, solo hay una señal que pasa a través de cada una de estas muestras discretas. Cualquier otra señal que pase por todos los puntos de muestra no puede satisfacer a Nyquist. La única razón para muestrear a 96kHz o 192kHz para un solo canal es si está sobremuestreando con un ADC de baja profundidad de bits. Eso también es una tontería, e iremos allí a continuación.

Acabamos de discutir cómo una serie de muestras discretas coincide exactamente con una señal. Esto es independiente de la profundidad de bits. Eso no significa que la profundidad de bits no importe. La conversión a digital introduce ruido de cuantificación. La cuantización es ruido introducido en la señal digital al "redondearla" al valor digital más cercano, como se muestra en esta imagen robada descaradamente de Wikipedia .

ingrese la descripción de la imagen aquí

El ruido de cuantificación está directamente relacionado con la profundidad de bits. Debería ser bastante obvio cuanto mayor sea la resolución (valores a redondear), menor será el ruido de cuantificación. Una profundidad de bits más alta hace que la resolución de escala completa sea más alta. Una resolución más alta reduce el ruido de cuantificación al tener más valores disponibles para igualar de cerca el valor de la señal en una muestra. Reducir el ruido de cuantificación reduce el ruido de fondo y aumenta la relación señal-ruido (SNR).

¿Puedes oír la diferencia entre la cuantificación de 16 y 24 bits? Apuesto lo que sea que no puedas. Es para una guitarra, y las guitarras no son conocidas por su rango dinámico. ¿Una sinfonía profesional? Tal vez, sin vacilación. El piso de ruido de 16 bits está lo suficientemente abajo como para que no sea perceptible, pero la diferencia será medible.

En resumen, mi voto va por una frecuencia de muestreo de 48 kHz y una resolución de 16 bits. Recomiendo encarecidamente a cualquier persona interesada en este tema que vea este video .

Ese video fue increíble. Esto va a abrir algunas preguntas de mí.
+1 por la diferencia entre medible y discernible; a veces, la diferencia es demasiado pequeña para ser escuchada.
En condiciones ideales, el muestreo de 16 bits a 44100 Hz será adecuado. Sin embargo, el uso de una mayor profundidad de bits y una tasa de muestreo puede simplificar algunos aspectos del diseño del sistema. Por ejemplo, obtener una SNR de 96dB de un ADC de 16 bits requeriría que la ganancia de entrada se configure perfectamente. Si un dispositivo tiene que aceptar la entrada de una variedad de dispositivos cuyo nivel máximo puede variar en un factor de 100, un ADC de 16 bits de ganancia fija solo sería bueno para aproximadamente 56 dB cuando se usa en una señal de bajo nivel. Por el contrario, un ADC de audio típico de 24 bits podría administrar una SNR útil y constante en todo su rango dinámico.
@supercat Buen punto, pero 96dB SNR para una caja de efectos de guitarra es francamente ridículo.
@MattYoung: Hay dos formas diferentes de SNR: la relación entre el nivel de señal y el nivel de ruido medidos al mismo tiempo , o la relación entre el nivel de señal máximo y el nivel de ruido más bajo que puede funcionar con una señal distinta de cero . Para la primera medida, incluso 48dB serían adecuados para una guitarra. Para el segundo, sin embargo, se requiere mucho más. Si hay una diferencia de más de 48dB entre los niveles de entrada más alto y más bajo que debería aceptar una caja, un ADC de 16 bits solo tendría una SNR de 48dB en la segunda medida, lo que en realidad no es suficiente.
@MattYoung: con respecto a la frecuencia de muestreo, si uno quiere una banda de paso de 12 kHz, entonces el muestreo de 48 kHz con una SNR de 48 dB requeriría un filtro de 48 dB/octava. El uso de muestreo de 96kHz requeriría un filtro de 24dB/octava, y el uso de muestreo de 192kHz solo requeriría un filtro de 12dB/octava. Además, el uso de algoritmos de interpolación crudos a 192 kHz puede generar resultados comparables con el uso de mejores algoritmos de filtrado a 48 kHz, pero requiere mucho menos esfuerzo de codificación.

Algo a considerar es que el rendimiento de su ADC y DAC dependerá en gran medida del circuito de soporte y el diseño de PCB. No soy un experto en ADC, pero entiendo que, desde un punto de vista eléctrico, 16 bits es de gama alta y 24 bits es extremo. Si está utilizando una referencia de 5 V, 1 bit menos significativo es 76 uV en un convertidor de 16 bits. En el mejor de los casos, el ruido mínimo es de -96 dB. ¿Confía en que puede controlar el ruido hasta ese punto? Tenga en cuenta que su entorno de grabación también produce ruido. A menos que esté en un estudio de grabación y tenga una placa de circuito realmente buena, no creo que un ADC de 24 bits lo ayude. También sospecho que 96 kHz es excesivo y que 48 kHz funcionaría igual de bien.

Solo por diversión, puede experimentar con el ADC de 12 bits en el STM32F4 para ver si puede escuchar una diferencia con respecto a 16 bits.

Una peculiaridad de los sistemas de cuantificación como los ADC que se pasa por alto fácilmente es que un ADC que siempre devuelve la lectura más cercana al valor de entrada agregará una cantidad significativa, hasta ±½LSB, de distorsión armónica, que puede ser mucho más objetable de lo que sería. ±½LSB de ruido de amplio espectro. Un ADC que agregara ±½LSB de ruido de amplio espectro con las características correctas podría eliminar la distorsión armónica, pero si las características del ruido no fueran las correctas, quedaría algo de distorsión. Si bien no es imposible diseñar un ADC de 16 bits de alta calidad que tenga una fuente de ruido de ±½LSB muy bien formada, a menudo es mucho más fácil simplemente extender las medidas para informar 24 bits, reduciendo así el ruido de cuantificación (y el armónico resultante). distorsión) por un factor de al menos 256.

Como analogía, supongamos que se necesita un dispositivo que informe un voltaje con una precisión de 0,06 voltios. ¿Sería más fácil diseñar un dispositivo de este tipo con una lectura en décimas de voltio o en centésimas? Si la lectura es en décimas, entonces el dispositivo debe ser capaz de resolver la diferencia entre 1,139 y 1,161 voltios (el primero debe informarse como 1,1 y el segundo como 1,2), una diferencia de poco más de 0,02 voltios. Si la lectura estuviera en centésimas, podría reportar un valor de 1,10 voltios para cualquier cosa hasta 1,159 voltios, y una lectura de 1,11 voltios para cualquier cosa hasta 1,061 voltios, una extensión de alrededor de 0,1 voltios. Por lo tanto, proporcionar cifras más significativas en la lectura en realidad reduce la precisión de los circuitos necesarios para lograr una precisión de resultado determinada.

En su caso, para muestrear una guitarra eléctrica con una frecuencia pico máxima de aproximadamente 2,5 kHz y una pendiente de caída de al menos 12 dB/octava a frecuencias más altas, estaría de acuerdo con el consenso general de 48 kHz y una resolución de 16 bits, aunque si obtiene en modificaciones pesadas (como múltiples transmisiones de retraso), entonces 24 bits le servirían mejor como señaló @crgrace.

Nadie ha mencionado aún la psicoacústica, que juega un papel importante en la percepción del audio digital, y dado que su pregunta era sobre si puede escuchar una diferencia, creo que esto aún no se ha explicado. Nuestra percepción del sonido está dominada más por la información de fase que por la frecuencia y la distorsión. Mencionaste el delay y el chorus como tus próximos intereses después de la modulación de envolvente. Ambos efectos añaden información de fase a la fuente original.

Sin embargo, si decidieras que deseas aumentar el alcance de tu proyecto para incluir guitarra acústica o voces, se produciría un efecto notable utilizando una frecuencia de muestreo de 48 kHz y una profundidad de 16 bits. La sibilancia, el sonido "s" en el habla, a menudo ocurre con las voces. Una guitarra acústica con una pastilla piezoeléctrica también tiene una forma de sibilancia (aunque no del mismo tipo) y es mejor filtrar las señales por encima de 3-5kHz para evitar este problema. Pero con las voces realmente no puedes hacer mucho excepto aplicar un filtro de-essing.

La sibilancia es un sonido complejo que tiene una interacción de información de fase en frecuencias moderadamente altas. El caso más obvio es un platillo chisporroteante. Micrófono y grábelo a varias frecuencias de muestreo y compare el sonido grabado con el vivo. A medida que reduzca progresivamente la frecuencia de muestreo, la señal grabada sonará más como un ruido áspero hasta que se vuelva insoportable. En una buena grabación podrá escuchar los remaches viajar alrededor del platillo. Esta es una de las razones por las que algunas personas prefieren las grabaciones analógicas a los CD.

Como regla general, necesita que la frecuencia de muestreo sea 10 veces mayor que la frecuencia de señal más alta para minimizar las distorsiones de fase. Una guitarra eléctrica produce pocos sobretonos superiores a 5kHz, por lo que una frecuencia de muestreo de 48kHz funcionará bastante bien. Pero si desea usar sus efectos de manera más general, como corrección de tono o coro para voces, le recomendaría utilizar frecuencias de muestreo más altas.

La profundidad de bits , que es de lo que habla el OP, no tiene nada que ver con poder escuchar algún rango de frecuencias. En otras palabras, la profundidad de bits representa la resolución de la intensidad del sonido. Apuesto a que si obtienes música de alta calidad y la produces a través de convertidores de 16 y 24 bits, ¡escucharás la diferencia a lo grande! La siguiente imagen muestra una "escalera" de cuantización exagerada en el muestreo de 16 bits:

ingrese la descripción de la imagen aquí

Ahora, la frecuencia de muestreo , que OP confunde con ADC, es diferente. Creo que quiere decir 96ks/sy 192ks/s, lo que significaría sobremuestreo. Estos números generalmente representan los múltiplos de 24kHz, una frecuencia de audición máxima con una sobrecarga de repuesto (debido a filtros de paso bajo no ideales). Por lo tanto, el muestreo de 48 kHz estaría ligeramente por encima de la frecuencia de Nyquist, 96 kHz solo significa que es estéreo (dos canales) y 192 es quadro.

Por lo tanto, necesita muestrear cada canal a alrededor de 48 kHz, y si puede obtener una muestra ADC de 24 bits, hágalo, la mayoría de las muestras de sonido comerciales tienen una profundidad de 24 bits. Sin embargo, si su fuente de sonido (quitar) es lo suficientemente ruidosa como para matar la resolución, gastar dinero extra en el convertidor de 24 bits no mejorará su sonido.

Y como dijo @crgrace, una mayor profundidad de bits le permitirá disminuir la pérdida de información durante el procesamiento de sonido digital debido a errores de truncamiento.

La profundidad de bits no tiene nada que ver con la "intensidad del sonido", sino con el rango dinámico y la SNR.
@MattYoung Correcto, ¿lo confundiste con el volumen? Me refiero a la resolución de la intensidad del sonido, que es esencialmente SNR.
No estoy seguro de seguir cómo "resolución de la intensidad del sonido" = SNR
@MattYoung Bueno, porque tener una resolución por debajo de SNR es inútil ya que abruma la señal. Y, ¿cuál es el punto de tu comentario? No estoy seguro de qué tiene que ver la profundidad de bits con el rango dinámico.
La compresión de MP3 no es una simple reducción de la profundidad de bits
Esa edición simplemente hace que esta respuesta sea simplemente incorrecta. La profundidad de bits no tiene NADA que ver con la calidad. La cuantificación a 8 o 24 bits le dará exactamente la misma señal. La diferencia es que la versión de 24 bits tendrá un nivel de ruido mucho más bajo.
Esa última imagen es absurdamente inexacta.
Parece que la última imagen proviene de la hoja de venta del "Reproductor de audio de alta resolución".
Debido a múltiples comentarios sobre la parte de la imagen que representaba la forma de onda mp3, que no estaba relacionada con la pregunta (era solo una parte de la imagen), recorté esa parte.