Está en la página 1de 6

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA

CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEALES CON MATLAB


GUIA DE LABORATORIO
01.- Generacin de tonos y verificacin del proceso de muestreo
clc
fs = input('Ingrese la frecuencia de muestreo fs = ');
Ts = 1/fs;
%Definir periodo de muestreo
T = input('Ingrese la duracin T del tono (segundos = ');
N = T/Ts;
%Definir el nmero de muestras (T = N x Ts)
disp('Nmero de muestras: ')
N
tn = 0:Ts:(T-Ts);

%Generar vector contenido instantes de muestreo


%n vara de 1 a N

%Definicin 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 seal 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 duracin de dos periodos del tono
N2 = T2/Ts;
%Nmero de muestras en ese tiempo
tn2 = tn(1:N2);
%Vector de tiempos
y2 = y(1:N2);
%Vector de amplitudes
stem(tn2,y2)
%Grfica
ylim([-1,1])
%Lmites 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 duracin 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 seal no se escuche luego de muestrearla?
c) Se cumple el teorema de Nyquist para una seal tono?

2.- Lectura de archivos de sonido en formato WAV


%y = wavread('welcomm98');

Edgard Oporto - 2011

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA


CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEALES CON MATLAB


GUIA DE LABORATORIO
[y,Fs,bits] = wavread('DEU.WAV');
Respecto al sonido, responda:
Frecuencia de muestreo
Periodo de muestreo
Bits por muestra
Nmero de muestras
Nmero de canales

%Lea el archivo de sonido

Fs
Ts
bits
N

=
=
=
=
Canales =

%Use el comando size(y)


%Use el comando size(y)

Graficar el sonido ledo en la variable y.


plot(y)
Responda:
Qu representa el eje horizontal en la grfica obtenida?
___________________________________________________________________________________________
Cmo graficara el sonido en funcin 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 sonido
sound(y2)
El tiempo de reproduccin 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 reproduccin
De la librera de sonidos, seleccione dos archivos conteniendo msica, sonidos humano o de animales.
Lea los archivos en una variable y determine todos sus parmetros.
Frecuencia de muestreo
Periodo de muestreo
Bits por muestra
Nmero de muestras
Nmero de canales
Duracin (pocos segundos)

Fs
Ts
bits
N

=
=
=
=
Canales = 1
T
=

%Use el comando size(y)


%Use el comando size(y)

Ahora, reproduzca los sonidos pero modificando la frecuencia de reproduccin original.


a) Al triple velocidad
b) Diez veces ms rpido
c) A mitad de velocidad

Edgard Oporto - 2011

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA


CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEALES CON MATLAB


GUIA DE LABORATORIO

04.- Usando la expresin:

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


Genere seales multitono de 1 segundo de duracin correspondiente a los tonos DTMF de los sistemas
telefnicos (ver Tabla 2).
05.- Generacin y reproduccin de una seal de audio estreo.
Genere una matriz de dos columnas, cada una con una seal distinta y envela a los parlantes con el comando
SOUND.
fs = 44000
%Definimos la frecuencia de muestreo
Ts = 1/fs
%Definimos el periodo de muestreo
T = 3
%Duracin del sonido
tn = 0:Ts:T
%Generacin de los instantes de muestreo
x1 = sin(2*pi*1340*tn); %Generacin de las seales
x2 = sin(2*pi*940*tn);
x1=x1'
%Transpuesta
x2=x2'
x3=[x1 x2]
%Se forma una matriz de dos columnas
sound(x3)

%(vector fila)

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 librera de sonidos.
Archivo 1: Musica
Archivo 2: Conversacin o habla humana
Ambos deben ser de un solo canal (mono).
Ambos deben tener la misma frecuencia de muestreo.
Forme una matriz de sonidos estreo.
Recorte una de las seales si fuera necesario para que sean de la misma duracin.
Reprodzcalo y compruebe que un parlante emite la msica 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 muestreo
Ts = 1/fs
%Definimos el periodo de muestreo
T = 8;
%Duracin del sonido
tn = 0:Ts:T;
%Generacin de los instantes de muestreo rampa=2000*tn/T;
rampa=tn/T;
%Vara de 0 a 1
x1 = sin(2*pi*10000*rampa.*tn)
%Generacin de la seal 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.
09.- Manejo de sonidos estreo.
Seleccione, de la librara de sonidos, un archivo estreo de algunos segundos de duracin.
[s fs]=wavread('asd.wav');

