Dither: Necesito una aclaración

  • 1
--490969--
#1 por --490969-- el 01/09/2014
Hola a todos,
A estas alturas sé que hay ya varios hilos antiguos donde se habla del dither y en los que la teoría queda muy clarita. El caso, es que ayer hice un par de pruebas de exportación y no me queda tan claro que esa teoría sea aplicable en el 100% de los casos. Así que deseo abrir debate entorno a unas capturas de pantalla que paso a compartir.

Por un lado quise ver las diferencias al pasar a distintas frecuencias de muestreo. Mi conclusión es que 44 y 48 KHz son muy semejantes y la diferencia respecto a 96 KHz es abismal. Así pues, siempre que el destino no sea CD (44.1 máximo) o MP3 (48 KHz máximo), un archivo FLAC o MP4 (para Internet) lo dejaría a 96 KHz para guardar la calidad. Esa conclusión va en la línea de un productor de música clásica noruego que lleva un estudio llamado 2L, que afirmaba que en pruebas de doble ciego no es perceptible la conversión de 192 a 96, pero sí de 96 a 48 (lo mismo con 172-88 y 88-44).

Luego, pasé a ver la diferencia en la onda al introducir o no dither al convertir de 24 bits a 16 bits (conversión obligada tanto para CD como para cualquier archivo de tipo lossy). Supuestamente al hacerlo sin dither, debería producir distorsiones en la onda. Supuestamente, la teoría dice que es preferible el ruido introducido por el dither que esas supuestas distorsiones. El caso es que en la captura de pantalla que corresponde a la conversión sin dither no aprecio diferencias evidentes respecto al original, mientras que la captura de pantalla que corresponde a la conversión con dither se aprecia con perfecta claridad el ruido introducido en la onda. Hay que decir que solo cambié la tasa de bits, no la frecuencia de muestreo. Mi conclusión es que (al menos en este caso) no es buena idea usar dither.

Pregunto, ¿Puede ser porque al no haber material sonoro importante a menos de 96 dB, al pasar de los 140 dB de rango dinámico a los 96, no se produzca ninguna distorsión perceptible, haciendo injustificable el ruido introducido por el dither (que sí es levemente perceptible al oído)? Y en caso de ser eso, acaso hay algún tipo de música que use de forma efectiva ese enorme rango dinámico? Porque yo creo que ni la música clásica lo tiene. Supongo que habrá a quien le parezca básica la duda, pero me gustaría aclararla.
Archivos adjuntos:
44-24.png
BBCode:
48-24.png
BBCode:
96-24.png
BBCode:
Original 24 bits.png
BBCode:
Sin Dither 16 bits.png
BBCode:
Con Dither 16 bits.png
BBCode:
Subir
#2 por hermesampedro el 07/09/2014
Hola, en primer lugar me gustaría destacar que el hecho de aumentar la frecuencia de muestro no repercutirá en la calidad de la señal en frecuencias bajas, solo en la posibilidad de adquirir nuevas frecuencias altas, es decir, utilizar frecuencias de muestro altas permitirán grabar y reproducir frecuencias de señal de audio altas (de acuerdo con el teorema de muestreo). Es recomendable grabar con una frecuencia de muestreo alta para poder captar el mayor ancho de banda posible de forma que subjetivamente haya mayor calidad.

Por otro lado, al cambiar el número de bits de 24 a 16 aparecerá distorsión en niveles bajos de señal. Si la señal utilizada tiene niveles altos, la distorsión no se apreciará. El hecho de utilizar mayor número de bits y por tanto mayor margen dinámico es en parte para evitar estas distorsiones en niveles bajos y estar "cubiertos en salud". La música clásica por ejemplo tiene un gran rango dinámico.

En teoría se recomienda aplicar dither siempre que se reduce el número de bits. Si la señal tiene un nivel muy bajo, se evitará la distorsión pero aparecerá un ruido. En todo caso siempre es mejor el ruido que la distorsión ya que ésta última añade componentes espectrales que no aparecen en la señal original. Existen técnicas que implementan los propios dither llamadas noise shaping que modelan del ruido llevándolo a regiones del espectro donde el oído es menos sensible. De este modo se reduce subjetivamente el ruido.

Para el caso que has presentado no sabría decir si es mejor o no aplicar dither ya que la mejor manera de saberlo es escuchándolo.

Por último no hay que confundir el muestreo con la cuantización. Con esto quiero decir que los resultados que has obtenido al reducir el número de bits y aplicar dither no dependen de la frecuencia de muestreo.

Espero haber ayudado.

Hermes Sampedro.

