Sei sulla pagina 1di 18

ESCUELA POLITCNICA NACIONAL

FACULTAD DE INGENIERA ELCTRICA Y ELECTRNICA

LABORATORIO DE COMUNICACIN DIGITAL

PREPARATORIO
Prctica #: 3

Tema: Anlisis espectral en Matlab y Simulink.

Realizado por:

Alumno(s): - Angel Ricardo Torres Cuenca.

Grupo:

GR1

- Patricia Lizbeth Gavilanes Echeverra.


- William Santiago Coloma Gmez.

Fecha de entrega: 19/10/2015

f.______________________

Sancin: _______________________________________________________

Semestre: 2015-B

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

LABORATORIO DE COMUNICACIN DIGITAL


PRCTICA N 3
Tema: Anlisis espectral en Matlab y Simulink.
Objetivos:
- Aplicar los conceptos relacionados a la teora de anlisis de seal en el dominio del tiempo y la
frecuencia.
- Utilizar SIMULINK para analizar seales en el dominio del tiempo y frecuencia.
PREPARATORIO
1. Consultar sobre las funciones de MATLAB para procesamiento de seales: fir1, fir2, buttord,
butter, cheb1ord, cheb2ord, cheby1, cheby2, filter, filtfilt, freqz, pwelch, randy guide. (La
consulta consiste en realizar un prrafo explicativo de 3 o 4 lneas sobre el uso de la funcin,
sus parmetros, y los datos devueltos por la funcin).

fir1:

Se multiplica la respuesta en el tiempo de un filtro ideal con una funcin ventana. Truncando la
respuesta ideal a un nmero finito de elementos.
num=fir1(n,Wp)
n: Orden del filtro
Wp: Vector que contiene las frecuencias de corte.
Si slo tiene un elemento se obtiene un filtro pasabajos y si contiene dos elementos se obtiene un
filtro pasabanda.

fir2

Esta funcin nos permite seleccionar la respuesta frecuencial del filtro.


Ejemplo, filtro pasa bajo:
f = [0 0.6 0.6 1];
m = [1 1 0 0];

b = fir2(30,f,m);
[h,w] = freqz(b,1,128);
plot(f,m,w/pi,abs(h))
legend('Ideal','Diseo fir2')
title('Comparacin entre respuestas en frecuencia')

buttord

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

A partir de las especificaciones de atenuacin mxima en la banda de paso y mnima en la de


rechazo as como de las respectivas frecuencias de corte de cada una de las bandas, nos da el
orden del filtro y la frecuencia natural del filtro.
Es decir, determina el orden del filtro para las especificaciones
[nB,WnB]=buttord(Wp,Ws,Rp,Rs)
Wp, Ws, Rp y Rs corresponden a las especificaciones.
WnB: Frecuencia a -3 dB.

Butter

A partir del orden del filtro y de la frecuencia natural, la funcin butter nos da los polinomios
correspondientes al numerador y al denominador de la funcin de transferencia.
Es decir, Obtiene los coeficientes del filtro.
[numB,denB]=butter[nB,WnB]
En el diseo de filtros Pasabanda o rechazo de banda el orden del filtro resulta ser en realidad el
doble del especificado por el comando buttord.
Los ms usuales son los siguientes:
Butterworth Pasabajas:

[num,den]=butter(nB,Wn)

Butterworth Pasaaltas:

[num,den]=butter(nB,Wn,high)

cheb1ord y cheby1

Filtros IIR proceden directamente de la aplicacin de mtodos que tradicionalmente se han


