Vous êtes sur la page 1sur 6

Cambio de la Frecuencia de Muestreo

Omar X. Avelar & Diego I. Romero

PROCESAMIENTO DIGITAL DE SEALES (ESI05AA)


Instituto Tecnolgico y de Estudios Superiores de Occidente (ITESO) Departamento de Electrnica, Sistemas e Informtica (DESI)

SINTESIS
Se trabajara con una seal de audio a una frecuencia de muestreo a la cual se le aplicara un filtro pasa-bajas y sera diezmada para as tener una nueva seal de audio. En el proceso de esto se observara el comportamiento en las respuestas en frecuencia y se discutirn las diferencias. 2. Grfica la seal en Matlabu Octave. Primero, como si se tratara de una seal analgica (llmale x a t e indica en la grfica su duracin en segundos) y luego, como una seal discreta (indica en la grfica su longitud en muestras).

x [n ]

INTRODUCCION
Existen varias ventajas en sustituir circuitos analgicos por algoritmos digitales. En el caso de la conversin de una seal analgica en una digital se puede utilizar la tcnica de muestrear la seal a una tasa superior a la deseada y, posteriormente, utilizar procesamiento digital de seales para reducir la frecuencia de muestreo. La ventaja de esta tcnica radica en que se puede recurrir a un filtro anti-solapamiento de bajo orden y bajo costo y posteriormente modificar la seal de manera que slo permanezcan los datos deseados. En esta prctica vamos a digitalizar una seal de voz usando una frecuencia de muestreo de 48 KHz y, recurriendo al procesamiento digital de seales, la modificaremos en una seal con frecuencia de muestreo de 8 KHz.

3. Utiliza la transformada discreta de Fourier (DFT por sus siglas en ingls) para graficar la magnitud de la transformada de Fourier de x a t y x [n ] . Cuida que la informacin del eje de la frecuencia tenga sentido en cada grfica (usa para la seal analgica y para la seal discreta). 4. Calcula la seal

filtro pasa-bajas h LP [n ] . Este filtro est disponible en el archivo filtro.mat en la pgina Moodle del curso. 5. Grafica la magnitud de la respuesta en frecuencia H LP ej del filtro pasa-bajas y comprueba que su frecuencia de corte c corresponda a la sealada en la figura 1. 6. Grafica Fourier de

x [n ]

va la convolucin de

x [n ]

con el

x [n ] x [n ]

as como la magnitud de la transformada de (cuida el eje de la frecuencia).

7. Obtn y grfica la seal

x d [n ]

x [6n ]

DESARROLLO
1. Graba en la computadora una seal de voz (5 segundos de audio es suficiente) utilizando una frecuencia de muestreo de 48 KHz (sonido monoaural). Utiliza esta seal como la entrada x[n] del sistema mostrado en la figura 1.

8. Grfica la magnitud de la transformada de Fourier de x d [n ] (cuida el eje de la frecuencia). Por qu es distinta la magnitud de esta transformada de Fourier? 9. Escucha y compara las seales

x [n ]

x d [n ]

10. Elabora un reporte donde incluyas todos los pasos anteriores. Agrega comentarios y conclusiones.

Fig. 1: Sistema general para reducir la frecuencia de muestreo por un factor de 6.


Tema: Procesamiento Digital de Seales Pag. 1 of 6 Guadalajara, Mxico // lun 20 de abril de 2009.

ITESO
Instituto Tecnolgico y de Estudios Superiores de Occidente (ITESO), Perifrico Sur Manuel Gmez Morn 8585, Tlaquepaque, Jalisco, Mxico, C.P. 45090. Departamento de Electrnica, Sistemas e Informtica (DESI).

Cambio de la Frecuencia de Muestreo


Por: Omar X. Avelar & Diego I. Romero

DESARROLLO
Ya teniendo el archivo de voz en formato PCM de 48 KHz y 8 Bits, podemos cargarla en GNU Octave / MATLAB y visualizarla (Fig. 2) [ el programa se encuentra al final del reporte en la seccin de anexos ].

Aplicando la transformada rpida de Fourier (FFT), podemos apreciar sus respuestas en frecuencia.

Fig. 4: Analog frequency spectrum.

Fig. 2: Seal de audio en tiempo continuo.

Podemos ver que los componentes mas dominantes se encuentran por debajo de aproximadamente 3000 Hz en la seal anloga (Fig. 4). ).

