7
1 UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES ANALISIS DE SEÑALES CON MATLAB GUIA DE LABORATORIO 01.- Generación de tonos y verificación del proceso de muestreo clc fs = input('Ingrese la frecuencia de muestreo fs = '); Ts = 1/fs; %Definir periodo de muestreo T = input('Ingrese la duración T del tono (segundos = '); N = T/Ts; %Definir el número de muestras (T = N x Ts) disp('Número de muestras: ') N tn = 0:Ts:(T-Ts); %Generar vector contenido instantes de muestreo %n varía de 1 a N %Definición de tono ft=input('Ingrese la frecuencia del tono ft = '); y = sin(2*pi*ft*tn); %Grabar el tono en formato WAV File_tono = input('Ingrese nombre de archivo para guardar: ','s'); wavwrite(y,fs,File_tono) %plot(tn,y) %Graficar la señal en el tiempo stem(tn,y) ylim([-1,1]) xlabel('Tiempo (s)') ylabel('Amplitud') sound(y,fs) %Reproducirla por parlante %Visualizar dos periodos del tono T2 = 2/ft; %Definir duración de dos periodos del tono N2 = T2/Ts; %Número de muestras en ese tiempo tn2 = tn(1:N2); %Vector de tiempos y2 = y(1:N2); %Vector de amplitudes stem(tn2,y2) %Gráfica ylim([-1,1]) %Límites en eje vertical Ejecute el programa a distintas frecuencias de muestreo (ver Tabla 1). La frecuencia del mensaje debe ser la misma en todos los casos. La duración del tono es de 2 s para todos los casos. Grabe cada caso del siguiente modo: tono_450_1200.wav 450 Frecuencia del tono 1200 Frecuencia de muestreo Responda: a) ¿Se escucha igual el tono a cualquier frecuencia de muestreo? b) ¿Es posible que la señal no se escuche luego de muestrearla? c) ¿Se cumple el teorema de Nyquist para una señal tono? Edgard Oporto - 2011

Analisis de Señales Con Matlab - Guía de Laboratorio

Embed Size (px)

DESCRIPTION

Guía de laboratorio del uso del MatLab.Para la generación del espectro de una señal en el dominio de la frecuencia, dominio de la fase, entre otros. Haciendo uso de los códigos y programación que podrás encontrar en este documento.

Citation preview

Page 1: Analisis de Señales Con Matlab - Guía de Laboratorio

1

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEÑALES CON MATLABGUIA DE LABORATORIO

01.- Generación de tonos y verificación del proceso de muestreoclcfs = input('Ingrese la frecuencia de muestreo fs = ');Ts = 1/fs; %Definir periodo de muestreo T = input('Ingrese la duración T del tono (segundos = ');N = T/Ts; %Definir el número de muestras (T = N x Ts)disp('Número de muestras: ')N tn = 0:Ts:(T-Ts); %Generar vector contenido instantes de muestreo %n varía de 1 a N %Definición de tonoft=input('Ingrese la frecuencia del tono ft = ');y = sin(2*pi*ft*tn); %Grabar el tono en formato WAVFile_tono = input('Ingrese nombre de archivo para guardar: ','s');wavwrite(y,fs,File_tono) %plot(tn,y) %Graficar la señal en el tiempostem(tn,y)ylim([-1,1])xlabel('Tiempo (s)')ylabel('Amplitud')sound(y,fs) %Reproducirla por parlante %Visualizar dos periodos del tonoT2 = 2/ft; %Definir duración de dos periodos del tonoN2 = T2/Ts; %Número de muestras en ese tiempotn2 = tn(1:N2); %Vector de tiemposy2 = y(1:N2); %Vector de amplitudesstem(tn2,y2) %Gráficaylim([-1,1]) %Límites en eje vertical

Ejecute el programa a distintas frecuencias de muestreo (ver Tabla 1).La frecuencia del mensaje debe ser la misma en todos los casos.La duración del tono es de 2 s para todos los casos.

Grabe cada caso del siguiente modo: tono_450_1200.wav450 Frecuencia del tono1200 Frecuencia de muestreo

Responda:a) ¿Se escucha igual el tono a cualquier frecuencia de muestreo?b) ¿Es posible que la señal no se escuche luego de muestrearla?c) ¿Se cumple el teorema de Nyquist para una señal tono?

2.- Lectura de archivos de sonido en formato WAV

Edgard Oporto - 2011

Page 2: Analisis de Señales Con Matlab - Guía de Laboratorio

2

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEÑALES CON MATLABGUIA DE LABORATORIO

