Search
  • JuanS

Acerca del sobremuestreo y el aliasing en la Compresión Digital



En una señal digital, esta convolución de espectros es una convolución circular y, debido a esto, si alguna parte cayera por fuera de la frecuencia de Nyquist produciría aliasing 😞. Por lo que una convolución espectral produce una expansión del espectro, la posibilidad de aliasing esta presente.


Esta gráfica muestra el producto de dos señales en donde la suma de los anchos de banda es menor que el ancho de banda disponible (las frecuencias mayores a la frecuencia de Nyquist aparecen sombreadas). In este caso, es fácil ver que, debido a los espectros de la fuente y la señal de control, el sobremuestreo es innecesario.



Por el contrario, esta gráfica muestra el producto en el tiempo de una fuente y una señal de control cuyos anchos suman más que la frecuencia de Nyquist. Debido a esto, el resultado del producto de las señales en una frecuencia de muestreo 1X y 2X es diferente. En el caso 2X el espectro se extiende hasta el area sombreada mientras que a la frecuencia de muestreo base la energía se refleja sobre el ancho de banda base.




Debido a este problema, el sobremuestreo se cita frecuentemente como la solución "perfecta! ya nunca más habrá problemas". Sin embargo, el sobremuestreo en tiempo real no es un procedimiento trivial. El proceso es el siguiente:


remuestreo(up) -> filtro anti-imagen -> no linealidad -> filtro antialiasing -> remuestreo (down)


Nota: el remuestreo para incrementar el numero de muestras (en inglés upsampling) también se conoce como estiramiento y consiste en insertar n-1 ceros entre las muestras para incrementar la frecuencia de muestreo n veces. el remuestreo para disminuir el número de muestras (en ingles downsampling) también se conoce como decimación y consiste en descartar n-1 muestras cada n muestras para reducir la frecuencia de muestreo n veces.


La siguiente figura muestra el proceso tanto en el dominio del tiempo como del espectro aplicado a algunos espectros con formas predecibles. La no-linealidad aplicada es x^2! Esto es un elemento clave! Elevar al cuadrado una señal es una forma fácil de entender esto desde diferentes perspectivas:

  • Es multiplicar la señal por Ella misma lo que es equivalente a una autoconvolución… De acuerdo a esto el ancho de banda se podrá doblar a lo más.

  • Elevar al cuadrado una senoidal es doblar su frecuencia y añadir un poco de DC (Esto es una propiedad trigonométrica, buscar fórmulas de potencias trigonométricas) (Para el análisis eliminé el DC tras la no linealidad ya que es irrelevante para este propósito)

  • Elevar al cuadrado añade distorsión a través del segundo armónico. Por lo que es exclusivamente del segundo armónico sabemos que la máxima frecuencia en la señal producirá una frecuencia del doble de sí misma lo que es equivalente a doblar el ancho de banda a lo más.


Bien! De arriba hacia abajo. Las dos primeras gráficas muestran la señal original. En seguida está la señal remuestrada (estiramiento). Esta tiene zeros entre las muestras y un espectro repetido además de una frecuencia de muestreo de 8x debido a que hay mayor cantidad de muestras en el mismo tiempo.


En seguida está la señal filtrada con el filtro anti imagen. Los espectros repetidos se eliminan con un filtro elíptico de orden 12. Nótese que este proceso de filtrado podría no ser perfecto!

En seguida aplicamos la no linealidad y como es de esperarse el ancho de banda se duplica. Nótese el dominio del tiempo para verificar que al amplitud al cuadrado de la señal tras el filtro anti-imagen es en efecto la señal tras la no linealidad.


En seguida aplicamos el filtro anti-aliasing y obtenemos una señal de banda limitada (usualmente es posible utilizar la misma arquitectura de filtrado que en el filtro anti-imagen)


Finalmente la decimación. En este punto, todo lo que esté en el area sombrada se convertirá en ALIAS. No tiene a donde más ir y dado que SIEMPRE habrá algo de energía en esta sección siempre habrá algo de aliasing. EN este caso está por debajo de 60dB pero honestamente no tengo datos experimentales para decir que esto es en efecto una cantidad imperceptible de aliasing. Finalmente, dado que es un ejemplo, la no-linealidad se comporta de una manera sencilla y los filtros no son tan agresivos como podrían ser.





Bueno, hagamos las cosas interesantes. Esta gráfica muestra el mismo proceso limitando el ancho de banda de la señal un poco. Será que el aliasing se reducirá al final? Por supuesto! ahora la expansión espectral no es tan extrema y ahora hay una banda de guarda para mejorar el filtrado de las imágenes y los aliases.