aplicado en el desarrollo de filtros analgicos tales como eran las aproximaciones de Butterword,
Chebyshev o Elptica.
Matlab dispone de funciones semejantes a las anteriores para el desarrollo de aproximaciones
chebyshev. En este caso, en la aproximacin tipo I de chebyshev o llamada tambin directa, las
funciones a utilizar son la chen1ord y la cheby1.
El orden obtenido a partir de esa funcin, que requiere las mismas entradas de datos que la
correspondiente de la aproximacin Butterword, es de 7. Este orden es muy inferior al de las
anteriores aproximaciones.
[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s')

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

[b,a]=cheby1(n,Rs,Wn)
Regresa el grado mnimo y frecuencia que puede tener el filtro con ciertas caractersticas
deseadas.
Significado de las iniciales:
Wp = Frecuencia de corte, sta debe estar entre 0 y 1 donde .5 sera la frecuencia de muestreo
(teorema de Nyquist).
Ws = Frecuencia de paro, esta es donde la seal es atenuada casi por completo, est en las mismas
unidades de Wp, y est entre 0 y 1.
Rp = Atenuacin del rizo.
Rs = Atenuacin de las frecuencias no deseadas.

cheb2ord y cheby2

Mediante las funciones de matlab cheb2ord y cheby2 obtenemos de forma relativamente sencilla
la aproximacin buscada. Eso se debe a que la forma de obtener una a partir de la otra es
mediante una sencilla transformacin matemtica que implica dejar inalterado el orden de la
aproximacin. El nico cambio que se introduce es que el rizado se traslada a la banda de rechazo
siendo ahora la banda de paso mximamente plana como lo era en el caso de Buterword. Si bien,
el orden es menor pues ahora no tenemos un exceso de atenuacin en la banda de rechazo tan
acentuado como en el caso de la Butterword.
[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs,'s')
[b,a]=cheby2(n,Rs,Wn)

Regresa el grado mnimo y frecuencia que puede tener el filtro con ciertas caractersticas
deseadas.
Wp= Frecuencia de corte, sta debe estar entre 0 y 1 donde .5 sera la frecuencia de muestreo
(teorema de Nyquist).
Ws= Frecuencia de paro, esta es donde la seal es atenuada casi por completo, est en las mismas
unidades de Wp, y est entre 0 y 1.
Rp= Atenuacin del riso.
Rs=Atenuacin de las frecuencias no deseadas.

filter

Mediante sencillas transformaciones por medio de la funcin filter podemos obtener la respuesta
en Z del filtro digital.

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

Seal de Salida del Filtro Para una Seal de Entrada


y=filter(num,den,x)
Donde: x es la seal de entrada.

filtfilt
y = filtfilt (b, a, x)

Realiza filtrado digital de fase cero mediante el procesamiento de los datos de entrada, x, en
ambas direcciones directa e inversa.
b: proporciona los coeficientes del numerador del filtro y el vector de los coeficientes proporciona
un denominador.
Si utiliza un filtro de todos los polos, introduzca 1 para b.
Si utiliza un filtro de todo ceros (FIR), introduzca 1 para a.
Despus de filtrar los datos en la direccin de avance, filtfilt invierte la secuencia filtrada y se
ejecuta de nuevo a travs del filtro. El resultado tiene las siguientes caractersticas:
Distorsin de Fase Cero; Una funcin de transferencia del filtro, que es igual a la magnitud al
cuadrado de la funcin de transferencia filtro original.
Para una orden de filtro que es el doble del orden del filtro especificado por b y a filtfilt minimiza
la puesta en marcha y termina transitorios, haciendo coincidir las condiciones iniciales, y se puede
utilizar tanto para reales y complejos.

freqz

Mediante sencillas transformaciones por medio de la funcin freqz podemos obtener la respuesta
en Z del filtro digital.
Respuesta de Magnitud y Fase de Filtros
[H,F]=freqz(num,den): Por defecto asume 512 puntos equidistantemente espaciados y el eje de
frecuencias es normalizada.
[H,F]=freqz(num,den,n,Fs): Donde se especifica nmero de puntos n y la frecuencia de muestreo
Fs.
[H,F]=freqz(num,den,f,Fs): Donde f es un vector en el que se especifica las frecuencias particulares
en las que se obtendr la respuesta de magnitud y fase.

pwelch

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

Esta funcin estima la densidad de potencia espectral (PSD) de una seal utilizando el mtodo de
Welch:
[Pxx, f]=pwelch(x, window, noverlap, nfft, fs)
La seal x a analizar se divide en k secciones de nfft puntos que pueden estar solapadas. k se
calcula a partir de:
m: tamao de x
n: nmero de puntos solapados
l=nfft: tamao de cada seccin
Se aplica la ventana especificada window a cada seccin de x
Se calcula el espectro de cada seccin a partir de la fft
Se obtiene el promedio de los espectros, que se multiplica por 1/fs para obtener la PSD (unidades
de potencia/Hz; V2 /Hz o g 2 /Hz).

randy guide

Una de las tantas herramientas con la que cuenta MatLab, es la creacin de GUIs. La forma de
implementar las GUI con MatLab es crear los objetos y definir las acciones que cada uno va a
realizar. Al usar GUIDE obtendremos dos archivos:
Un archivo FIG Contiene la descripcin de los componentes que contiene la interfase.
Un archivo M Contiene las funciones y los controles del GUI as como el callback
Un callback se define como la accin que llevar a cabo un objeto de la GUI cuando el usuario lo
active. Para ejemplificarlo, suponga que en una ventana existe un botn el cual al presionarlo
ejecutar una serie de acciones, a eso se le conoce como la funcin del callback.
De todo lo anterior mencionaremos las partes ms importantes de GUIDE:
Inspector de propiedades: Cada control cuenta con diferentes propiedades y es aqu donde
podremos cambiar: el color, el nombre, el tag, el valor, el callback entre otros.
Activar Figura: Una vez que hayamos terminado de disear presionamos este botn para activar la
figura y poder probar nuestra GUI.
Push Button: Crea un botn
Radio Button: Crea un botn circular
Edit Text: Crea una campo de texto
Axes: Crea una rea para grficas.
Frame: Crea un marco que puede contener otros controles
Static Text: Crea un letrero

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

2. Consultar y detallar el funcionamiento de los bloques de Simulink que permitan obtener el


espectro de magnitud de una seal.
SIMULINK que es un programa de simulacin con interfaz grfico que suplementa al MATLAB. Esta
nueva herramienta nos permite describir grficamente un sistema dibujando su diagrama en
bloques, su resultado es muy conveniente para la simulacin de sistemas dinmicos.
Entre las diferentes libreras que tiene SIMULINK son:
Continous (Bloques para sistemas en tiempo continuo)
Discrete (Bloques para sistemas en tiempo discretos)
Functions & Tables
Math (Sumadores, Ganancias matriciales o constantes, etc.)
Nonlinear
Signals & Sistems (multiplexores, demultexores, etc.)
Sinks (Graficadores, etc.)
Sources (Varias fuentes de entradas)
EL bloque TO WORKSPACE enva las variables generadas en el SIMULINK al MATLAB,
esta se genera en la ventana de comandos de Matlab.
El bloque Signal Generator puede generar cuatro diferentes tipos de formas de onda:
onda seno (sine), onda cuadrada (square), onda diente de sierra (sawtooth) y onda
aleatoria (ramdom). Los parmetros de las seales son expresados en hercios o
radianes por segundo. Se puede invertir la onda configurando el valor de la amplitud en negativo
en la ventada de dialogo de parmetros.
Un analizador de espectros (Signal Processing Blockset/Signal Processing
Sinks/Spectrum Scope). En el Spectrum Scope, establecer Buffer size, Buffer overlap y
Number of spectral averages.

El bloque de Suma, es aquel que realiza la operacin de sumatoria o resta en sus


entradas. Este bloque puede sumar o restar escalar, vector o matriz de entradas.
Tambin se pueden colapsar los elementos de una seal.
El bloque muestreo es necesario dado que los generadores son seales en tiempo
continuo y el analizador de espectros calcula la FFT de una seal discreta.
El bloque Gain multiplica la entrada por un valor constante (ganancia). La entrada y la
ganancia pueden ser un escalar, un vector o una matriz. El valor de la ganancia se
especifica a travs del parmetro Gain. El parmetro Multiplication determina se la

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

multiplicacin es matricial o elemento a elemento. El orden de las multiplicaciones en las


operaciones matriciales es configurado a travs de este parmetro.
El bloque Scope muestra su entrada con respecto al tiempo de simulacin. El bloque
scope puede tener varios ejes (uno por cada puerto) y todos los ejes tienen un rango
de tiempo comn con los independientes y los ejes. El bloque scope le permite ajustar
la cantidad de tiempo y el rango de valores de entrada que se muestra. Puede mover y
redimensionar la ventana del alcance y se pueden modificar los valores del alcance de los
parmetros durante la simulacin. Al final, este bloque a nivel de prcticas muestra la forma de las
ondas de las seales en forma grfica.

Este bloque est conectado a la salida de un sistema que muestra el contenido de


frecuencia de la memoria intermedia en la ventana grfica.

3. Graficar en el tiempo el producto de funciones g1 y g2 en los siguientes casos:


a) g1(t) = a1*cos (3**f1*t)
g2(t) Un tren de pulsos peridico con amplitud A, periodo T, frecuencia f2, tiempo de
duracin del pulso en alto 2 y tiempo de duracin del estado en bajo 1.
Para los valores de frecuencia f1 = 5kHz, a1=2, f2= 2.5kHz, tao1= 0.1 ms y A=3.

