19
Programación y Simulación Avanzada (L110) Tema: 9 Ing. José C. Benítez P. Procesamiento de señales con MatLab

_UTP_PYSA_T9_Procesamiento de Señales con MatLab

Embed Size (px)

Citation preview

Programación y Simulación Avanzada(L110)

Programación y Simulación Avanzada(L110)

Tema: 9

Ing. José C. Benítez P.

Procesamiento de señales con MatLab

Índice

Procesamiento de Señales con MatLab I Objetivo Ejercicios Tarea

Procesamiento de Señales con MatLab I Objetivo Ejercicios Tarea

Programación y Simulación Avanzada

Objetivos

El alumno debe demostrar destreza en la adquisiciónde distintos tipos de señales de audio en Matlabpara poder almacenarlas, leerlas,, reproducirlas,procesarlas y mostrar sus características.

Al finalizar el alumno debe demostrar capacidad parahallar y mostrar las componentes armónicas de lasseñales de audio.

El alumno debe demostrar destreza en la adquisiciónde distintos tipos de señales de audio en Matlabpara poder almacenarlas, leerlas,, reproducirlas,procesarlas y mostrar sus características.

Al finalizar el alumno debe demostrar capacidad parahallar y mostrar las componentes armónicas de lasseñales de audio.

Programación y Simulación Avanzada

Ejercicios

Procesamiento de señales de audio con MatLab1. Captura de las señales de audio en MatLab:

Para capturar una señal de audio por la entrada MIC (micrófono) delcomputador, MatLab cuenta con la función

wavrecord(t*Fs,Fs,Ch)

t es el tiempo en segundos de captura de la señalFs es la frecuencia de muestreo (8000, 11025, 22050 y 44100)Ch es el tipo de canal (1: mono y 2: estéreo).

Al capturar asignarle a una variable para su posterior procesamiento.Ejemplo:Capturar una señal de audio en estéreo con 20 segundos de duración, conuna frecuencia de muestreo de 11025:Fs = 11025;y = wavrecord(20*Fs, Fs, 2);

La captura se ha asignado a la variable vectorial y.

Procesamiento de señales de audio con MatLab1. Captura de las señales de audio en MatLab:

Para capturar una señal de audio por la entrada MIC (micrófono) delcomputador, MatLab cuenta con la función

wavrecord(t*Fs,Fs,Ch)

t es el tiempo en segundos de captura de la señalFs es la frecuencia de muestreo (8000, 11025, 22050 y 44100)Ch es el tipo de canal (1: mono y 2: estéreo).

Al capturar asignarle a una variable para su posterior procesamiento.Ejemplo:Capturar una señal de audio en estéreo con 20 segundos de duración, conuna frecuencia de muestreo de 11025:Fs = 11025;y = wavrecord(20*Fs, Fs, 2);

La captura se ha asignado a la variable vectorial y.

Programación y Simulación Avanzada

Ejercicios

2. Guardar las señales de audio en MatLab:Para guardar una señal capturada en formato WAV se usa la función:

wavwrite(y,Fs,NBits,'Nombre.wav') ;

y es la variable que contiene el archivo WAVFs es la frecuencia de muestreo,NBits el número de bits (8, 16, 24 o 32) yNombre.wav es el nombre del archivo en el que se grabará el sonido.

Observaciones:- Los valores de amplitud que estén 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');

2. Guardar las señales de audio en MatLab:Para guardar una señal capturada en formato WAV se usa la función:

wavwrite(y,Fs,NBits,'Nombre.wav') ;

y es la variable que contiene el archivo WAVFs es la frecuencia de muestreo,NBits el número de bits (8, 16, 24 o 32) yNombre.wav es el nombre del archivo en el que se grabará el sonido.

Observaciones:- Los valores de amplitud que estén 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');

Programación y Simulación Avanzada

Ejercicios

3. Leer las señales de audio desde un archivo WAV en MatLab:Para leer un archivo de sonido almacenado en formato WAV seutiliza el comando:

z = wavread(‘sonido_uno.wav‘);Se debe asignar a una variable vectorial para su procesamientoposterior.

Programación y Simulación Avanzada

Ejercicios

4. Reproducir las señales de audio desde una variable vectorial en MatLab:Para reproducir un archivo de sonido almacenado en una variable vectorialse utiliza el comando:

