Está en la página 1de 66

UNIVERSIDAD NACIONAL MAYOR DE SAN

MARCOS
(Universidad del Per, DECANA DE AMERICA)
FACULTAD DE ING ELECTRONICA Y
ELECTRICA

Curso:
Introduccin a las telecomunicaciones
Tema: final N1
Procesamiento de seales y funciones peridicas
usando MATLAB
Integrante:
Mervin Torres Cortez 15190156
Profesor:
Unsihuay
SIMULACION DE PROCESAMIENTO DE SEALES
TEMA 1: PROCESAMIENTO DE SEALES Y FUNCIONES PERIODICAS USANDO MATLAB

I. OBJETIVOS

Simular e investigar en forma experimental el procesamiento de seales usando los comandos e


instrumentos del software Matlab, desarrollndolos ejercicios propuestos en funcin de los
ejercicios planteados.

II. EQUIPOS Y MATERIALES

Matlab versin 7a, y versin 2016.

Matlab es un sistema interactivo basado en


matrices para clculos cientficos y de
ingeniera. Desde el punto de vista del
control, MAT-LAB se puede considerar un
entorno matemtico de simulacin que
puede utilizarse para modelar y analizar
sistemas. Sirve para estudiar sistemas
continuos, discretos, lineales y no lineales.
Manual de Matlab.
Constituye un entorno abierto, para el cual
numerosas paquetes especficos adicionales han
sido desarrollados. En el caso que nos ocupa se
utilizara fundamentalmente la control system
toolbox. Estos paquetes especficos adicionales
estn constituidos

IV.CUESTIONARIO.

1. Cambie el valor de las variables en cada uno de los ejercicios y desarrolle nuevas aplicaciones, por lo menos 2
ejercicios adicionales de cada uno de los ejercicios planteados como ejemplos.

2.-Explique las funciones de cada una de las principales instrucciones y comandos utilizados en los ejercicios
anteriores.

3.-Presentar su informe final con una breve introduccin terica, con los resultados de cada ejercicio planteado y
sus modificaciones experimentales.

INTRODUCCION TEORICA
Matlab es un sistema interactivo basado en matrices para clculos cientficos y de ingeniera. Desde el
punto de vista del control, MAT-LAB se puede considerar un entorno matemtico de simulacin que
puede utilizarse para modelar y analizar sistemas. Sirve para estudiar sistemas continuos, discretos,
lineales y no lineales.

ORIGENES:

Aunque hoy en da tiene muchsimas aplicaciones, la primera versin de MATLAB surgi como una
herramienta para dar apoyo en los cursos de Anlisis Numrico, Teora de Matrices y Algebra Lineal
(Numrica). Aunque muchas personas crean que fue creada nicamente por Cleve Moler, realmente la
primera versin fue creada en 1970 bsicamente por Steve Bangert (que escribi el "intrprete" parser),
Steve Kleiman (que implement los grficos), John Little y Cleve Moler (que escribieron las rutinas de
anlisis, la gua de usuario y la mayora de los archivos o ficheros .m (esta es la extensin de los archivos
con los que trabaja MATLAB)). El nombre de MATLAB proviene de la abreviacin de su nombre completo
en ingls MATrix LABoratory, cuya traduccin al espaol es Laboratorio de Matrices.

Como su nombre lo ndica, podemos decir que MATLAB est ntimamente relacionado con la estructura
de las matrices. De hecho las matrices constituyen en elemento bsico del lenguaje, esto implica que
tambin puede trabajar con vectores y con nmeros, siendo estos tipos especiales de matrices. Adems,
al ser las matrices el elemento bsico del lenguaje esto implica una gran reduccin del cdigo, ya que no
es necesario hacer implementaciones del clculo matricial.
A partir de la serie de Fourier, es posible reconstruir una seal peridica. Cuanto mayor sea el nmero de
armnicos utilizado en el desarrollo en serie, mejor ser la reconstruccin. Un parmetro importante en la
reconstruccin de seales es la velocidad de convergencia, o lo que es lo mismo, la velocidad con la que los
coeficientes de Fourier tienden a 0.

IMPORTANCIA:

MATLAB ha pasado de ser algo creado simplemente para dar apoyo en cursos relacionados con Teora de
Matrices a convertirse en una poderosa herramienta tanto en el mbito educativo como en el industrial.

A nivel educativo se ha convertido en la principal herramienta de los cursos relacionados con el lgebra
Matricial, tanto a nivel bsico como a nivel superior.

A nivel industrial, tiene una gran cantidad de aplicaciones en muchos problemas prcticos de ingeniera y
matemticas. Es altamente utilizado en geofsica, en el diseo de sistemas de control, en procesamiento
de seales, en inteligencia artificial y redes neuronales, en simulacin de sistemas dinmicos, en
optimizacin, en problemas de modelaje y sistemas dinmicos (con Simulink, que puede considerarse
como una extensin o un anexo de MATLAB), etc.

Otro aspecto importante hoy en da es su capacidad grfica, en 2 y en 3 dimensiones.

IMPORTANCIA:

