Conversión Analógica a Digital Omar X. Avelar & J. Daniel Mayoral SISTEMAS DE COMUNICACIÓN & TRANSMISIÓN DE DATOS (ESI 043A) Instituto Tecnológico y de Estudios Superiores de Occidente () Departamento de Electrónica, Sistemas e Informática (DESI) OBJETIVO El objetivo de esta práctica es experimentar con el muestreo y cuantificación de una señal de audio y escuchar sus efectos en la señal de audio recuperada a partir de las muestras. PROCEDIMIENTO 3) Realice ahora el cambio a 256 niveles de cuantificación, pero de manera no uniforme, siguiendo la ley μ. Qué diferencia hay con la cuantificación uniforme de 256 niveles? INTRODUCCIÓN Existen varias ventajas en sustituir circuitos analógicos por algoritmos digitales. En el caso de la conversión de una señal analóparte I: Frecuencia de Muestreo gica en una digital (Fig. 1), el muestreo ideal toma el valor de la señal en un instante determinado (periódicamente) y almacena 1) A partir de un CD, convertir a WAV una canción. Es importante este valor. partir de un CD y no de un MP3 o de otro archivo ya comprimido. 2) En GNU Octave/MATLAB, leer el archivo WAV, con el comando wavread. La mátriz resultante es demasiado grande; escoger cinco segundos de música en algún segmento de la canción que sea representativo del género. Vamos a terminar con una matriz de dos columnas, con 22050 muestras cada una y con intervalo entre muestras igual a 1/44100 segundos. Cada muestra es un número real entre -1 y 1. 3) Con el comando wavwrite, escribir los cinco segundos de música a otro archivo. Fig. 1: Gris: Señal continua 4) Ahora vamos a experimentar con la frecuencia de muestreo. Rojo: Valor tomado de la muestra. Usando el comando resample, cambiar la frecuencia de muestreo de los archivos a 12,090 muestras por segundo. Escuchar de Y a su vez cada uno de estos valores se debe de aproximar a un nuevo la música. Repetir para 8,000 y para 4,000 muestras por valor definido discreto, o lo que se conoce como cuantificación segundo. Qué conclusiones se pueden obtener? Se observa alen amplitud. gún tipo de distorsión? Parte II: Cuantificación 1) Utilizando un micrófono y una computadora, grabar unos diez segundos de voz, por ejemplo leyendo una noticia de un periódico o una página de internet. Hacer la grabación a la máxima frecuencia de muestreo de su tarjeta de sonido; normalmente este valor es de 48,000 muestras por segundo. Utilizar también la máxima resolución, que suele ser de 16 bits. 2) Después de leer el audio en Octave/MATLAB, cambie sus niveles de cuantificación (de manera uniforme) a 1024, 256 y 64. Escuche el audio que resulta. Qué conclusiones se pueden obtener? Fig. 2: Discreta en amplitud y tiempo. Tema: Sistemas de comunicación y Transmisión de Datos - Page 1 of 6
DESARROLLO Parte I: Frecuencia de Muestreo Proseguimos a usar la función de resample. La cual consiste en un algoritmo conocido como polyphase. Le daremos zoom (Fig. 4 Fig. 6) a una parte del archivo de audio para poder visualizar que está sucediendo con el downsampling. Fig. 3: Arriba: Sampled @ 44.1 KHz Abajo: Downsampled @ 22.05 KHz. Fig. 5: Arriba: Sampled @ 44.1 KHz Abajo: Downsampled @ 8 KHz. Fig. 4: Arriba: Sampled @ 44.1 KHz Abajo: Downsampled @ 12.09 KHz. Fig. 6: Arriba: Sampled @ 44.1 KHz Abajo: Downsampled @ 4 KHz. Tema: Sistemas de Comunicación & Transmisión de Datos - Page 2 of 6
Se puede notar que la cantidad de información (calidad) es redu- También se puede observar un traslape en las frecuencias (aliacida al andar quitando muestras y a su vez reducir el ancho de sing) si observamos el eje de la amplitud que ha cambiado grabanda de nuestra señal resultante. cias a la superposición de esos componentes en frecuencia que se están haciendo pasar por otros. f max =, donde fs fs 2 (1) = Es el Nyquist Rate. Perceptiblemente al analizar los diferentes archivos de sonido ya procesados, se empezó a escuchar cómo iban cambiando y notablemente perdiendo información, agregando distorsión conforme más bajaba la nueva frecuencia de muestreo (Fig. 9). Como no se aplicó ningún filtro antialias antes de volver a muestrear, tenemos un traslape en el espectro lo cual nos distorsiona aun más la señal al hacer pasar unas frecuencias por otras. Fig. 7: Arriba: Traslape en frecuencia (aliasing). Abajo: Señal muestreada correctamente con un filtro antialias previo. Llevando este caso al extremo se decidió hacer una prueba con un downsampling a 500 Hz (Fig. 8), y se puede observar una pérdida muy significante de detalles incluso con la señal visualizada contra el tiempo. Fig. 8: Perdida de detalles en las frecuencias altas. Fig. 9: Reduciendo la frecuencia de muestreo. Tema: Sistemas de Comunicación & Transmisión de Datos - Page 3 of 6
A continuación por medio de un espectrograma podemos ver el efecto de aliasing muy claramente (Fig. 10) Donde en el eje vertical se visualiza como 1 (máximo) a la frecuencia de Nyquist ( f max ) de la señal. Por lo que en el orden de arriba a abajo se encuentra: (1) (2) (3) (4) (5) f max =22.05 [ KHz ] f max =11.025[ KHz] f max =6 [ KHz ] f max =4[ KHz ] f max =2 [ KHz ] Y la (6) y la (7) son unas pruebas para ver el efecto de una manera más drástica utilizando frecuencias de muestreo muy bajas. En la gráfica del espectrograma (Fig. 10) conforme nos movemosa más bajas frecuencias de muestreo, podemos ver como se traslapan y siguen apareciendo fantasmas de las frecuencias altas pero ahora con componentes de frecuencia más bajos (aliasing). Fig. 10: Especrtogramas. 1) Frecuencia de muestreo @ 44.1 KHz. 2) Frecuencia de muestreo @ 22.05 KHz.. 3) Frecuencia de muestreo @ 12 KHz. 4) Frecuencia de muestreo @ 8 KHz. 5) Frecuencia de muestreo @ 4 KHz. 6) Frecuencia de muestreo @ 2 KHz. 7) Frecuencia de muestreo @ 500 Hz. Tema: Sistemas de Comunicación & Transmisión de Datos - Page 4 of 6
Parte II: Cuantificación La siguiente gráfica (Fig. 11) muestra la prueba de esta cuantificación lineal teniendo como niveles de escala completa [ -1, 1 ]. Se utilizó el archivo de voz grabado y para la cuantificación lineal se usó la siguiente función de GNU Octave/MATLAB: ------------------------------------------------------------------------------------------## Copyright (C) 2009 Omar X. Avelar ## ## Quantizes the input using the round-off algorithm with ## a linear scale ## function signal = quant( in, bits ) % Linear Quantization vn = -1; vp = +1; q_range = linspace(-1,1,2^bits+1); for i=1:length(in) qout(i) = quantiz(in(i),q_range); endfor qout = qout./2^bits; qout = qout 0.5; % Output signal = qout; endfunction; ------------------------------------------------------------------------------------------- Para la cuantificación siguiendo la ley µ se hizo uso de la función lin2mu la cual convierte una señal de audio y usa 8 Bits (256 niveles) de acuerdo al estándar. Fig. 11: 1) Señal sinusoidal original con amplitud uno. 2) Prueba a 10 Bits (1024). 3) Prueba a 8 Bits (256). 4) Prueba de 6 Bits (64). 5) Prueba de 2 Bits (4). 6) Prueba de 1 Bit (2). Tema: Sistemas de Comunicación & Transmisión de Datos - Page 5 of 6
Al cuantificar nuestra señal pudimos escuchar como un ruido que se encontraba de fondo en la grabación presentaba un crujido (crackling) y este era más prominente conforme se bajaban los niveles de cuantificación (Ej. 10, 8, 6 Bits). También era notable en las partes más audibles. En cuanto a la ley µ, esta presentó varias ventajas respecto a grabaciones típicas ya que no eran tan comunes las parte con más amplitud, por lo que presentábamos una mayor cantidad de escalones en promedio para esta grabación en específico. CONCLUSIONES Pudimos corroborar lo aprendido en clase y en cursos anteriores, nos tocó percibir el aliasing al submuestrear una señal de audio, así como la reducción de el ancho de banda del espectro. Respecto a la cuantificación descubrimos que hay maneras alternas de compresión especificas para ciertas aplicaciones, en este caso la ley µ para señales PCM que divide la escala en intervalos más pequeños a menores amplitudes. Tema: Sistemas de Comunicación & Transmisión de Datos - Page 6 of 6