Logo Studenta

Laboratorio 1 tratamiento de Se ales Multimedia

¡Estudia con miles de materiales!

Vista previa del material en texto

UCSP - Facultad de Ingeniería – Ing. Telecomunicaciones	2011-2
Tratamiento de Señales Multimedia 		Ebert San Román Castillo
PRIMERA UNIDAD: Producción del habla y su percepción auditiva
	
	1
	
Guía de Prácticas
Adquisición de la Señal de Voz en Matlab
	Grupo: ___________
Alumno(s):
	Nota:
	___________________________________________________
	
	___________________________________________________
	
I. Objetivos
Aprender a utilizar el toolbox de Adquisición de Datos en Matlab.
Reconocer la forma de la señal de voz gráficamente.
Ver las herramientas y utilidades que posee el software en particular el filtrado de la señal de voz para eliminar cualquier tipo de interferencia. 
II. Contenido teórico
Capítulo 1: Producción del habla y su percepción auditiva
El Toolbox de Adquisición de Datos de Matlab es una colección de Archivos M de funciones y archivos MEX (librería propietaria de Matlab). El toolbox también incluye variaos grupos de (DLLs) llamadas adaptadores, los que nos permite interactuar con diferentes tipos de hardware, el propósito de este toolbox es proveer de herramientas y recursos necesarios para medir y analizar los fenómenos físicos que provienen del hardware.
La figura 1 describe 2 características importantes en un sistema de Adquisición de Datos:
La señal en si es la representación de la entrada al sensor, acondicionada, digitalizada en binario para que la computadora puede procesarla para extraer la información mas significativa.
En nuestro caso, los diferentes niveles de sonido son adquiridos desde el micrófono, amplificados, digitalizados por la tarjeta de sonido y guardados en el workspace de MATLAB para su subsecuente análisis de su contenido.
Los datos generados en el computador son convertidos a su representación analógica y son los actuadores en nuestro sistema.
Por ejemplo, un vector de datos del workspace de MATLAB es convertido a su representación analógica por la tarjeta de sonido y emitido por medio de los parlantes.
Figura 1. Sistema de Adquisición de Datos.
III. Cuestionario previo 
Describa por lo menos 3 sensores y actuadores que se puedan digitalizar mediante el sistema de adquisición de datos de Matlab.
______________________________________________________________________________________________________________________________________________________________________
¿Describa brevemente los siguiente tipos de filtros, Filtro Pasabajos, Filtro Pasaaltos, Filtro Rechazabanda y filtro Pasabanda?
______________________________________________________________________________________________________________________________________________________________________
¿Cómo se realiza un filtro digital?
______________________________________________________________________________________________________________________________________________________________________
IV. Equipos y materiales
Laboratorio: Electrónica y Comunicaciones
Equipos y dispositivos:
1 Computador Personal
1 Micrófono 
1 Auricular
Software:
Matlab, con Toolbox de Adquisición de Datos 
V. Actividades
1. Actividad: Adquisición de Data en Matlab
La adquisición de Datos en Matlab se lleva a cabo por el Data Acquisition Toolbox , el cual vamos a usar para poder guardar nuestra señal de voz por un periodo de 1 segundo y con una frecuencia de muestreo de 8000 Hz, mediante un único canal.
Antes de correr el siguiente archivo M, compruebe que el micrófono esta conectado y funcionando en la computadora.
Archivo M (64 bits)
function Grab_datos(p)
% Record your voice for 5 seconds.
recObj = audiorecorder(44100, 8, 1);
	 get(recObj)
disp('Start speaking.')
recordblocking(recObj, 5);
disp('End of Recording.');
 
% Play back the recording.
play(recObj);
 
% Store data in double-precision array.
myRecording = getaudiodata(recObj);
 
% Plot the waveform.
plot(myRecording);
wavwrite(myRecording,44100,'pz.wav')
length(myRecording)
plot(myRecording)
La siguiente etapa en la adquisición de datos es reconocer nuestra señal grabada por el archivo M anterior, para eso ejecute el siguiente comando.
wavplay(myRecording,44100)
Con la cual escucharemos la señal de audio grabada anteriormente, ahora cree una señal sinusoidal con una frecuencia de 15 KHz, con una amplitud pico a pico de 1 V. la cual se debe de añadir a nuestra señal original,
Fs = 44100; % Sampling frequency
T = 1/Fs; % Sample time
L = 44100; % Length of signal
t = (0:L-1)*T; % Time vector
y = 0.7*sin(2*pi*15000*t);
 figure(2),plot(y)