MATLAB ha pasado de ser algo creado simplemente para dar apoyo en cursos relacionados con Teora de
Matrices a convertirse en una poderosa herramienta tanto en el mbito educativo como en el industrial.

A nivel educativo se ha convertido en la principal herramienta de los cursos relacionados con el lgebra
Matricial, tanto a nivel bsico como a nivel superior.

A nivel industrial, tiene una gran cantidad de aplicaciones en muchos problemas prcticos de ingeniera y
matemticas. Es altamente utilizado en geofsica, en el diseo de sistemas de control, en procesamiento
de seales, en inteligencia artificial y redes neuronales, en simulacin de sistemas dinmicos, en
optimizacin, en problemas de modelaje y sistemas dinmicos (con Simulink, que puede considerarse
como una extensin o un anexo de MATLAB), etc.

Otro aspecto importante hoy en da es su capacidad grfica, en 2 y en 3 dimensiones.

ES DIFICIL APRENDER A USAR MATLAB?


La respuesta a esta pregunta es no. No es difcil aprender a usar MATLAB, no es difcil elaborar
programas en MATLAB, lo que si les llevar su tiempo es dominar MATLAB a profundidad. Para quien
haya programado en algn lenguaje, se puede decir (abusando un poco) que para programar en MATLAB
lo que se necesita es visualizar el esquema de lo que se quiere realizar, es decir del programa que se
quiere hacer y prcticamente traducirlo al lenguaje ingls con muy pocos detalles de sintaxis. De hecho
quien tenga nociones bsicas de programacin, puede aprender las cosas ms elementales de MATLAB
de manera autodidacta siempre y cuando tengo las nociones matemticas elementales del manejo de
las matrices y esto no es una exageracin, pues la mayora de mis estudiantes en los cursos de Mtodos
Numricos aprenden a usar MATLAB en menos de un mes (siempre y cuando tengan inters) y en este
curso yo me centro en los Mtodos Numricos y para mi MATLAB es una herramienta no es el centro, ni
la base del curso.

Actualmente, para quien este interesado en como se programa en MATLAB, existen una serie de
manuales muy tiles, titulados Aprenda MATLAB como si estuviera en primero para diferentes versiones
como lo son 4.2, 5.2, 5.3, 6.1, 6.5, y 7.0 entre otras las cuales elaborados por profesores de distintas
universidades espaolas

IV.CUESTIONARIO.

1. Cambie el valor de las variables en cada uno de los ejercicios y desarrolle nuevas aplicaciones, por lo menos 2
ejercicios adicionales de cada uno de los ejercicios planteados como ejemplos.

Ejercicio 1.1
num=[5 20];
den=[1 4 20];
[z,p,k]=tf2zp(num,den)
[num,den]=zp2tf(z,p,k)
G=tf(num,den);
G=zpk(z,p,k)

Ejercicio 1.2
p=[1 4 4 1 20];
r=roots(p)
r=roots([1 4 4 1 20])
Ejercicio 1.3
num=1;
den=[1 3 2];
num=1;
den=[1 3 2];
t=0:0.1:12;
impulse(num,den,t)
num=4;
den=[1 0.8 4];
step(num,den)

1.1.Construccion de arrays

x=[0 .1*pi .2*pi .3*pi .4*p .5*pi .6*pi .7*pi .8*pi .9*pi]
y=sin(x)
x=(9:0.1:1)*pi
x=linspace(0,pi,11);
Imagen y comprobando resultados para x(1), x(3) y y(5)
1.2evaluacion de funciones polinomicas

x=linspace(-1,3);
p=[1 4 -7 -10];
v=polyval(p,x);
plot(x,v),title('x^3+4x^2-7x-10').xlabel('x')
Multiplicacion de polinomios
a=[1 2 3 4];b=[1 4 9 16];
c=conv(a,b)

DIVISION

a=[1 2 3 4];b=[1 4 9 16];


c=conv(a,b)
[q,r]=deconv(c,b)

DERIVADA
a=[1 2 3 4];b=[1 4 9 16];
c=conv(a,b)
[q,r]=deconv(c,b)
h=polyder(q)

2.-

2.1 Graficar las funciones trigonometricas


x=linspace(0,4*pi,60);
y=sin(x);
figure(1)
plot(x,y)
z=cos(x)

figure(2)
plot(x,z,x,y)

figure(3)
plot(x,y,x,y,'*')
figure(4)
plot(y,z)
figure(5)
plot(x,y,x,2*y.*z,'--')
grid
xlabel('variable independiente x')
ylabel('variables independientes')
title('2sen(x)cos(x)sen(2x)')
figure(6)
plot3(y,z,x),grid
EJERCICIO 2.2:

x=linspace(0,16,100);
y=sin(x);
z=(y>=0).*y;
z=z+0.5*(y<0);
z=(x<=14).*z;
plot(x,z)
xlabel('x'),ylabel('z=f(x)')
title('Seal Discontinua')

EJERCICIO2.3:

x=linspace(0,16,100);
y=sin(x);
z=(y>=0).*y;
z=z+0.5*(y<0);
z=(x<=14).*z;
plot(x,z)
xlabel('x'),ylabel('z=f(x)')
title('Seal Discontinua')