Fig. 2: mostrando 8 segundos de nuestra seal (

x a t

Fig. 5: Espectro en frecuencia discreto.

Fig. 3: Seal muestreada discretamente.

Por lo que de manera anloga se puede ver en la respuesta discreta (Fig. 5) como

Fig. 3 muestra la seal muestreada ( x [n ] ) con una f s de 48,000 Hz; por lo que la grfica termina con una n = 384000.

2 = f s

, por lo que cada

1 4

en el eje

de la grfica se traduce a 1909 Hz y se puede ver que la mayora de los componentes se encuentran entre 0 y 4000 Hz, aproximadamente.

Tema: Procesamiento Digital de Seales Pag. 2 of 6 Guadalajara, Mxico // lun 20 de abril de 2009.

ITESO
Instituto Tecnolgico y de Estudios Superiores de Occidente (ITESO), Perifrico Sur Manuel Gmez Morn 8585, Tlaquepaque, Jalisco, Mxico, C.P. 45090. Departamento de Electrnica, Sistemas e Informtica (DESI).

Cambio de la Frecuencia de Muestreo


Por: Omar X. Avelar & Diego I. Romero

Cargando el archivo filtro.mat para importar cando la respuesta en frecuencia ( siguiente

h LP [n ] y grafiH LP ej ), tenemos lo

Al analizar la respuesta en frecuencia (Fig. 8) de la seal post-filtrada ( [n ] ), podemos ver que claramente elimino todos los x componentes

Fig. 6: Espectro del filtro pasabajas.

Fig. 8: Espectro de la seal filtrada.

Claramente se puede ver que le frecuencia de corte se encuentra en

c =

al analizar la grfica.

Aplicando este filtro a la seal de audio, nos queda de la siguiente manera (Fig. 7), donde es difcil de percibir los cambios hechos por el filtro.

La Fig. 9 presenta una visualizacin de lo sucedido al aplicarle el filtro a nuestra seal (la visualizacin es en el dominio de la frecuencia para que se pueda multiplicar valor con valor).

Fig. 9: Seal siendo filtrada.

Fig. 7: Seal de audio despues del pasabajas.


Tema: Procesamiento Digital de Seales Pag. 3 of 6 Guadalajara, Mxico // lun 20 de abril de 2009.

ITESO
Instituto Tecnolgico y de Estudios Superiores de Occidente (ITESO), Perifrico Sur Manuel Gmez Morn 8585, Tlaquepaque, Jalisco, Mxico, C.P. 45090. Departamento de Electrnica, Sistemas e Informtica (DESI).

Cambio de la Frecuencia de Muestreo


Por: Omar X. Avelar & Diego I. Romero

Siguiendo el diagrama de bloques de la figura 1, el siguiente paso es hacer x d [n ] = [6n ] , lo que indica que vamos a x tomar una muestra por cada 6 y as reducir el numero de muestras.

Por ultimo, analizaremos el espectro en frecuencia de esta seal x d [n ] , donde 2 =8000[ Hz ] .

Fig. 11: Espectro en frecuencia de la seal procesada. Fig. 10: Seal de audio diezmada.

Explicando el proceso de manera cualitativa se puede decir lo siguiente: Podemos ver que nuestro numero de muestras disminuyo en una razn de 6, por lo que

N muestras=

en este caso en particular corresponde a una reduccin de muestras a 64,000.

f s tiempo n diezmado

, por lo que

1. Fue muestreada una seal de audio a 48,000 Hz por lo que su frecuencia de Nyquist es de 24,000 Hz. 2. Se le aplico un filtro, el cual era un sexto de la frecuencia de Nyquist, dejando solo frecuencias hasta 4,000 Hz. 3. Se redujo la frecuencia de muestreo a un sexto de la original, quedndonos en 8,000 Hz y as por el teorema de Nyquist poder seguir sin distorsin seales de hasta 4,000 Hz. 4. Nos quedamos con una seal de audio con una frecuencia de muestreo de 8,000 Hz que se parece mucho a la original.

Tema: Procesamiento Digital de Seales Pag. 4 of 6 Guadalajara, Mxico // lun 20 de abril de 2009.

ITESO
Instituto Tecnolgico y de Estudios Superiores de Occidente (ITESO), Perifrico Sur Manuel Gmez Morn 8585, Tlaquepaque, Jalisco, Mxico, C.P. 45090. Departamento de Electrnica, Sistemas e Informtica (DESI).

Cambio de la Frecuencia de Muestreo


Por: Omar X. Avelar & Diego I. Romero

CONCLUSIONES
Es muy interesante trabajar con audio en GNU Octave / MATLAB, porque al verlos meramente como arreglos se pueden procesar de muchas maneras, as como aplicar filtros muy selectivos y especializados requeridas para ciertas aplicaciones sin necesidad de ser limitado por utilidades ya existentes de edicin de audio. Al cambiar la frecuencia de muestreo debemos de preocuparnos por limitar el ancho de banda de nuestra seal para descartar informacin y no provocar distorsin al sobrepasar la frecuencia de Nyquist. Al obtener la salida de audio ya procesado se noto una gran perdida de informacin en frecuencias altas como lo eran platillos de batera y ciertos tonos de guitarra. Pero el archivo de salida resulto ser de menor tamao al reducir la frecuencia de muestreo a 8 KHz.

Tema: Procesamiento Digital de Seales Pag. 5 of 6 Guadalajara, Mxico // lun 20 de abril de 2009.

ITESO
Instituto Tecnolgico y de Estudios Superiores de Occidente (ITESO), Perifrico Sur Manuel Gmez Morn 8585, Tlaquepaque, Jalisco, Mxico, C.P. 45090. Departamento de Electrnica, Sistemas e Informtica (DESI).

Cambio de la Frecuencia de Muestreo


Por: Omar X. Avelar & Diego I. Romero

ANEXOS
% Changing the sampling frequency % by using discrete time digital % processing. % % Omar X. Avelar & Diego I. Romero. % March 3rd, 2009. # Lowpass filter response HLP = fft(hLP); HLP = fftshift(HLP); omega_d = linspace(-pi,pi,length(HLP)); stem(omega_d,abs(HLP)); ylabel("Magnitude");xlabel('Frequency {\omega}'); print -dpng "Plots/5_H_lowpass_FFT.png"; load filter.mat # hLP is a lp filter # Filtering the audio signal sound_length = 8; truncate file fs = 48000; # Desired length to # Sampling frequency # in seconds x = wavread("sound_file.wav"); # Plot axis variables t = linspace(0,sound_length,sound_length*fs); n = linspace(0,sound_length*fs,sound_length*2000); # Loads the sound file x_filtered = conv(x,hLP); stem(n,x_filtered(1:fs/2000:sound_length*fs)); ylabel("Amplitude");xlabel("Sample [n]"); print -dpng "Plots/6_Filtered_Discrete_Signal.png"; # Fourier transform of the filtered signal X_filtered = fft(x_filtered); X_filtered = fftshift(X_filtered); omega_d = linspace(-pi,pi,length(X_filtered)); stem(omega_d,abs(X_filtered)); ylabel("Magnitude");xlabel('Frequency {\omega}'); # Analog signal plot(t,x(1:sound_length*fs)); ylabel("Amplitude");xlabel("Time [s]"); print -dpng "Plots/1_Analog_Signal.png"; # Discrete signal stem(n,x(1:fs/2000:sound_length*fs)); ylabel("Amplitude");xlabel("Sample [n]"); print -dpng "Plots/2_Discrete_Signal.png"; # Fourier transforms Xc = fft(x,power(2,ceil(log2(length(x)*sound_length)))); Xd = fft(x); Xd = fftshift(Xd); omega_d = linspace(-pi,pi,length(Xd)); omega_c = linspace(0,fs/2,fs*sound_length/8); # Analog Spectrum plot(omega_c,abs(Xc(1:8:fs*sound_length))); ylabel("Magnitude");xlabel("Frequency [Hz]"); print -dpng "Plots/3_Analog_FFT.png"; # Discrete Spectrum stem(omega_d,abs(Xd)); ylabel("Magnitude");xlabel('Frequency {\omega}'); print -dpng "Plots/4_Discrete_FFT.png"; # Saves the resampled audio as file xd_filtered = transpose(xd_filtered); wavwrite(xd_filtered,8000,16,"sound_out.wav"); # Downsampling the signal for n=1:(length(x_filtered)/6) xd_filtered(n) = x_filtered(6*n); endfor stem(xd_filtered(1:fs*sound_length/6)); ylabel("Amplitude");xlabel("Sample [n]"); print -dpng "Plots/8_Filtered_&_Downsampled.png"; # Fourier transform of the downsampled signal Xd_filtered = fft(xd_filtered); Xd_filtered = fftshift(Xd_filtered); omega_d = linspace(-pi,pi,length(Xd_filtered)); stem(omega_d,abs(Xd_filtered)); ylabel("Magnitude");xlabel('Frequency {\omega}'); print -dpng "Plots/9_Filtered_&_Downsampled_FFT.png"; print -dpng "Plots/7_Filtered_FFT.png";

Tema: Procesamiento Digital de Seales Pag. 6 of 6 Guadalajara, Mxico // lun 20 de abril de 2009.