Figura 1. Funcin g1(t)

Figura 2. Funcin g2(t)

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

Figura 3. Funcin g1(t)*g2(t)

b) g1(t) = 2sin(4*f1*t)
g2(t) es una funcin diente de sierra de periodo T = 1/f2 de acuerdo a la siguiente figura:

Para los valores de frecuencia f1 = 5 KHz, f2 = 2.5Khz, T = 4mseg y A = 1.5.

Figura 4. Funcin g1(t)

Figura 5. Funcin g2(t)

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

Figura 6. Funcin g1(t)*g2(t)

c) g1(t) = a1*cos (5**f1*t)


g2(t) es una funcin diente de sierra de periodo T = 1/f2 de acuerdo a la siguiente figura:

Para los valores de frecuencia f1 = 1.5kHz y f2 = 4kHz, a1=3y A=6.

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

Figura 7. Funcin g1(t)

Figura 8. Funcin g2(t)

Figura 9. Funcin g1(t)*g2(t)

Ejemplo de Cdigo:
A continuacin se presenta el cdigo de la grfica correspondiente al literal b).
NOTA: Para las grficas del resto de literales, es el mismo cdigo pero cambiando las
funciones g1 y g2 por las correspondientes de cada literal.
a1=2;
f1=5000;
f2=2500;
fs=30*f1;
t=0:(1/fs):(4/f1);

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