x=linspace(0,6*pi,60);
y=sin(x);
z=cos(x);
plot(x,y)
hold on
plot(x,z,'m')
hold of

EJERCICIO2.4
x=linspace(0,4*pi,60);
y=sin(x);
z=cos(x);
a=2*sin(x).*cos(x);
b=sin(x)./(cos(x)+eps);
subplot(2,2,1)
plot(x,y),axis([0 4*pi-1 1]),title('sin(x)')
subplot(2,2,2)
plot(x,z),axis([0 4*pi-1 1]),title('cos(x)')
subplot(2,2,3)
plot(x,a),axis([0 4*pi-1 1]),title('2sin(x)cos(x)')
subplot(2,2,4)
plot(x,b),axis([0 4*pi-1 1]),title('tg=sin(x)/cos(x)')

2.5
M=7;
N=2^M;
n=0:1:N-1;
To=1;
T=10;
dt=T/N;
t=n*dt;
w=zeros(1,length(t));
for i=1:length(w)
if t(i)<To
w(i)=1
end
end
W=dt*fft(w);
f=n/T;
pos=find(f>=4/To);
if ~isempty(pos)&(pos(1)<=N/2)
pos=pos(1);
else
pos=floor(length(f)/2);
end
subplot(3,1,1)
plot(t,w);
title('forma de onda en el tiempo')
xlabel('tiempo(s)')
ylabel('w(t)')
subplot(3,1,2)
plot(f(1:pos),abs(W(1:pos)));
grid
title('espectro de fase hasta 40 nulo')
xlabel('frecuencia(hz)')
ylabel('\theta(f)(grados)')

IV.CUESTIONARIO.

1. Cambie el valor de las variables en cada uno de los ejercicios y desarrolle nuevas aplicaciones, por lo menos 2
ejercicios adicionales de cada uno de los ejercicios planteados como ejemplos.

Cambiamos los valores de las variables del ejercicio 1.1:

1.1-a
num=[1 10];
den=[2 3 12];
[z,p,k]=tf2zp(num,den)
[num,den]=zp2tf(z,p,k)
G=tf(num,den);
G=zpk(z,p,k)

1.1-b

num=[2 4];
den=[3 9 27];
[z,p,k]=tf2zp(num,den)
[num,den]=zp2tf(z,p,k)
G=tf(num,den);
G=zpk(z,p,k)

Cambiamos los valores de las variables del ejercicio 1.2:

1.2-a
p=[1 2 2 1 1];
r=roots(p)
r=roots([1 2 2 1 10])

1.2-b

p=[1 3 3 1 1];
r=roots(p)
r=roots([1 3 3 1 10])
Cambiamos los valores de las variables del ejercicio 3:

3.a:

num=1;
den=[1 4 2];
num=1;
den=[1 4 2];
t=0:0.2:6;
impulse(num,den,t)
num=4;
den=[1 0.9 4];
step(num,den)
3.b:
num=1;
den=[2 6 4];
num=1;
den=[2 6 4];
t=0:0.6:9;
impulse(num,den,t)
num=4;
den=[2 0.8 6];
step(num,den)

Cambiamos los valores de las variables del ejercicio 1.1(construccin de array):

1.1-a

x=[0 .1*pi .2*pi .3*pi .4*p .5*pi .6*pi .7*pi .8*pi .9*pi]
y=sin(x)
x=(8:0.2:2)*pi
x=linspace(0,pi,13);
1.1-b

Cambiamos los valores de las variables del ejercicio 1.2(evaluacin de funciones polinomicas)

1.2-a:
x=linspace(-2,4);
p=[1 6 -8 -11];
v=polyval(p,x);
plot(x,v),title('x^2+5x^2-9x-15').xlabel('x')
1.2-b:

x=linspace(-1,4);
p=[1 3 -8 -12];
v=polyval(p,x);
plot(x,v),title('x^3+3x^2-4x-20').xlabel('x')
MULTIPLICACION DE POLINOMIOS A:
a=[1 3 6 9];b=[1 3 4 15];
c=conv(a,b)

MULTIPLICACION DE POLINOMIOS B:
a=[1 4 6 12];b=[2 3 4 5];
c=conv(a,b)

DIVISION:

A)

a=[3 4 5 6];b=[1 5 7 18];


c=conv(a,b)
[q,r]=deconv(c,b)

B)
a=[1 2 5 7];b=[1 3 5 12];
c=conv(a,b)
[q,r]=deconv(c,b)
DERIVADA:

A)
a=[2 3 4 5];b=[1 3 9 27];
c=conv(a,b)
[q,r]=deconv(c,b)
h=polyder(q)

B)

a=[3 4 5 6];b=[1 2 4 8];


c=conv(a,b)
[q,r]=deconv(c,b)
h=polyder(q)

2.-

2.1-
2.1-A:
x=linspace(1,2*pi,30);
y=sin(x);
figure(1)
plot(x,y)
z=cos(x)

figure(2)
plot(x,z,x,y)

figure(3)
plot(x,y,x,y,'*')
figure(4)
plot(y,z)
figure(5)