Edgard Oporto - 2011

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA


CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEALES CON MATLAB


GUIA DE LABORATORIO
fs
length(s)
Duracion=length(s)*(1/fs)
%wavplay(s,fs)
Canal_L=s(:,1);
Canal_R=s(:,2);
length(Canal_L)
wavplay(Canal_L,fs)
wavplay(Canal_L,2*fs)
wavplay(Canal_L,.8*fs)
subplot(3,1,1)
plot(s)
subplot(3,1,2)
plot(Canal_L)
subplot(3,1,3)
plot(Canal_R)

%Duracin en segundos
%Canal izquierdo
%Canal derecho
%Cantidad de muestras
%Reproduccin a velocidad normal
%Reproduccin a doble velocidad
%Reproduccin a 0.8 de velocidad
&Formas de onda

Inversin del sonido


>>s_inv=Canal_R(end:-1:1)
>>wavplay(s_inv,fs)
Eliminacin de muestras
>>s_di=canal_L(1:2:end)
>>wavplay(s_di,fs)
Grabacin en archivo
>>wavwrite(s_di,fs,salida3.wav)
>>wavplay(s_di,fs)
09.- Ubique el archivo palndromo
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 rmel y le miraba suave.
La ruta nos aport otro paso natural.
Le avisar Sara si va l.
Sometamos o matemos.
Adn 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 reprodzcala invertida y luego la original.
z=y(end:-1:1)
sound(z,fs)
pause
sound(y,fs)
Grafique ambas seales en el dominio del tiempo y comprelas
10.- Espectro de frecuencia de dos senoidales con ruido
clc
Fs = 8000;
%Frecuencia de muestreo
T = 1/Fs;
%Periodo de muestreo
L = 1000;
%cantidad de muestras

Edgard Oporto - 2011

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA


CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEALES CON MATLAB


GUIA DE LABORATORIO
t = (0:L-1)*T;

%Vector de tiempos

%Suma de dos ondas


%Multiplique todo por: .*cos(2*pi*1000*t) para AM
x = (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))
title('Seal sin ruido')
xlabel('Tiempo (ms)')
y = x + 1*randn(size(t));
figure(2)
plot(1000*t(1:100),y(1:100))
title('Seal con ruido')
xlabel('Tiempo (ms)')

%x1000 aparece en mili segundos

%Se agrega ruido

%Transformada de Fourier
NFFT = 2^nextpow2(L);
de 2 de L)
Y = fft(y,NFFT);
f = Fs/2*linspace(0,1,NFFT/2);

%x1000 aparece en mili segundos

%Cantidad de puntos de frecuencia (siguiente potencia


%
%Rango hasta Fs/2 (+)

%Grfica 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 librera y obtenga su espectro de frecuencia.
clc
%Datos de sonido
[x,Fs,bits] = wavread('sonidos\DEU.WAV');
disp('Frecuencia de muestreo: ')
Fs
%Frecuencia de muestreo
T = 1/Fs;
%Periodo de muestreo
L = length(x);
%cantidad de muestras
t = (0:L-1)*T;
%Vector de tiempos
y=x;
plot(y)
title('Seal sin ruido')
xlabel('Tiempo (ms)')
%Transformada de Fourier
NFFT = 2^nextpow2(L);
de 2 de L)
Y = fft(y,NFFT);
f = Fs/2*linspace(0,1,NFFT/2);

%Cantidad de puntos de frecuencia (siguiente potencia


%
%Rango hasta Fs/2 (+)

%Grfica del espectro (frecuencias positivas)


plot(f,abs(Y(1:NFFT/2)))
title('Espectro de amplitud de y(t)')

Edgard Oporto - 2011

UNIVERSIDAD NACIONAL TECNOLOGICA DEL CONO SUR DE LIMA


CARRERA PROFESIONAL DE INGENIERIA ELECTRONICA Y TELECOMUNICACIONES

ANALISIS DE SEALES CON MATLAB


GUIA DE LABORATORIO
xlabel('Frequencia (Hz)')
ylabel('|Y(f)|')

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


13.- Grabacin de audio desde micrfono.
clc
Fs = 11025;
y = wavrecord(5*Fs, Fs, 1);
wavplay(y,Fs)
plot(y)

Edgard Oporto - 2011

También podría gustarte