%y = wavread('welcomm98');[y,Fs,bits] = wavread('DEU.WAV'); %Lea el archivo de sonido

Respecto al sonido, responda:Frecuencia de muestreo Fs =Periodo de muestreo Ts =Bits por muestra bits = Número de muestras N = %Use el comando size(y)Número de canales Canales = %Use el comando size(y)

Graficar el sonido leído en la variable y.plot(y)

Responda:¿Qué representa el eje horizontal en la gráfica obtenida?

___________________________________________________________________________________________

¿Cómo graficaría el sonido en función del tiempo?Grafique el sonido anterior para t=0 hasta t=2 s

Ts=1/Fs;t=0:1/Fs:(2*Fs-1)*Ts; figure(2)y2=y(1:2*Fs);plot(t,y2)

Reproduzca el sonidosound(y2)

¿El tiempo de reproducción fue de 2 s tal como se esperaba? __________________________________________Vea la ayuda del comando sound.

help sound

Reproduzca el sonido de este modo:sound(y2, Fs)

¿Qué frecuencia de muestreo asume Matlab por defecto? _____________________________________________

3.- Efectos de sonido variando la frecuencia de reproducciónDe la librería de sonidos, seleccione dos archivos conteniendo música, sonidos humano o de animales.Lea los archivos en una variable y determine todos sus parámetros.

Frecuencia de muestreo Fs =Periodo de muestreo Ts =Bits por muestra bits = Número de muestras N = %Use el comando size(y)Número de canales Canales = 1 %Use el comando size(y)Duración (pocos segundos) T =

Ahora, reproduzca los sonidos pero modificando la frecuencia de reproducción original.

a) Al triple velocidad

Edgard Oporto - 2011

Page 3: Analisis de Señales Con Matlab - Guía de Laboratorio

3

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEÑALES CON MATLABGUIA DE LABORATORIO

b) Diez veces más rápidoc) A mitad de velocidad

04.- Usando la expresión:

y(t) =Acos(wt) = Acos(2¶ f t)

Genere señales multitono de 1 segundo de duración correspondiente a los tonos DTMF de los sistemas telefónicos (ver Tabla 2).

05.- Generación y reproducción de una señal de audio estéreo.Genere una matriz de dos columnas, cada una con una señal distinta y envíela a los parlantes con el comando SOUND.

fs = 44000 %Definimos la frecuencia de muestreoTs = 1/fs %Definimos el periodo de muestreoT = 3 %Duración del sonidotn = 0:Ts:T %Generación de los instantes de muestreo %(vector fila)x1 = sin(2*pi*1340*tn); %Generación de las señales x2 = sin(2*pi*940*tn); x1=x1' %Transpuestax2=x2'x3=[x1 x2] %Se forma una matriz de dos columnassound(x3)

Ingrese a propiedades de sonido del sistema operativo y verifique que cada parlante emite un sonido distinto.¿A qué frecuencia de muestreo está reproduciendo el comando sound? __________________________________

06.- Lea dos archivos de la librería de sonidos.Archivo 1: MusicaArchivo 2: Conversación o habla humanaAmbos deben ser de un solo canal (mono).Ambos deben tener la misma frecuencia de muestreo.

Forme una matriz de sonidos estéreo.Recorte una de las señales si fuera necesario para que sean de la misma duración.

Reprodúzcalo y compruebe que un parlante emite la música y el otro el habla.

07.- Desarrolle un programa que genere una onda senoidal de frecuencia creciente en el tiempo hasta los 10KHz.

fs = 44000 %Definimos la frecuencia de muestreoTs = 1/fs %Definimos el periodo de muestreoT = 8; %Duración del sonidotn = 0:Ts:T; %Generación de los instantes de muestreo rampa=2000*tn/T; rampa=tn/T; %Varía de 0 a 1x1 = sin(2*pi*10000*rampa.*tn) %Generación de la señal plot(tn,x1)plot(tn,x1)sound(x1,fs)

08.- Modifique el programa anterior tal que se escuche las mismas frecuencia pero en forma decreciente.

Edgard Oporto - 2011

Page 4: Analisis de Señales Con Matlab - Guía de Laboratorio

4

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEÑALES CON MATLABGUIA DE LABORATORIO

09.- Manejo de sonidos estéreo.Seleccione, de la libraría de sonidos, un archivo estéreo de algunos segundos de duración.