plot(x,y,x,2*y.*z,'--')
grid
xlabel('variable independiente x')
ylabel('variables independientes')
title('3sen(x)cos(x)sen(3x)')

figure(6)
plot3(y,z,x),grid
2.1-B:

x=linspace(1,3*pi,15);
y=sin(x);
figure(1)
plot(x,y)
z=cos(x)
figure(2)
plot(x,z,x,y)

figure(3)
plot(x,y,x,y,'*')
figure(4)
plot(y,z)

figure(5)
plot(x,y,x,2*y.*z,'--')
grid
xlabel('variable independiente x')
ylabel('variables independientes')
title('3sen(x)cos(x)sen(3x)')

figure(6)

plot3(y,z,x),grid
Cambiamos los valores de las variables del ejercicio 2.2(GENERACION DE SEALES CONTINUAS)

2.2-A:
x=linspace(0,25,100);
y=sin(x);
z=(y>=0).*y;
z=z+0.6*(y<0);
z=(x<=13).*z;
plot(x,z)
xlabel('x'),ylabel('z=f(x)')
title('Seal Discontinua')

2.2:B:

x=linspace(0,49,100);
y=sin(x);
z=(y>=0).*y;
z=z+0.8*(y<0);
z=(x<=14).*z;
plot(x,z)
xlabel('x'),ylabel('z=f(x)')
title('Seal Discontinua')
Cambiamos los valores de las variables del ejercicio 2.3:

2.3-A:

x=linspace(0,25,100);
y=sin(x);
z=(y>=0).*y;
z=z+0.6*(y<0);
z=(x<=16).*z;
plot(x,z)
xlabel('x'),ylabel('z=f(x)')
title('Seal Discontinua')

x=linspace(0,2*pi,60);
y=sin(x);
z=cos(x);
plot(x,y)
hold on
plot(x,z,'m')
hold of
2.3-B:

x=linspace(0,49,100);
y=sin(x);
z=(y>=0).*y;
z=z+0.7*(y<0);
z=(x<=18).*z;
plot(x,z)
xlabel('x'),ylabel('z=f(x)')
title('Seal Discontinua')

x=linspace(0,2*pi,30);
y=sin(x);
z=cos(x);
plot(x,y)
hold on
plot(x,z,'m')
hold of
Cambiamos los valores de las variables del ejercicio 2.4:

2.4-A:
x=linspace(0,5*pi,20);
y=sin(x);
z=cos(x);
a=2*sin(x).*cos(x);
b=sin(x)./(cos(x)+eps);
subplot(2,2,1)
plot(x,y),axis([0 5*pi-1 1]),title('sin(x)')
subplot(2,2,2)
plot(x,z),axis([0 5*pi-1 1]),title('cos(x)')
subplot(2,2,3)
plot(x,a),axis([0 5*pi-1 1]),title('2sin(x)cos(x)')
subplot(2,2,4)
plot(x,b),axis([0 5*pi-1 1]),title('tg=sin(x)/cos(x)')
2.4-B:
x=linspace(0,4*pi,60);
y=sin(x);
z=cos(x);
a=2*sin(x).*cos(x);
b=sin(x)./(cos(x)+eps);
subplot(2,2,1)
plot(x,y),axis([0 16*pi-1 1]),title('sin(x)')
subplot(2,2,2)
plot(x,z),axis([0 16*pi-1 1]),title('cos(x)')
subplot(2,2,3)
plot(x,a),axis([0 16*pi-1 1]),title('2sin(x)cos(x)')
subplot(2,2,4)
plot(x,b),axis([0 16*pi-1 1]),title('tg=sin(x)/cos(x)')
Cambiamos los valores de las variables del ejercicio 2.5:

2.5-A:
M=7;
N=2^M;
n=0:1:N-1;
To=1;
T=16;
dt=T/N;
t=n*dt;
w=zeros(1,length(t));
for i=1:length(w)
if t(i)<To
w(i)=1
end
end
W=dt*fft(w);
f=n/T;
pos=find(f>=4/To);
if ~isempty(pos)&(pos(1)<=N/2)
pos=pos(1);
else
pos=floor(length(f)/2);
end
subplot(3,1,1)
plot(t,w);
title('forma de onda en el tiempo')
xlabel('tiempo(s)')
ylabel('w(t)')
subplot(3,1,2)
plot(f(1:pos),abs(W(1:pos)));
grid

2.5-B:

M=4;
N=3^M;
n=0:1:N-1;
To=4;
T=19;
dt=T/N;
t=n*dt;
w=zeros(1,length(t));
for i=1:length(w)
if t(i)<To
w(i)=1
end
end
W=dt*fft(w);
f=n/T;
pos=find(f>=8/To);
if ~isempty(pos)&(pos(1)<=N/2)
pos=pos(1);
else
pos=floor(length(f)/2);
end
subplot(3,1,1)
plot(t,w);
title('forma de onda en el tiempo')
xlabel('tiempo(s)')
ylabel('w(t)')
subplot(3,1,2)
plot(f(1:pos),abs(W(1:pos)));
grid

2.-Explique las funciones de cada una de las principales instrucciones y comandos utilizados en los ejercicios
anteriores.

