You are on page 1of 19

Programacin y Simulacin Avanzada (L110)

Tema: 9
Procesamiento de seales con MatLab

Ing. Jos C. Bentez P.

ndice
Procesamiento de Seales con MatLab I Objetivo Ejercicios Tarea

Programacin y Simulacin Avanzada

Objetivos
El alumno debe demostrar destreza en la adquisicin de distintos tipos de seales de audio en Matlab para poder almacenarlas, leerlas,, reproducirlas, procesarlas y mostrar sus caractersticas. Al finalizar el alumno debe demostrar capacidad para hallar y mostrar las componentes armnicas de las seales de audio.

Programacin y Simulacin Avanzada

Ejercicios
Procesamiento de seales de audio con MatLab 1. Captura de las seales de audio en MatLab: Para capturar una seal de audio por la entrada MIC (micrfono) del computador, MatLab cuenta con la funcin
wavrecord(t*Fs,Fs,Ch) t es el tiempo en segundos de captura de la seal Fs es la frecuencia de muestreo (8000, 11025, 22050 y 44100) Ch es el tipo de canal (1: mono y 2: estreo).

Al capturar asignarle a una variable para su posterior procesamiento. Ejemplo: Capturar una seal de audio en estreo con 20 segundos de duracin, con una frecuencia de muestreo de 11025:
Fs = 11025; y = wavrecord(20*Fs, Fs, 2);

La captura se ha asignado a la variable vectorial y.


Programacin y Simulacin Avanzada

Ejercicios
2. Guardar las seales de audio en MatLab: Para guardar una seal capturada en formato WAV se usa la funcin:
wavwrite(y,Fs,NBits,'Nombre.wav') ; y es la variable que contiene el archivo WAV Fs es la frecuencia de muestreo, NBits el nmero de bits (8, 16, 24 o 32) y Nombre.wav es el nombre del archivo en el que se grabar el sonido.

Observaciones: - Los valores de amplitud que estn fuera del rango [-1,+1] son clipeados. - Si no se especifican los NBits el programa asume por defecto 16 Bits. - Si no se determina una Fs, el programa asume por defecto 8000 Hz. Ejemplo: Guardar el sonido capturado anteriormente.
wavwrite(y,Fs,16,'sonido_uno.wav');

Programacin y Simulacin Avanzada

Ejercicios
3. Leer las seales de audio desde un archivo WAV en MatLab: Para leer un archivo de sonido almacenado en formato WAV se utiliza el comando:
z = wavread(sonido_uno.wav);

Se debe asignar a una variable vectorial para su procesamiento posterior.

Programacin y Simulacin Avanzada

Ejercicios
4. Reproducir las seales de audio desde una variable vectorial en MatLab: Para reproducir un archivo de sonido almacenado en una variable vectorial se utiliza el comando:
sound(z);

z es la variable vectorial que contiene el archivo de sonido sonido_uno.wav cuya frecuencia de muestreo por defecto ser de 8192 Hz.
sound(z,Fs);

Reproduce z con una frecuencia de muestreo Fs. Ejemplo: sound(z,44100); Se asume que los valores estn dentro del rango [-1,1] ya que los valores que estn fuera del rango son clipeados.
sound(z,Fs,Bits);

Reproduce z con una frecuencia de muestreo Fs definida por el usuario y determinados nmero de Bits por muestra. Ejemplo: sound(z,11025,4);
Programacin y Simulacin Avanzada

Ejercicios
5. Informacin sobre las seales de audio en formato WAV en MatLab: Para conocer los datos de un archivo en formato WAV:
[y,Fs,NBits] = wavread('file.wav'); y almacena los valores del vector, Fs almacena la frecuencia de muestreo Nbits almacena el nmero de bits utilizados para cada muestra

del archivo con formato wav.

Si se desea saber la dimensin de los canales del archivo en formato wav, se utiliza el siguiente comando:
t = wavread('file.wav','size') t se almacena la dimensin del archivo en formato wav.

Programacin y Simulacin Avanzada

Ejercicios
6. Cortando las seales de audio en formato WAV en MatLab: Para leer las primeras Num muestras del archivo:
[n]=wavread('file.wav',Num) Num es la cantidad de muestras que se desean tomar del archivo.

Si se desea obtener la informacin adicional contenida en un archivo de formato wav, como el copyright o el ttulo, se emplea el siguiente comando
[y,Fs,NBits,Opts]=wavread('file.wav'); y almacenan los valores del vector Fs almacena la frecuencia de muestreo, Nbits almacena el nmero de bits por muestra Opts almacena el resto de la informacin.

Programacin y Simulacin Avanzada

Ejercicios
7. Tamao y dimensin vectorial de las seales de audio en formato WAV en MatLab:
length(v)

retorna 42860
length(f)

retorna 97074 Dimensin vectorial


size(v)

retorna 42860X1, lo que indica que es una seal monofnica.