Hermes Sampedro
http://hermesampedrorecords.wordpress.com

Subir
--490969--
#3 por --490969-- el 08/09/2014
Hola hermesampedro,
Con lo que me has dicho me queda claro que si tengo una señal con niveles altos constantes es posible no tener la necesidad de usar el dither. Para señales que oscilan mucho o tienden a ser bajas, lo mejor es usar dither, usando el noiseshaping y el oído para reducir la molestia del ruido que éste introduce. Muchas gracias!

Por otra parte, recuerdo haber leído hilos en el propio Hispasonic donde se ha comentado que usar frecuencias de muestre altas no sólo amplian la captación de armónicos superiores, sino que mejoran la definición de los armónicos graves. Sé que reducir el número de bits y aplicar el dither no tienen nada que ver con la frecuencias de muestreo, pero como estaba haciendo pruebas con todo eso me expresé de forma que pensaste que yo creía eso, está bien de todas formas que lo aclares por si alguien se liaba a leer el hilo. Un saludo!
Subir
#4 por hermesampedro el 08/09/2014
Me alegro haber podido ayudar. Utilizar frecuencias de muestreo altas no mejora la definición de frecuencias graves. El muestreo (sin tener en cuenta la cuantificación) es un proceso sin pérdidas. El teorema de muestreo establece que una señal continua limitada en banda puede ser reemplazada por una secuencia discreta de muestras sin pérdida de información, además describe como reconstruir la señal original a partir de las muestras. Es decir, las señales de audio con frecuencias entre 0Hz y N/2 Hz pueden representarse exáctamente con N muestras por segundo. Por tanto si usamos una frecuencia de muestreo 2N podremos manejar de 0Hz a NHz sin embargo las frecuencias 0 Hz a N/2 Hz no van a quedar mejor definidas, únicamente podremos utilizar un mayor ancho de banda y por tanto se puede decir que se mejora la calidad subjetiva del conjunto.

Hermes Sampedro
http://hermesampedrorecords.wordpress.com

Subir
--490969--
#5 por --490969-- el 08/09/2014
Entendido! Muchas gracias :wink:
Subir
#6 por Mordus el 08/09/2014
Interesante observación la del Dither.
Gracias a los dos.

-Que mi avatar se esté descojonando no significa que yo también lo haga...

-Tanto discrepar me va a matar.

Subir
#7 por Tio Harpo Molon el 08/09/2014
Yo hay algo que no comprendo del dither:

A ver, la función del dither es evitar que los errores de cuantizacion se acumulen en cierta tendencia, pero, errores de cuantizacion van a existir sin dither o con dither, eso hay que tenerlo claro, se induce un factor aleatorio para que no se redondeen los valores siempre con la misma tendencia, lo que puede aumentar la distorsión de la onda, pero, en términos estadísticos no se en realidad cuanto disminuye la distorsión y mas aun, que tan observable es desde el punto de vista auditivo y distorsión la habrá de todas formas, recuerda que te desharás de ciertos intervalos y debes re acomodar las muestras a los intervalos restantes, ese re acomodar muestras se traduce en distorsión, y el dither no la evita, simplemente evita que se acumule siempre hacia la misma tendencia lo que en teoría debería aumentar la distorsión, pero, entre 2 señales distorsionadas, se nota?

Tengo mis dudas de si sea realmente necesario, por lo menos de 24 a 16 bits.

Del experimento de Oliver debo decir que no te puedes fiar de la forma de onda, recuerda que eso simplemente es una representación. Yo lo que haría sería hacer null test entre las diferentes muestras y evaluar cuanto es el nivel de señal que queda, esa señal, que estará obviamente a nivel de ruido, será el grado de distorsión entre ambas muestras.
Subir
#8 por hermesampedro el 09/09/2014
Harpocrates creo que estas en un error. Ponte en el caso de que tenemos una sinusoide de baja amplitud. Al digitalizarla oscila entre el bit 0 pero no llega a alcanzar el bit 1 (se queda por debajo de este). De manera que el resultado no es una sinusoide ya que no alcanza el primer bit, es por tanto una onda cuadra con un máximo en el bit 1 y un mínimo en el bit 0: ya no tenemos una sinusoide sino una onda cuadrada, esto es la distorsión (puede verse en la imagen adjunta, en este caso la onda cuadrada toma valores 0 y -1).
Si ahora aplicamos dither, un ruido aleatorio de cierta amplitud sumado a la sinusoide, aumentará la amplitud de modo que ahora si que llegará al bit 1 y por tanto tendremos algo más parecido a una sinusoide reduciendo la distorisión.
Al reducir de 24 bits a 16 bits ocurre una cosa parecida, se elimina la información que había en niveles bajos. Como se han eliminado 8 bits, ahora hay otra información de la señal que esta en niveles bajos que antes no estaba, por lo que puede ocurrir el mismo problema anteriormente descrito.
La distorsión en niveles bajos si que se nota y es muy molesta, es preferible el ruido del dither.