[s fs]=wavread('asd.wav');fslength(s)Duracion=length(s)*(1/fs) %Duración en segundos%wavplay(s,fs)Canal_L=s(:,1); %Canal izquierdoCanal_R=s(:,2); %Canal derecholength(Canal_L) %Cantidad de muestraswavplay(Canal_L,fs) %Reproducción a velocidad normalwavplay(Canal_L,2*fs) %Reproducción a doble velocidadwavplay(Canal_L,.8*fs) %Reproducción a 0.8 de velocidad

subplot(3,1,1) &Formas de ondaplot(s)subplot(3,1,2)plot(Canal_L)subplot(3,1,3)plot(Canal_R)

Inversión del sonido>>s_inv=Canal_R(end:-1:1)>>wavplay(s_inv,fs)

Eliminación de muestras>>s_di=canal_L(1:2:end)>>wavplay(s_di,fs)

Grabación en archivo>>wavwrite(s_di,fs,’salida3.wav’)>>wavplay(s_di,fs)

09.- Ubique el archivo palíndromo“DABALE ARROZ A LA ZORRA EL ABAD”A mamá Roma le aviva el a amor a Papá y a Papá Roma le aviva el amor a Mamá.Eva usaba rímel y le miraba suave.La ruta nos aportó otro paso natural.Le avisará Sara si va él.Sometamos o matemos.Adán no cede con Eva y Yavé no cede con nada.

Lea el archivo de sonido desde Matlab:[y fs]=wavread('palindromo.wav');

Obtenga la longitud o cantidad de muestras:Tamano=length(y)

Invierta las muestras y reprodúzcala invertida y luego la original.z=y(end:-1:1)sound(z,fs)pausesound(y,fs)

Grafique ambas señales en el dominio del tiempo y compárelas

Edgard Oporto - 2011

Page 5: Analisis de Señales Con Matlab - Guía de Laboratorio

5

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEÑALES CON MATLABGUIA DE LABORATORIO

10.- Espectro de frecuencia de dos senoidales con ruidoclcFs = 8000; %Frecuencia de muestreoT = 1/Fs; %Periodo de muestreoL = 1000; %cantidad de muestrast = (0:L-1)*T; %Vector de tiempos

%Suma de dos ondas %Multiplique todo por: .*cos(2*pi*1000*t) para AMx = (0.7*sin(2*pi*50*t) + sin(2*pi*120*t)); y=x; %plot(Fs*t(1:50),y(1:50))plot(1000*t(1:100),y(1:100)) %x1000 aparece en mili segundostitle('Señal sin ruido')xlabel('Tiempo (ms)') y = x + 1*randn(size(t)); %Se agrega ruidofigure(2)plot(1000*t(1:100),y(1:100)) %x1000 aparece en mili segundostitle('Señal con ruido')xlabel('Tiempo (ms)') %Transformada de FourierNFFT = 2^nextpow2(L); %Cantidad de puntos de frecuencia (siguiente potencia de 2 de L)Y = fft(y,NFFT); %f = Fs/2*linspace(0,1,NFFT/2); %Rango hasta Fs/2 (+) %Gráfica del espectro (frecuencias positivas)plot(f,abs(Y(1:NFFT/2))) title('Espectro de amplitud de y(t)')xlabel('Frequencia (Hz)')ylabel('|Y(f)|') Aumente el nivel de ruido y verifique la respuesta

11.- Abra un archivo de sonido de la librería y obtenga su espectro de frecuencia.clc%Datos de sonido[x,Fs,bits] = wavread('sonidos\DEU.WAV');disp('Frecuencia de muestreo: ')Fs %Frecuencia de muestreoT = 1/Fs; %Periodo de muestreoL = length(x); %cantidad de muestrast = (0:L-1)*T; %Vector de tiempos y=x;plot(y)title('Señal sin ruido')xlabel('Tiempo (ms)') %Transformada de FourierNFFT = 2^nextpow2(L); %Cantidad de puntos de frecuencia (siguiente potencia de 2 de L)Y = fft(y,NFFT); %f = Fs/2*linspace(0,1,NFFT/2); %Rango hasta Fs/2 (+)

Edgard Oporto - 2011

Page 6: Analisis de Señales Con Matlab - Guía de Laboratorio

6

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEÑALES CON MATLABGUIA DE LABORATORIO

%Gráfica del espectro (frecuencias positivas)plot(f,abs(Y(1:NFFT/2))) title('Espectro de amplitud de y(t)')xlabel('Frequencia (Hz)')ylabel('|Y(f)|')

12.- Obtenga los espectros de frecuencia de otros archivos de sonido.

13.- Grabación de audio desde micrófono.clcFs = 11025;y = wavrecord(5*Fs, Fs, 1);wavplay(y,Fs)plot(y)

Edgard Oporto - 2011