A continuacin de mostrar una lista de comandos los cuales estn todos los que se usaron en los ejercicios
anteriores, y el cual nos servir para ejercicios futuro. Lo podemos usar como una tabla de referencia que nos va a
servir de mucho y luego se mencionaran lo que se usaron en los ejercicios anteriores.
Los comandos listados son tanto del Matlab como del Control Systems Toolbox, no todos los comando
listados en esta referencia estn disponibles en la versin Matlab 7, esto puede ser por que el
comando se encuentra deprecado (comando antiguo y ya casi nadie lo usa) o porque es un comando
de una libreara particular(en tal caso, el comando viene con un link a la referencia de su
implementacin).
Respecto a la notacin , los comandos Matlab del toolbox de control de sistema se destacan en rojo
mientras que los comandos Matlab no estndares se destacan en verde.

rojo mientras que los comandos Matlab no estndares se destacan en verde.

Comando Descripcin
abs Valor Absoluto
acker Calcula la matriz K para ubicar los polos de ABK, vea tambin
place
axis Corrige la escala del grfico actual, vea tambin plot, figure
bode Dibuja el diagrama de Bode, vea tambin logspace, margin, nyquist1
c2dm Pasa del sistema continuo al discreto
Clf Borra la figura (use clg en Matlab 3.5)
conv Convolucin (til para multiplicar polinomios), vea tambin deconv
ctrb Matriz de controlabilidad, vea tambin obsv
deconv Deconvolucin y divisin de polinomios, vea tambin conv
det Halla el determinante de una matriz
dimpulse Respuesta al impulso de sistemas lineales de tiempo discreto,
vea tambin dstep
dlqr Diseo de reguladores LQR lineales cuadrticos para sistemas de
tiempo discreto, vea tambin lqr
dlsim Simulacin de sistemas lineales de tiempo discreto, vea tambin lsim
dstep Respuesta al escaln de sistemas lineales de tiempo discreto,
vea tambin stairs
Eig Calcula los autovalores de una matriz
eps Tolerancia numrica del Matlab
feedback Conexin de dos sistemas por realimentacin
figura Crea una nueva figura o redefine la figura actual , vea
tambin subplot, axis
For Lazo ForNext
format Formato Numrico (dgitos significativos, exponentes)
function Para archivosm del tipo funcin
grid Dibuja la grilla en el grfico actual
gtext Agrega texto al grfico actual, vea tambin text
help Ayuda
hold Mantiene el grfico actual, vea tambin figure
If Ejecuta cdigo condicionalmente
imag Devuelve la parte imaginaria de un nmero complejo, vea
tambin real
impulse Respuesta al impulso de sistemas lineales de tiempo continuo,
vea tambin step, lsim, dlsim
input Prompt para entrada de usuario (lectura de datos)
Inv Inversa de una matriz
legend Leyenda en un grfico
length Largo de un vector, vea tambin size
linspace Devuelve un vector linealmente espaciado
log logaritmo natural, tambin log10: logaritmo comn
loglog Grafica usando doble escala logartmica, tambin semilogx/semilogy
logspace Devuelve un vector logartmicamente espaciado
Lqr Diseo de reguladores lineales cuadrticos LQR para sistemas
continuos, vea tambin dlqr
margin Devuelve margen de ganancia, margen de fase, y frecuencias
de cruce, vea tambin bode
norm Norma de un vector
obsv Matriz de observabilidad, vea tambin ctrb
ones Devuelve un vector o matriz de unos, vea tambin ceros
place Calcula la matriz K para ubicar los polos de ABK, vea tambin
acker
plot Dibuja un grfico, vea tambin figure, axis, subplot.
poly Devuelve el polinomio caracterstico
polyval Valor numrico de un Polinomio
print Imprime el grfico actual (a impresora o a archivo postscript)
pzmap Mapa de polos y ceros de sistemas lineales
rank Halla la cantidad de renglones o columnas
linealmente independientes de una matriz
real Devuelve la parte real de un nmero complejo, vea tambin imag
rlocfind Halla el valor de k y los polos en el punto seleccionado
rlocus Grfica el lugar de races
roots halla las races de un polinomio
set Set(gca,'Xtick',xticks,'Ytick',yticks) para controlar el nmero y el
espaciado de marcas en los ejes
series Interconexin en serie de sistemas Lineales que no dependan
del tiempo
sgrid Genera grilla de razn de amortiguacin (zeta) y frecuencia natural
(Wn) constantes , vea tambin jgrid, sigrid, zgrid
size Devuelve la dimensin de un vector o matriz, vea tambin length
sqrt Raz cuadrada
Ss Crea modelos en espacio de estado o convierte modelos LTI
a espacio de estado, vea tambin tf
ss2tf representacin Espacio de estado a funcin de transferencia ,
vea tambin tf2ss
ss2zp representacin Espacio de estado a polocero ,vea tambin zp2ss
stairs Grfico tipo escalera para respuesta discreta, vea tambin dstep
subplot Divide la ventana Grfico en secciones, vea tambin plot, figure
text Agrega texto al grfico actual, vea tambin title, xlabel, ylabel, gtext
Tf Crea una funcin de transferencia o convierte a funcin
de transferencia, vea tambin ss
tf2ss Funcin de Transferencia a representacin en espacio de estado,
vea tambin ss2tf
tf2zp representacin Funcin de Transferencia a Polocero , vea tambin
zp2tf
title Agrega un ttulo al grfico actual
xlabel/ylabel Agrega una identificacin al eje horizontal/vertical del grfico
actual, vea tambin title, text, gtext
zeros (ceros) Devuelve un vector o matriz de ceros
zgrid Genera grilla de coeficiente de amortiguamiento (zeta) y
frecuencia natural (Wn) constante , vea tambin sgrid, jgrid,sigrid
zp2ss Polocero a representacin en espacio de estado, vea tambin ss2zp
zp2tf Polocero a representacin funcin de transferencia , vea
tambin tf2zp
Lista de Comandos usados en los problemas anteriores:

Y_deg :

permiete convertir grados a radianes)

Fix(x):

(Redondea hacia cero)

Floor(x):

(Redondea hacia menos infinito)

Ceil:

(redondea hacia el infinito)

Round:

(Redondea hacia el entero ms prximo)

Real :

(expresa la parte real de un nmero complejo)

Imag :

(Expresa la parte imaginaria de un nmero complejo)

Mag :

(expresa el mdulo del nmero complejo)

Linspace:

(La instruccin linspace sirve para definir un intervalo y un nmero de puntos en ese
intervalo.)
Plot :

(Permite plotear u obtener la grfica en 2d 3d)

Grid:

(Genera lneas horizontales y verticales en un grfico)

Subplot :

(Permite en una sola ventana mostrar varios grficos)

Hold off

(permite liberar ventanas de grficos para poder ser nuevamente usadas)

TEMA 2: DESARROLLO DE LA SERIE DE FOURIER


Ejercicio1:
Fs=1000;
t=(1:100)/Fs;
w=2*pi*10;
f=(8/pi)*(sin(w*t)+(1/3)*sin(3*w*t)+(1/5)*sin(5*w*t)+(1/7)*sin(7*w*t)+(1/9)*sin(9*w*t))
;
plot(t,f)
grid

EJERCICIO 2:
Fs=1000;
t=(1:100)/Fs;
w=2*pi*10;
f=(8/pi)*(cos(w*t)-(1/3)*cos(3*w*t)+(1/5)*cos(5*w*t)-(1/7)*cos(7*w*t)+(1/9)*cos(9*w*t))
;
plot(t,f)
grid
Ejercicio 3:
Fs=100;
t=(-100:100)/Fs;
w=2*pi;
A=2;
f=0
for n=1:1000;
f=f+(4*A/(n*pi))*(sin(n*0.5*pi))*cos(n*w*t);
end;
plot(t,f)
xlabel('t(seg)')
ylabel('AMPLITUD')
title('FUNCION PAR ONDA CUADRADA')
grid

f=

0
TEMA 3: DESARROLLO DE LA TRANSFORMADA RAPIDA DE FOURIER

Ejercicio 1:
N=128;
t=linspace(0,3,N);
f=2*exp(-20*t);
figure(1)
plot(t,f)
xlabel('Time,seg'),ylabel('f(t)'),grid
axis([0 0.3 0 2]);
Ts=t(2)-t(1);
Ws=2*pi/Ts;
F=fft(f);
Fp=F(1:N/2+1)*Ts;
W=Ws*(0:N/2)/N;
figure(2)
plot(W,abs(Fp),'+')
xlabel('frequency,rad/s'),ylabel('|F(W)|')
Continuacin
N=128;
t=linspace(0,3,N);
Ts=t(2)-t(1);
Ws=2*pi/Ts;
W=Ws*(0:N/2)/N;
Fa=2./(20+j*W);
figure(3)
plot(W,abs(Fa))
xlabel('frequency,rad/s'),ylabel('|F(W)|')

Ejercicio 2:
m=[0,1,2,3,4,5];
Xn=[1,2,3,4,5,6];
Xk=fft(Xn);
Xmag=abs(Xk);
Xphase=angle(Xk);
figure(1)
plot(m,Xmag),axis([0 5 0 23]);
figure(2)
stem(m,Xmag)
figure(3)
stem(m,Xphase)
Ejercicio3:
t=0:0.001:0.6;
x=sin(2*pi*50*t)+sin(2*pi*120*t);
y=x+2*randn(size(t));
figure(4)
plot(y(1:50))
Y=fft(y,512);
Pyy=Y.*conj(Y)/512;
f=1000*(0:255)/512;
figure(5)
plot(f,Pyy(1:256))
Ejercicio4

Fs=100;
t=(1:100)/Fs;
s1=5*sin(2*pi*t*5);s2=10*sin(2*pi*t*15);s3=7*sin(2*pi*t*30);
s=s1+s2+s3;
figure(1)
plot(t,s);
S=fft(s,512);
w=(0:255)/256*(Fs/2);
figure(2)
plot(w,abs([S(1:256)]));
Ejercicio5

fplot('5*sin(x)./x',[-30 30 -.2 6])