%Literal b)
g1=2*sin(4*pi*f1*t);
figure
plot(t,g1,'r')
title('Funcin g1(t)')
xlabel('tiempo');
axis([0 4/f1 -1.1*a1 1.1*a1])
y2=0.75*sawtooth(2*pi*f2*t,0.5)+0.75;
y3=0.5*square(2*pi*f2*t)+0.5;
g2=-(y2.*y3);
figure
plot(t,g2,'r')
title('Funcin g2(t)')
xlabel('tiempo');
axis([0 4/f1 -1.7 0.1])
g=g1.*g2;
figure
plot(t,g);
title('Funcin g1(t)*g2(t)');
xlabel('tiempo')

4. Elaborar un archivo .m que permita graficar en una misma figura:


- Las 2 seales.
- La seal (multiplicada) en funcin del tiempo.
- El espectro de potencia de dicha seal, de las funciones: a, b y c, del literal anterior.
El archivo debe ser generado en un GUI (Interfaz Grfica de Usuario) independiente por
cada literal de funciones, donde se pueda ingresar en un textbox los valores de Amplitud,
Periodo y Nmero de periodos de las seales; y con un botn se generen todas las seales.
NOTA: Las graficas de los espectros de potencia de las seales se muestran en otras
figuras para mejor visualizacin.

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

Figura 10. GUIDE literal a.

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

Figura 11. GUIDE literal b.

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

Figura 12. GUIDE literal c.

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

Cdigo GUIDE figura 10