En cuanto a la representación de la onda, si pruebas a hacer el experimento descrito, con una sinusoide de bajo nivel, si que podrás ver la onda cuadrada. Además si aplicas un analizador de espectros verás también las componentes espectrales añadidas por la distorsión.
Archivos adjuntos:
Captura de pantalla 2014-09-09 a la(s) 15.38.35.png
BBCode:

Hermes Sampedro
http://hermesampedrorecords.wordpress.com

Subir
#9 por Tio Harpo Molon el 10/09/2014
hermesampedro escribió:
Harpocrates creo que estas en un error. Ponte en el caso de que tenemos una sinusoide de baja amplitud. Al digitalizarla oscila entre el bit 0 pero no llega a alcanzar el bit 1 (se queda por debajo de este). De manera que el resultado no es una sinusoide ya que no alcanza el primer bit, es por tanto una onda cuadra con un máximo en el bit 1 y un mínimo en el bit 0: ya no tenemos una sinusoide sino una onda cuadrada, esto es la distorsión (puede verse en la imagen adjunta, en este caso la onda cuadrada toma valores 0 y -1).


No, no me queda claro ese ejemplo, ¿que pasa con el teorema de shannon/nyquist? estas usando una frecuencia de muestreo igual a la frecuencia de la onda en cuestión, y es imposible construir una onda solo con 2 intervalos, eso simplemente serian pulsos, lo que estas intentando reflejar es un tren de pulsos, no una onda, y la teoría de trenes de pulsos es un poco diferente. puede que yo esté en un error, no lo se aun, pero tu ejemplo yo por lo menos no le veo la lógica, lo podrías explicar de otra forma que esta situación en particular que haz planteado yo creo pertenece a otro universo.
Subir
#10 por vagar el 10/09/2014
El dithering lo que hace es redistribuir la energía del ruido de cuantización por todo el espectro, psicoacústicamente es menos notable una pequeña cantidad de ruido blanco de fondo que su acumulación en determinadas frecuencias. El artículo de wikipedia lo explica perfectamente con buenos ejemplos:

http://en.wikipedia.org/wiki/Dither

#8 No está bien explicado. En el caso que planteas lo que sucede es que la señal, una vez pasada por el filtro de reconstrucción, es una senoide rectificada de media onda en lugar de una senoide completa: faltarían todos los semiperiodos positivos. Si se utilizara dithering el resultado sería una senoide rectificada aleatoriamente en semiperiodos positivos y negativos. Sigue estando distorsionada, pero el efecto global al oído es menos aparente.

Ars longa, vita brevis.
Mi colección de enlaces web en diigo.

Subir
#11 por hermesampedro el 10/09/2014
harpocrates escribió:
No, no me queda claro ese ejemplo, ¿que pasa con el teorema de shannon/nyquist? estas usando una frecuencia de muestreo igual a la frecuencia de la onda en cuestión, y es imposible construir una onda solo con 2 intervalos, eso simplemente serian pulsos, lo que estas intentando reflejar es un tren de pulsos, no una onda, y la teoría de trenes de pulsos es un poco diferente. puede que yo esté en un error, no lo se aun, pero tu ejemplo yo por lo menos no le veo la lógica, lo podrías explicar de otra forma que esta situación en particular que haz planteado yo creo pertenece a otro universo.


Estas confundiendo cuantización con muestreo, son dos procesos diferentes. Puedes consultar cualquier libro de fundamentos de digitalización de audio para aclarar los conceptos y ver que son de este universo ;).
Mi ejemplo en concreto esta sacado del libro "Principios de audio digital" de Ken C. Pohlmann.


lgarrido escribió:
No está bien explicado. En el caso que planteas lo que sucede es que la señal, una vez pasada por el filtro de reconstrucción, es una senoide rectificada de media onda en lugar de una senoide completa: faltarían todos los semiperiodos positivos. Si se utilizara dithering el resultado sería una senoide rectificada aleatoriamente en semiperiodos positivos y negativos. Sigue estando distorsionada, pero el efecto global al oído es menos aparente.


El ejemplo no tiene nada que ver con el filtro de reconstrucción. Simplemente, la señal no llega a alcanzar el siguiente nivel de cuantización.