sound(z);z es la variable vectorial que contiene el archivo de sonido sonido_uno.wavcuya 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 están dentro del rango [-1,1] ya que los valoresque están fuera del rango son clipeados.

sound(z,Fs,Bits);

Reproduce z con una frecuencia de muestreo Fs definida por el usuario ydeterminados número de Bits por muestra.Ejemplo: sound(z,11025,4);

4. Reproducir las señales de audio desde una variable vectorial en MatLab:Para reproducir un archivo de sonido almacenado en una variable vectorialse utiliza el comando:

sound(z);z es la variable vectorial que contiene el archivo de sonido sonido_uno.wavcuya 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 están dentro del rango [-1,1] ya que los valoresque están fuera del rango son clipeados.

sound(z,Fs,Bits);

Reproduce z con una frecuencia de muestreo Fs definida por el usuario ydeterminados número de Bits por muestra.Ejemplo: sound(z,11025,4);

Programación y Simulación Avanzada

Ejercicios

5. Información sobre las señales de audio en formato WAV enMatLab: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 muestreoNbits almacena el número de bits utilizados para cada muestradel archivo con formato wav.

Si se desea saber la dimensión de los canales del archivo enformato wav, se utiliza el siguiente comando:

t = wavread('file.wav','size')

t se almacena la dimensión del archivo en formato wav.

5. Información sobre las señales de audio en formato WAV enMatLab: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 muestreoNbits almacena el número de bits utilizados para cada muestradel archivo con formato wav.

Si se desea saber la dimensión de los canales del archivo enformato wav, se utiliza el siguiente comando:

t = wavread('file.wav','size')

t se almacena la dimensión del archivo en formato wav.

Programación y Simulación Avanzada

Ejercicios

6. Cortando las señales 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 información adicional contenida en unarchivo de formato wav, como el copyright o el título, se empleael siguiente comando

[y,Fs,NBits,Opts]=wavread('file.wav');

y almacenan los valores del vectorFs almacena la frecuencia de muestreo,Nbits almacena el número de bits por muestraOpts almacena el resto de la información.

6. Cortando las señales 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 información adicional contenida en unarchivo de formato wav, como el copyright o el título, se empleael siguiente comando

[y,Fs,NBits,Opts]=wavread('file.wav');

y almacenan los valores del vectorFs almacena la frecuencia de muestreo,Nbits almacena el número de bits por muestraOpts almacena el resto de la información.

Programación y Simulación Avanzada

Ejercicios

7. Tamaño y dimensión vectorial de las señales de audio enformato WAV en MatLab:length(v)

retorna 42860length(f)

retorna 97074

Dimensión vectorialsize(v)

retorna 42860X1, lo que indica que es una señal monofónica.size(f)

retorna 97064X1, lo que indica que es una señal monofónica.

7. Tamaño y dimensión vectorial de las señales de audio enformato WAV en MatLab:length(v)

retorna 42860length(f)

retorna 97074

Dimensión vectorialsize(v)

retorna 42860X1, lo que indica que es una señal monofónica.size(f)

retorna 97064X1, lo que indica que es una señal monofónica.

Programación y Simulación Avanzada

Ejercicios

8. Gráfico espectral de señales:Capturar los sonidos del violín y de la flauta utilizando en comandowavwrite en los archivos violin.wav y flauta.wav respectivamente.Leer los archivos violin.wav y flauta.wav en las variables vectoriales vy f respectivamente con el comando wavread.

Programación y Simulación Avanzada

Ejemplo

Problema:Hacer una gráfica espectral de las señales de unviolín y una flauta, además se desea saber cuál es lacantidad de las muestras y si las señales capturadastienen uno o dos canales.

Problema:Hacer una gráfica espectral de las señales de unviolín y una flauta, además se desea saber cuál es lacantidad de las muestras y si las señales capturadastienen uno o dos canales.

Programación y Simulación Avanzada

Ejercicios

SOLUCION:Adquisición de señales 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 señales 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');

SOLUCION:Adquisición de señales 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 señales 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');

Programación y Simulación Avanzada

EjerciciosRESULTADOS:En los gráficos se observan la cantidad de componentes armónicas para estos dos instrumentos.

Programación y Simulación Avanzada

TareaI. Adquisición de señales de audio