A continuacin se presenta el cdigo del pushbutton que ejecuta al GUIDE.
%Funcin 1
a1=str2double(get(handles.edit2,'string'));
T1=str2double(get(handles.edit3,'string'));
nT=str2double(get(handles.edit4,'string'));
f1=(1/T1);
fs=20*f1;
t=0:(1/fs):(nT/f1);
g1=a1*cos(2*pi*f1*t); %Primera funcin
axes(handles.axes1)
plot(handles.axes1,t,g1,'r');
hold on
%Funcin 2
a2=str2double(get(handles.edit5,'string'));
T2=str2double(get(handles.edit6,'string'));
nT2=str2double(get(handles.edit7,'string'));
h=str2double(get(handles.edit8,'string'));
f2=(1/T2);
fs2=20*f2;
t2=0:(1/fs2):(nT2/f2);
g2=(a2/2)*square(2*pi*f2*t2,h)+(a2/2);%2da Funcin
plot(handles.axes1,t2,g2);
% axes(handles.axes1)
hold on
axis([0 nT2/f2 -1.2*a2*a1 1.2*a2*a1])
% Funcin 1*2
g=g1.*((a2/2)*square(2*pi*f2*t,h)+(a2/2));
plot(handles.axes1,t,g,'g');
xlabel('tiempo');
hold on
hold off
%Espectro de potencia g1(t)
n=2048;
G1=fft(g1,n);
fx1=fs/n*(1:n/2);
y1=G1.*conj(G1);
plot(handles.axes4,fx1,(y1(1:n/2)))
%Espectro de potencia g2(t)
G2=fft(g2,n);
fx2=fs2/n*(1:n/2);
y2=G2.*conj(G2);
plot(handles.axes5,fx2,(y2(1:n/2)))
%Espectro de Potencia g1(t)*g2(t)
G=fft(g,n);

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

y=G.*conj(G);
if fs >= fs2
fx1=fs/n*(1:n/2);
plot(handles.axes7,fx1,y(1:n/2));
else
fx2=fs2/n*(1:n/2);
plot(handles.axes7,fx2,y(1:n/2));
end

NOTA: EL cdigo empleado en los otros GUIDES es exactamente el mismo pero cambiando
las funciones g1 y g2 por las correspondientes a cada literal.
5. Elaborar un GUI en Matlab, donde se visualice dos seales, una seal cuadrada simtrica y
una seal diente de sierra; de modo que la amplitud y la frecuencia sean ingresados
mediante una barra deslizante. (Nota: Los rangos de amplitud deben ser de 1 a 10, y los de
frecuencia de 10 a 10000).

Figura 12. GUIDE literal 3.5.


Ejemplo de Cdigo:
A continuacin se presenta el cdigo de la grfica de la onda cuadrada correspondiente al
slider de la frecuencia.

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES


LABORATORIO DE COMUNICACIN DIGITAL

function sliderf1_Callback(hObject, eventdata, handles)


% hObject
handle to sliderf1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
a1=get(handles.sliderA1,'value');
fa=get(handles.sliderf1,'value');
A1=a1+1;
f1=(fa+1)*10;
F1=100*f1;
t1=0:1/F1:3/f1;
x=A1*square(2*pi*f1*t1);
axes(handles.axes5);
plot(t1,x,'b');
grid on;
ylabel('AMPLITUD');xlabel('TIEMPO');

Referencias:
[1] Tutorial MatLAb Capitulo3
http://www.frsn.utn.edu.ar/tecnicas3/practicos/td3tp6_teoria.pdf
[2] Ayuda de MATLAB
[3] Manual de Interfaz Grfica de Usiario PARTE 1 Autor: Diego Orlando BArragn
https://www.dspace.espol.edu.ec/bitstream/123456789/10740/11/MATLAB_GUIDE.pdf
[4] Taller de SIMULINK y Procesamiento de Seales Dr. Javier Vega Pineda
http://www.depi.itchihuahua.edu.mx/jvega/TallerSimulinkIEEE/1Taller%20de%20SIMULIN
K%20y%20Procesamiento%20deSe%25F1ales.pdf
[5] Introduccion al Simulink Modelado y simulacin de sistemas dinmicos Teodoro lamo
,Daniel Limon, Manuel Gil, Manuel Ruiz, Guillermo Heredia. Departamento de Ingeniera
de Sistemas y Automtica- Universidad de Sevilla.
[6] Dispositivos y sistemas de comunicacin inalmbrica-Uso de MATLAB en comunicaciones.Dr.
Jos
Manuel
Rodrguez
AscarizUniversidad
de
Alcalhttps://www.depeca.uah.es/depeca/repositorio/subir_web/web/1296410069jmra2009/j
mra_uso_deMATLABenComunicaciones.pdf

Potrebbero piacerti anche