Hermes Sampedro
http://hermesampedrorecords.wordpress.com

Subir
#12 por vagar el 10/09/2014
hermesampedro escribió:
El ejemplo no tiene nada que ver con el filtro de reconstrucción. Simplemente, la señal no llega a alcanzar el siguiente nivel de cuantización.


Tienes razón, no me había fijado bien en el eje de tiempos. A primera vista pensaba que se trataba de una muestra por periodo y, por lo tanto, se trataba de una senoide cercana a fs/2.

Pero vamos a explicarlo bien.

Se está muestreando una señal de amplitud 1,9 LSB, es decir, 0,95 LSB de valor de pico, justo por debajo de la resolución mínima del ADC. Se está aplicando un redondeo a la baja: todas los valores entre 0 y 0,95 se redondean a 0, y todos los valores entre -0,95 y 0 se redondean a -1.

Si nos fijamos en el eje de tiempos vemos que cada periodo de la señal ocupa aproximadamente 44 muestras, probablemente el ejemplo está basado en una señal de 1 kHz muestreada a 44,1 kHz.

Aceptando esto tendríamos que internamente la salida del ADC es una secuencia de 22 "ceros" y 22 "menos uno" por cada periodo (aproximadamente, ocasionalmente habría alguna secuencia de 21 debido a que la frecuencia de muestreo no es múltiplo exacto).

Cuando esta señal digital se vuelva a convertir en analógica el resultado será similar a una señal cuadrada de media onda negativa (entre 0 y -LSB), aunque al ser limitada en banda por el filtro de reconstrucción la pendiente estará suavizada. Su frecuencia sería de 2 kHz, en lugar de 1 kHz, al ser asimétrica tendría una componente continua y su potencia sería aproximadamente la mitad de la señal original. La distorsión que se ha producido está clara.

Utilizando dithering todos estos efectos quedarían más diluidos, la señal reconstruida sería también tirando a cuadrada pero simétrica de 1 kHz y estaría mezclada con ruido blanco entre -LSB y +LSB (menos DC, menos potencia concentrada en múltiplos impares de 2 kHz, etc).

Ars longa, vita brevis.
Mi colección de enlaces web en diigo.

Subir
#13 por hermesampedro el 10/09/2014
Igarrido, gracias por aclararlo. Discrepo en los 2KHz.

Hermes Sampedro
http://hermesampedrorecords.wordpress.com

Subir
#14 por vagar el 10/09/2014
Sí, después de escribirlo me he quedado pensando y no sé por qué se me ha duplicado la frecuencia al hacerme el esquema mental, supongo que andaba dándole vueltas a la rectificación de media onda. Es 1 kHz, no 2.

Ars longa, vita brevis.
Mi colección de enlaces web en diigo.

Subir
#15 por Tio Harpo Molon el 10/09/2014
hermesampedro escribió:
Estas confundiendo cuantización con muestreo, son dos procesos diferentes


No, no estoy confundido con eso, estoy confundido con tu ejemplo, no tiene sentido, no puedo ir a buscar a libros lo que tu has querido expresar que no termino de entender.

hermesampedro escribió:
y ver que son de este universo


:desdentado: , hombre, no estoy diciendo que sea de otro mundo, con "universo" me estoy refiriendo al ámbito en que aplica, el otro universo al que me refiero es el de señales transmitidas digitalmente, trenes de pulso.

Yo creo que en lo que has intentado explicar hay un error y para que no se desperdicie tu respuesta agradecería que intentes plantearlo de otra forma, para poder entender lo que has querido decir.

Fíjate en la imagen que colocas, tienes 2 intervalos, 1 y -1, si la señal no alcanza el intervalo -1, queda en 0 verdad? todo un ciclo de la onda???? date cuenta del error, si todo un ciclo de la señal se "rectifica" por efecto de error en una muestra, quiere decir que las muestras se recogieron a que frecuencia??? analizalo, no es que yo esté confundiendo nada, es que existe ese error en el ejemplo que estas proponiendo.

Luego, estas intentando reconstruir una onda con 2 intervalos????? eso jamas representará una onda, si no un pulso, hay voltaje o no hay voltaje, es positivo o es negativo, eso es propio de los trenes de pulsos, y la lógica de ese mundo (es lo que me refiero con universo ;) ) es distinta.

Asumo que en primera instancia no te estas dando cuenta de lo que te estoy planteado, y vuelvo a instarte a utilizar otro ejemplo.
Subir
Respuesta rápida

Regístrate o para poder postear en este hilo