Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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.
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.
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
DERIVADA
a=[1 2 3 4];b=[1 4 9 16];
c=conv(a,b)
[q,r]=deconv(c,b)
h=polyder(q)
2.-
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.
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)
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)
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)
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)
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.
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 :
Fix(x):
Floor(x):
Ceil:
Round:
Real :
Imag :
Mag :
Linspace:
(La instruccin linspace sirve para definir un intervalo y un nmero de puntos en ese
intervalo.)
Plot :
Grid:
Subplot :
Hold off
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
[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)
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)
xlabel('Frequency(Hz)'),ylabel('Magnitude')
N=4;passband=[.4 .6];ripple=.1;
[Bb,Ab]=butter(N,passband);
[Bc,Ac]=cheby1(N,ripple,passband);
plot(f,h)
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)
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)
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
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:
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)|')