title('Fplot of f(x)=5.sin(x)/x')
xlabel('x')
Ejercicio 6:
Fs=10000;
t(1:8000)/Fs;
f1=sin(2*pi*t*500);f2=sin(2*pi*t*1500);f3=sin(2*pi*t*3000);f4=sin(2*pi*t*4000);
s=f1+f2+f3+f4;
figure(1)
plot(t,s)
axis([0 0.01 -4 4]);
[b,a]=ellip(4,0.1,40,[100 1000]*2/Fs;
[H,w]=freqz(b,a,512);
figure(2)
plot(w*Fs/(2*pi),abs(H));
sf1=filter(b,a,s);
figure(3)
plot(t;sf1);
xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
S1=fft(s,513);
SF1=fft(sf1,513);
w=(0:255/256*(Fs/2);
figure(4)
plot(w,abs([S1(1:256)'SF1(1:256)']));
xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANS. DE FOURIER');
[b,a]=ellip(4,0.1,40,[1000 2000]*2/Fs;
[H,w]=freqz(b,a,512);
figure(5)
plot(w*Fs(2*pi),abs(H));
sf2=filter(b,a,s);
figure(6)
plot(t;sf2);
xlabel(
Fs=10000;
t(1:8000)/Fs;
f1=sin(2*pi*t*500);f2=sin(2*pi*t*1500);f3=sin(2*pi*t*3000);f4=sin(2*pi*t*4000);
s=f1+f2+f3+f4;
figure(1)
plot(t,s)
axis([0 0.01 -4 4]);
[b,a]=ellip(4,0.1,40,[100 1000]*2/Fs);
[H,w]=freqz(b,a,512);
figure(2)
plot(w*Fs/(2*pi),abs(H));
sf1=filter(b,a,s);
figure(3)
plot(t,sf1);
xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
S1=fft(s,513);
SF1=fft(sf1,513);
w=(0:255/256*(Fs/2));
figure(4)
plot(w,abs([S1(1:256)'SF1(1:256)']));
xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANS. DE FOURIER');
[b,a]=ellip(4,0.1,40,[1000 2000]*2/Fs;
[H,w]=freqz(b,a,512);
figure(5)
plot(w*Fs(2*pi),abs(H));
sf2=filter(b,a,s);
figure(6)
plot(t;sf2);
xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS.TIEMPO')
axis([0 0.01 -4 4]);
S2=fft(s,513);
SF2=fft(sf2,513);
w=(0:255/256*(Fs/2);
figure(7)
plot(w,abs([S2(1:256)'SF2(1:256)']));
xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANF. DE FOURIER');

[b,a]=ellip(4,0.1,40,[2500 3500]*2/Fs;
[H,w]=freqz(b,a,512);
figure(8)
plot(w*Fs/(2*pi),abs(H));
sf3=filter(b,a,s);
figure(9)
plot(t;sf3);
xlabel('Tiempo(seg)'):yabel('FORMA DE ONDA VS TIEMPO')
axis([0 0.01 -4 4]);
S3=fft(s,513);
SF3=fft(sf3,513);
w=(0:255/256*(Fs/2);
figure(10)
plot(w,abs([S3(1:256)'SF3(1:256)']));
xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANS. DE FOURIER');
[b,a]=ellip(4,0.1,40,[3500 4500]*2/Fs);
[H,w]=freqz(b,a,512);
figure(11)
plot(w*Fs/(2*pi),abs(H));
sf4=filter(b,a,s);
figure(12)
plot(t;sf4);
SF4=fft(sf4,513);
w=(0:255/256*(Fs/2));
figure(13)
plot(w,abs([S2(1:256='SF2(1:256)']));
xlabel('FRECUENCIA(Hz)');YLABEL('MAG. DE TRANSF. DE FOURIER');
zf5=0.8*sf1+0.5*sf2+0.2*sf3+0.4*sf4;
figure(14)
plot(t;zf5);
xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
S5=fft(s,513);
ZF5=fft(zf5,513);
w=(0:255/256*(Fs/2);
figure(15)
plot(w,abs([S5(1:256)'ZF5(1:256)']));
Xlabel('FRECUENCIA (Hz)');ylabel('MAG. DE TRANS. DE FOURIER');

7
f=[0 .4 .4 .6 .6 1];
H=[0 0 1 1 0 0];
fs=1000;
fhz=f*fs/2;
figure(1)
plot(fhz,H),title('Desired Frecuency Response')
xlabel('Frecuency(Hz)'),ylabel('Magnitude')
N=8;
[Bh,Ah]=yulewalk(N,f,H)
n=256;
hh=freqz(Bh,Ah,n);
hy=abs(hh);
f=fs/(2*n)*(0:n-1);

figure(2)
plot(fhz,H,f,hy)
title('Actual vs.Desired Frequency Response')
xlabel('Frequency(Hz)'),ylabel('Magnitude')
N=4;PASSBAND=[.4 .6];ripple=1;
[Bb,Ab]=butter(N,passband);
[Bc,Ac]=cheby1(N,ripple,passband);
h=[abs(hh)abs(freqz=Bb,Ab,n))abs(freqz(Bc,Ac,n))];
figure(3)
plot(f,h)
title('YuleWalk, Butterworth and Chebyshev filters')
figure(4)
plot(f(2:n),20*log10(h(2:n,:)))
title('Yulewalk, Butterworth and Chebyshev filters')
xlabel('Frequency(Hz)')
ylabel('Magnitude in dB')
f=[0 .4 .4 .6 .6 1];

H=[0 0 1 1 0 0];

fs=1000;

fhz=f*fs/2;

figure(1)

plot(fhz,H),title('Desired Frequency Response')

xlabel('Frequency(Hz)'),ylabel('Magnitude')

N=8;

[Bh,Ah]=yulewalk(N,f,H)

n=256;

hh=freqz(Bh,Ah,n);

hy=abs(hh);

f=fs/(2*n)*(0:n-1);
figure(2)

plot(fhz,H,f,hy)

title('Actual vs. Desired Frequency Response')

xlabel('Frequency(Hz)'),ylabel('Magnitude')

N=4;passband=[.4 .6];ripple=.1;

[Bb,Ab]=butter(N,passband);

[Bc,Ac]=cheby1(N,ripple,passband);

h=[abs(hh) abs(freqz(Bb,Ab,n)) abs(freqz(Bc,Ac,n))];


figure(3)

plot(f,h)

title('YuleWalk,Butterwoth and Chebyshev filters')


figure(4)
plot(f(2:n),20*log10(h(2:n,:)))
title('Yulewalk, Butterworth and Chebyshev filters')
xlabel('Frequency(Hz)')
ylabel('Magnitude in dB')
CUESTIONARIO DEL
TEMA 2: DESARROLLO DE LA SERIE DE FOURIER

1. Dada la expresin de la serie de Fourier trigonomtrica, desarrolle la grfica de


f(t). Usando el criterio del problema 3.

Dada la serie:

A 1
f (t )=
2

n ()
sin ( n 0 t ) . si f (t )= At en ( 0,1 ) .

SOLUCION:

Fs=100;
t=(-100:100)/Fs;
w=2*pi;
A=1;
f=0;
for n=1:1000;
f=0.5-(f+(sin(n*w*pi)));
end;
plot(t,f)

FUNCION ONDA DIENTE DE SIERRA


3

2.5

1.5
AMPLITUD

0.5

-0.5

-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
t(seg)

2. Desarrolle la exponencial de Fourier, si f (t )= A sin ( t ) en el intervalo (0,1).


Grafique la S.E.F.

SOLUCION:
Fs=50;
t=(-100:100)/Fs;
v=1*pi;
A=1;
f=0;
for n=1:50
f=f+((-1)^ n)*4*n*exp(-i*2*pi*t*n)/(i*pi*(4*n^2-1));
end;
plot(t,f)
xlabel( 't(seg)')
ylabel('AMPLITUD')
title('FUNCION PAR SENO')
grid

3.- Programe en Matlab la siguiente serie trigonomtrica.

4A
f(t)= ( n) cos(nWt) ; n=impar d ela onda triangular.

SOLUCION:

fs=100;
t=(-100:100)/fs;
w=2*pi;
A=4;
f=0;
for n=0:1000;
f=f+((2*(n+1)*pi)^2)\(4*A)*cos(n*w*t);
end;
plot(t,f)
xlabel('t(seg)')
ylabel('AMPLITUD')
title('FUNCION TRIGONOMETRICA IMPAR')
grid
4.-Grafique la serie exponencial de FOURIER DE LA FUNCION f(t)=A e2t En
t=[0,1].

SOLUCION:

Fs=100;
T=(-100:100)/Fs;
W=2*pi;
A=1;
f=0;
for n=1:100;
f=f+sinh(pi)*(-1)^n*exp(-1*i*2*pi*n*t)/(1*pi*i*n);
end;
plot(t,f)
xlabel('t(seg)')
ylabel('AMPLITUD')
title('FUNCION EXPONENCIAL')
grid

GRAFICA:
6.-Desarrolle la transformada rpida de Fourier de la funcin Sa(t).

Solucin:

Tomamos como referencia la funcin muestreo y anlogamente hacemos para la transformada


de fourier

fplot('5*sin(x)./x',[-30 30 -.2 6])


title('fplot of f(x)=5.sin(x)/x')
xlabel('x')
ylabel('f(x)')

OBTENEMOS LOS SIGUIENTES GRFICOS:


jt jt
7.- Si F(t) =( e + e )/2 . Determine su transformada rpida de Fourier.

SOLUCION:

t=-0.30:0.001:0.30;
w=2*pi;

f=(exp(j*w*t)+exp(-j*w*t))/2;

figure(1)

plot(t,f)

N=130;
axis([0 0.4 0 4]);
Ts=t(2)-t(1);
Ws=2*pi/Ts;
F=fft(f);
Fp=F(1:N/2+1)*Ts;
W=Ws*(0:N/2)/N;
>> figure(2)
>> plot(W,abs(Fp),'+')
>> xlabel('Frequency,Rad/s'),ylabel('|F(W)|')

También podría gustarte