Obtener 03 señales 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 niño pronunciando sus nombres y apellidos.c. sonido3 de la voz de una niña pronunciando sus nombres y apellidos.d. sonido4 de ladrido de un perro.e. sonido5 de una puerta vieja cerrándose.

Ejemplo de nombre de archivo: sonido144k1b32c.wavEs 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.

I. Adquisición de señales de audioObtener 03 señales 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 niño pronunciando sus nombres y apellidos.c. sonido3 de la voz de una niña pronunciando sus nombres y apellidos.d. sonido4 de ladrido de un perro.e. sonido5 de una puerta vieja cerrándose.

Ejemplo de nombre de archivo: sonido144k1b32c.wavEs 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.

Programación y Simulación Avanzada

TareaII. Procesamiento digital de señales de audio

Realizar procesamiento de cada una de las señales (05) de audio obtenidas:a. Reproducir cada uno de las señales de audio obtenidas. Comentar

diferencias.b. Mostrar el gráfico en el dominio del tiempo de cada señal obtenida.

Comentar resultados.c. Mostrar el espectro de frecuencias de cada señal obtenida. Comentar

resultados.d. Convertir cada una se las señales(05) a diferentes frecuencia de

muestreo (8000, 11025, 22050 y 44100 hertz) y guardarlas (5x4=20señales).

e. Realizar a, b y c con las nuevas señales.f. Con cada señal (20) obtenida en “d” grabar a diferentes números de

bits (8, 16, 24 y 32 bits) y guardarlas (20x4=80 señales).g. Realizar a, b y c con las nuevas señales.h. Cortar cada una de las señales obtenidas en I (5) en “g” a 3000

muestras y guardarlas.i. Realizar a, b y c con las nuevas señales.

II. Procesamiento digital de señales de audioRealizar procesamiento de cada una de las señales (05) de audio obtenidas:a. Reproducir cada uno de las señales de audio obtenidas. Comentar

diferencias.b. Mostrar el gráfico en el dominio del tiempo de cada señal obtenida.

Comentar resultados.c. Mostrar el espectro de frecuencias de cada señal obtenida. Comentar

resultados.d. Convertir cada una se las señales(05) a diferentes frecuencia de

muestreo (8000, 11025, 22050 y 44100 hertz) y guardarlas (5x4=20señales).

e. Realizar a, b y c con las nuevas señales.f. Con cada señal (20) obtenida en “d” grabar a diferentes números de

bits (8, 16, 24 y 32 bits) y guardarlas (20x4=80 señales).g. Realizar a, b y c con las nuevas señales.h. Cortar cada una de las señales obtenidas en I (5) en “g” a 3000

muestras y guardarlas.i. Realizar a, b y c con las nuevas señales.

Programación y Simulación Avanzada

Informe de Laboratorio 9 Indicaciones sobre el Informe de Laboratorio:

Se presentará con el desarrollo de todos los ejerciciosdesarrollados y preguntas de esta presentación.

Debe ser básicamente un documento gráfico en loposible.

Lo mas importante de un informe de laboratorio son losconclusiones, comentarios y observaciones.

Se presenta en formato digital en su carpeta personal deldropbox.

Adjuntar en su carpeta personal del dropbox : Los códigos (archivos *.m) con los comentarios solicitados. Los archivos de audio obtenidos. Si han utilizado fuentes adicionales.

Indicaciones sobre el Informe de Laboratorio: Se presentará con el desarrollo de todos los ejercicios

desarrollados y preguntas de esta presentación. Debe ser básicamente un documento gráfico 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 códigos (archivos *.m) con los comentarios solicitados. Los archivos de audio obtenidos. Si han utilizado fuentes adicionales.

Programación y Simulación Avanzada

Presentación

Todas las fuentes, archivos utilizados y el Informe debenpresentarse en su carpeta personal del Dropbox, dentro de unacarpeta que lleve las iniciales del curso, sus Apellidos, guionbajo y luego el numero de laboratorio. Ejemplo:

PYSA_PaternoM_T9 Si adjunta fuentes adicionales, debe conservar el nombre

original y agregar _t9.

Todas las fuentes, archivos utilizados y el Informe debenpresentarse en su carpeta personal del Dropbox, dentro de unacarpeta que lleve las iniciales del curso, sus Apellidos, guionbajo 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 indicacionesno serán evaluados por el profesor.

Programación y Simulación Avanzada

Agradecimiento

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

Programación y Simulación Avanzada