¿Qué tal si pudiéramos limitar el ancho de banda para asegurar que la expansión espectral estuviera dentro de la frecuencia de Nyquist? En este caso esto implicaría limitar el ancho de banda a la mitad de la frecuencia de muestreo (e.g. Un filtro pasa bajos en 20Khz con fs=96kHz)





Finalmente un acercamiento a la frecuencia de Nyquist en los tres casos anteriores para mostrar sus diferencias.





Lo siguiente es una muestra de una redoblante el cual vamos a procesar con un compresor. Utilizaremos un detector tipo picos y uno rms (sólo por referencia el umbral está en -30dB, la rata de compresión en 2:1, el tiempo de ataque para el detector de picos es de 1ms, el tiempo de relajación para el detector de picos es de 100 ms y la constante de tiempo del detector rms es de 50ms... Hay algunas razones para escoger estos valores pero no son tan relevantes para el próximo análisis)

De arriba a abajo tenemos la fuente (el redoblante), ambas señales de control con sus espectros y las señales comprimidas con cada una de las señales de control. Todo en las areas sombreadas se convertirá en aliasing. No es mucho pero la pregunta que quisiera resolver es ¿Cómo la limitación en banda y el sobre muestreo pueden ayudar y cómo cuantificar estas diferentes situaciones?. (Nótese que todo en el area sombreada al final se convertirá en aliasing al volver a la frecuencia de muestreo base).




Esta es la misma muestra de un redoblante pero ahora con algoritmo de sobremuestreo. De nuevo de arriba a abajo: La señal original, la señal sobre muestreada, ambas señales de control (detector de picos y detector rms) y finalmente las dos señales comprimidas con los dos tipos de detección (picos y rms).





Para cuantificar el aliasing decidí (porque nunca he visto esto hecho de manera formal) calcular la energía por fuera del ancho de banda base (posteriormente energía de aliases) y la energía dentro del ancho de banda base. La razón entre estas dos mediciones será la cantidad de energía de aliases en relación con la energía que no viene de aliases (esto es similar a la medición de THD-F de IEEE?)... Adicionalmente, evalúenlos las siguientes tres opciones: Limitar el ancho de banda de la fuente o no, limitar el ancho de banda de la señal de control o no o suavizar la señal de control. Una aclaración acerca de suavizar la señal de control: Nótese que cuando la señal de control cae por debajo del umbral hay una transición abrupta al acercarse a la ganancia unitaria durante el proceso de relajación. A menudo son estas discontinuidades las que producen altas frecuencias por lo que suavizar esa transición debería reducir el ancho de banda de la señal de control; es interesante pensar que esto es comparable con incrementar la rodilla del compresor ya que crea una transición suave entre el estado comprimido y el estado no comprimido!

Bien acá está el análisis. Por lo que hay demasiadas gráficas y combinaciones todas las figuras se pueden encontrar en este link a los archivos png. Sin embargo, estas dos tablas deberían dar suficiente información para entender lo que ocurre.


Link a las gráficas






Algunas ideas finales. Aunque esto no es un análisis exhaustivo a través del material usado, sospecho que en general la compresión sin sobremuestreo no tiene enormes cantidades de aliasing, PERO el si es o no perceptible es todavía un aspecto incierto. Sin embargo, la compresión sin sobremuestreo también puede tener muy pequeñas cantidades del aliasing si algunas técnicas adicionales se utilizan para lograr esto. Por otro lado es interesante ver que hay muchas estructuras de sobremuestreo para compresión con sobremuestreo. ¿Debería calcularse la señal de control a la frecuencia de muestreo base? o cuando la fuente haya sido sobremuestreada. Esto no es algo trivial!. Además este ejemplo usa sobremuestreo 8x pero sospecho que cualquier cosa mayor a 2x cuando se implementa con cuidado no debería dar muchas ventajas. Esto es por que a menos que haya una buena razón para pensar que el espectro va a crecer mucho más sobremuestrear de más puede incrementar el aliasing. Si hiciéramos un sobremuestreo de 100X obtendríamos un piso de ruido que se sumaría 99 veces sobre el ancho de banda base... sí... quizás no es una muy buena idea XD.


Finalmente, tomen todo esto con escepticismo. Me gusta mucho el DSP y lo he estudiado con detenimiento, pero no me dedico a esta parte de manera profesional (aunque no me molestaría hacerlo jajaja). Estoy seguro de que hay montones de trucos y detalles que se ganan con la experiencia y yo sólo soy un tipo al que le gusta este tipo de cosas XD no más que eso. Así que ante cualquier tipo de duda o debate acerca de esto me encantaría discutirlo :)

0 views

©2020 by JuanSaudio