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?
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 .
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 .
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:
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.
Mewa
Andy alias
Sławomir Kozok
gracia
Bobo