size(f)

retorna 97064X1, lo que indica que es una seal monofnica.

Programacin y Simulacin Avanzada

Ejercicios
8. Grfico espectral de seales: Capturar los sonidos del violn y de la flauta utilizando en comando wavwrite en los archivos violin.wav y flauta.wav respectivamente. Leer los archivos violin.wav y flauta.wav en las variables vectoriales v y f respectivamente con el comando wavread.

Programacin y Simulacin Avanzada

Ejemplo
Problema: Hacer una grfica espectral de las seales de un violn y una flauta, adems se desea saber cul es la cantidad de las muestras y si las seales capturadas tienen uno o dos canales.

Programacin y Simulacin Avanzada

Ejercicios
SOLUCION: Adquisicin de seales de audio:
Fs=8000; NBits=16; y=wavrecord(5*FS,Fs,1); z=wavrecord(10*Fs,Fs,1); wavwrite(y,Fs,NBits,violin.wav); wavwrite(z,Fs,NBits,flauta.wav);

Procesamiento de seales de audio:


v=wavread('violin.wav'); f=wavread('flauta.wav'); %sound(v); %sound(f); espv=abs(fft(v)); espf=abs(fft(f)); subplot(4,1,1),plot(0:97073,f),grid on,title('Audio de una flauta'); subplot(4,1,2),plot(espf),grid on,title('Espectro de una flauta'); subplot(4,1,3),plot(0:42859,v),grid on,title('Audio de un violin'); subplot(4,1,4),plot(espv),grid on,title('Espectro de un violin');
Programacin y Simulacin Avanzada

Ejercicios
RESULTADOS:
En los grficos se observan la cantidad de componentes armnicas para estos dos instrumentos.

Programacin y Simulacin Avanzada

Tarea
I. Adquisicin de seales de audio Obtener 03 seales de audio con frecuencias de muestreo de 44100 hz; con un canal. Y almacene con 32 bits: a. sonido1 de su voz pronunciando sus nombres y apellidos. b. sonido2 de la voz de un nio pronunciando sus nombres y apellidos. c. sonido3 de la voz de una nia pronunciando sus nombres y apellidos. d. sonido4 de ladrido de un perro. e. sonido5 de una puerta vieja cerrndose. Ejemplo de nombre de archivo: sonido144k1b32c.wav Es un archivo que corresponde a: Audio: sonido1 Frecuencia de muestreo: 44k (44100) Canales: 1 (Mono) Numero de bits: 32 Cortado: c
NOTA: Los audios no deben ser mayores a 20seg.
Programacin y Simulacin Avanzada

Tarea

II. Procesamiento digital de seales de audio Realizar procesamiento de cada una de las seales (05) de audio obtenidas: a. Reproducir cada uno de las seales de audio obtenidas. Comentar diferencias. b. Mostrar el grfico en el dominio del tiempo de cada seal obtenida. Comentar resultados. c. Mostrar el espectro de frecuencias de cada seal obtenida. Comentar resultados. d. Convertir cada una se las seales(05) a diferentes frecuencia de muestreo (8000, 11025, 22050 y 44100 hertz) y guardarlas (5x4=20 seales). e. Realizar a, b y c con las nuevas seales. f. Con cada seal (20) obtenida en d grabar a diferentes nmeros de bits (8, 16, 24 y 32 bits) y guardarlas (20x4=80 seales). g. Realizar a, b y c con las nuevas seales. h. Cortar cada una de las seales obtenidas en I (5) en g a 3000 muestras y guardarlas. i. Realizar a, b y c con las nuevas seales.
Programacin y Simulacin Avanzada

Informe de Laboratorio 9

Indicaciones sobre el Informe de Laboratorio: Se presentar con el desarrollo de todos los ejercicios desarrollados y preguntas de esta presentacin. Debe ser bsicamente un documento grfico en lo posible. Lo mas importante de un informe de laboratorio son los conclusiones, comentarios y observaciones. Se presenta en formato digital en su carpeta personal del dropbox. Adjuntar en su carpeta personal del dropbox : Los cdigos (archivos *.m) con los comentarios solicitados. Los archivos de audio obtenidos. Si han utilizado fuentes adicionales.
Programacin y Simulacin Avanzada

Presentacin

Todas las fuentes, archivos utilizados y el Informe deben presentarse en su carpeta personal del Dropbox, dentro de una carpeta que lleve las iniciales del curso, sus Apellidos, guion bajo y luego el numero de laboratorio. Ejemplo: PYSA_PaternoM_T9 Si adjunta fuentes adicionales, debe conservar el nombre original y agregar _t9.

Las Tareas que no cumplan las indicaciones no sern evaluados por el profesor.
Programacin y Simulacin Avanzada

Agradecimiento

blog del Curso: http://utppysa.blogspot.com


Programacin y Simulacin Avanzada

You might also like