data= myRecording’+y;
plot(n,data)
Escuche la señal creada, que diferencia nota respecto a la anterior.
wavplay(data,44100)
Halle la transformada de Fourier para las señales de las variables myRecording, y, data.
Preguntas:
¿Explicar qué ocurre si se reproduce data a una frecuencia superior o inferior a la grabada?
wavplay(data,2000)
wavplay(data,16000)
______________________________________________________________________________________
______________________________________________________________________________________
¿Busque en la ayuda el comando wavread, para que sirve?
______________________________________________________________________________________
______________________________________________________________________________________
 Actividad: Filtros en Matlab
Uno de los problemas más frecuentes en la Ingeniería de Telecomunicaciones es la necesidad de separar diferentes componentes en frecuencia de una señal. A este proceso se le denomina filtrado y se llama filtro al subsistema encargado de realizar dicha tarea. Serían innumerables las diferentes aplicaciones de los filtros.
Habitualmente se emplean para tareas tales como la eliminación de ruido o interferencias, en procesos de modulación y demodulación de señales, en la limitación del ancho de banda de señales, etc.
Independientemente de su función, a la hora de introducir un filtro en un sistema de cualquier tipo, es necesario conocer de antemano las especificaciones que dicho filtro debe poseer. Una vez conocidas éstas, se procede a diseñar el filtro apropiado. Por último, dicho filtro sera construido o programado (dependiendo de si se trata de un filtro analógico o digital) e insertado en el punto apropiado del sistema.
Filtros Digitales.
Un filtro no es más que un sistema lineal e invariante en el tiempo. Por tanto, es posible asociar a un filtro los diferentes conceptos ya conocidos para este tipo de sistemas: respuesta impulso h[n], o función de transferencia H(z), habitualmente 
Pues bien, entendemos por “diseño de un filtro” las operaciones necesarias para llegar a obtener la función de transferencia H(z) del filtro. H(z) se expresa de la forma siguiente:
Donde m es el orden del numerador y n el orden del denominador. Pues bien, “diseñar un filtro” equivale a determinar los valores de n, m y los coeficientes b1...bm+1 y a1...an+1. Por tanto, ese va a ser el objetivo.
Plantilla de especificaciones
Para diseñar los filtros, debemos partir de una serie de especificaciones (debemos tener claro qué misión deberá cumplir el filtro). Estas se representan habitualmente en una plantilla, tal y como muestra la figura 2.
Figura 2. Plantilla De Especificaciones de un filtro pasabajos 
En la plantilla anterior podemos distinguir los cuatro parámetros de interés:
fp Frecuencia de final de la banda de paso (pass-band)
fs Frecuencia de inicio de la banda atenuada (stop-band)
Rp Rizado máximo que vamos a permitir en la banda de paso (en dB)
Rs Atenuación mínima que deseamos en la banda atenuada (en dB)
La zona entre fp y fs es la banda de transición del filtro. Nótese, además, que el valor máximo del filtro es 1, de forma que se trata de un filtro pasivo (no amplifica ninguna frecuencia, simplemente atenúa unas más que otras). Esto no es ninguna limitaciónya que siempre es posible conectar a la entrada o a la salida del filtro un amplificador.
La zona rayada en la plantilla es la zona en la que el filtro no puede entrar. Aceptaremos por tanto el filtro si cae en la zona en blanco. Por ejemplo, para la plantilla anterior serían filtros válidos los que tuviesen respuestas como las que muestra la figura 3.
Figura 3. Filtros validos para una Plantilla De Especificaciones de un filtro pasabajos 
Selección de la técnica de diseño
Aunque no vamos a entrar en detalles sobre cada una de ellas, es bueno saber que existen diferentes técnicas de diseño de filtros. Entre las más habituales encontramos las siguientes:
Diseño de Butterworth
Diseño de Chebyshev con rizado en la banda de paso
Diseño de Chebyshev con rizado en la banda atenuada
Diseño de Cauer o de filtros elípticos
Únicamente como referencia podemos ver en la tabla siguiente algunas de las propiedades de cada una de las técnicas de diseño anteriores:
Diseño de filtros
Definiremos en primeros lugares algunos aspectos generales que es necesario conocer antes de proceder al diseño. En MatLab, las especificaciones se traducen casi de forma directa. Es necesario conocer siempre cuatro parámetros: Wp, Ws, Rp y Rs donde Rp y Rs son las atenuaciones en banda de paso y en banda atenuada, tal y como hemos definido anteriormente y Wp, Ws son las frecuencias "normalizadas". Para "normalizar" dichas frecuencias es necesario saber cual es la frecuencia de muestreo que vamos a utilizar para las simulaciones.
Si denominamos fsim a dicha frecuencia (el inverso del tamaño de paso que establecemos en la simulación), la relación entre Wp, Ws y las frecuencias fp, fs son muy sencillas, tal y como muestra la tabla siguiente:
La obtención de la frecuencia normalizada y del orden del filtro necesario es un paso previo a la obtención de los coeficientes del filtro. Dependiendo del tipo de técnica se usará una de las siguientes funciones:
• Método de Butterworth
» [N,Wn]=buttord(Wp,Ws,Rp,Rs);
• Método de Chebychev I
» [N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);
• Método de Chebychev II
» [N,Wn]=cheb2ord(Wp,Ws,Rp,Rs);
• Método de Cauer
» [N,Wn]=ellipord(Wp,Ws,Rp,Rs);
Esto nos devolverá N (orden del filtro a diseñar) y Wn (frecuencia normalizada) para el método seleccionado.
Una vez conocido el orden y la frecuencia normalizada, el siguiente y último paso es obtener los coeficientes del filtro. Para ello utilizaremos una de las siguientes funciones, dependiendo del método de diseño seleccionado:
• Método de Butterworth
Filtros paso bajo y paso banda
» [b,a]=butter(N,Wn);
• Método de Chebychev I
Filtros paso bajo y paso banda
» [b,a]=cheby1(N,Rp,Wn);
• Método de Chebychev II
Filtros paso bajo y paso banda
» [b,a]=cheby2(N,Rs,Wn);
• Método de Cauer
Filtros paso bajo y paso banda
» [b,a]=ellip(N,Rp,Rs,Wn);
Esto nos devolverá a y b para el método seleccionado. El contenido de estos vectores son los coeficientes del filtro ordenados en potencias descendentes de z, tal y como aparece en la descripción de la función de transferencia:
Verificación del Diseño
Es posible verificar directamente en MatLab si un filtro cumple o no las especificaciones que se le hayan impuesto. Para ello basta con definir un vector de frecuencias que vaya desde f0 (la frecuencia inicial que nos interese) hasta ff (la frecuencia final que nos interese, siempre teniendo en cuenta que ff<<fsim/2). Para definir este vector haremos:
» f=f0:fstep:ff;
Donde fstep es el paso entre frecuencias.
Ahora calculamos la respuesta del filtro para cada una de las frecuencias anteriores mediante:
» H=freqz(b,a,f,fsim);
siendo b y a los coeficientes del filtro obtenidos en el diseño y fsim la frecuencia que usaremos para la simulación. H resultará en un vector conteniendo la respuesta en frecuencia (módulo y fase) para cada una de las frecuencias contenidas en f.
Por último, para ver el resultado podemos ordenar a Matlab que dibuje el módulo del filtro diseñado:
» plot(f,abs(H));
Con lo que resulta posible observar el diseño y ver si verifica o no correctamente las especificaciones. Si se desea, también se puede ver la respuesta del filtro en decibelios:
» plot(f,20*log10(abs(H)));
lo que probablemente facilite (utilizando la función zoom si es preciso) comprobar que el filtro cumple las especificaciones señaladas.
V. Tarea asignada
Diseño de un filtro pasabajos para limpiar nuestro sistema de Voz corrupto
Grafique su señal de voz adquirida en el espectro de frecuencia. Utilice el comando fft().
Grafique su señal de voz distorsionada en el espectro de frecuencia. Que diferencias existen con el espectro de frecuencias del paso a.
 
Diseñe un filtro paso bajo Chevysheb con las siguientes características:
• Atenuación (o rizado) máximo en la banda de paso: 1 dB
• Atenuación (o rizado) mínimo en la banda atenuada: 40 dB
• Frecuencia de final de la banda de paso: 9000 Hz
• Frecuencia de inicio de la banda atenuada: 10000 Hz
• La frecuencia de simulación a utilizar es 70000 Hz
Que orden de filtro sale y cuáles son los coeficientes del filtro?
Grafique la función de trasferencia del filtro 
Filtre la señal de voz distorsionada, ¿Este filtro ha sido capaz de solucionar el problema de distorsión y recuperar la señal de voz original?. Verifique en el espectro de frecuencia si se soluciono el problema, de no ser así ajuste los parámetros del filtro para eliminar la distorsión.
Filtre la señal de la voz con Ruido producida en la primera sección para que solo este presente el tono de 12 KHz ? Verifique el funcionamiento y grafique la respuesta del tipo de filtro diseñado.
�

Continuar navegando