You are on page 1of 10

UNIVERSIDAD NACIONAL

MAYOR DE SAN MARCOS


(Universidad

del Per, Decana de Amrica)

FACULTAD DE INGENIERA ELECTRNICA Y ELECTRCA

Curso

Lab. Introduccin a las

Telecomunicaciones.
Profesor :
EAP

Ing. Electrnica

Integrante
Cdigo

Ing. Sixto Llosa

OSORIO CASTRO, RAUL JHANPHIER


13190156

CONVOLUCIN DE SEALES SENCILLAS USANDO MATLAB

I.

II.

OBJETIVO:
Reforzar los conceptos tericos sobre convolucin, comprender las
limitaciones del ordenador para trabajar con las seales y su
convolucin, comparas los resultados del ordenador con los analticos.
FOTOS:

III.

PROCEDIMIENTO:
1. en el programa de matlab ingresar al men File-New-M-File. Aqu
crearemos la funcin myconv.m
2. digitar en el editor lo siguiente:
function [y,X] = myconv(x,h)
%Esta funcin evala la convolucin de dos funciones finitas
x=x(:);
h=h(:);
nx=length(x);
nh=length(h);
ny=nx+nh-1;
X=zeros(nh,ny)';
for i=1:nh
X((1:nx)+(i-1),i)=x;
end
y=X*h;
y=y(1:1:ny);
y=y/max(abs(y));

3. guardar el archivo con el nombre myconv


a) Convolucin de seales finitas
a.1) Vamos a calcular la convolucin entre dos seales x(t) y h(t)
que, en este caso, van a ser iguales, x y h van a ser (ambas) un
pulso rectangular centrado en t=0, de amplitud 1 y que se
extender desde t=-1 a t=1.
t=-5:0.1:5; %base de tiempo de x
L=length(t); %Longitud
p1=find(t==-1); %localizar los puntos
p2=find(t==1); %localizar los puntos
x=zeros(1,L);

x(p1:p2)=1; %pulso entre -1 y1


figure(1)
plot(t,x)
h=x; %h es igual x
figure(2)
plot(t,h)
y=myconv(h,x); %usamos la funcion creada
w=-10:0.1:10; %base de tiempo de y
figure(3)
plot(w,y)

a.2) Realizar la convolucin de las siguientes seales:


x(t): pulso triangular en t=0, altura 1, entre t=-2 y
t=2
h(t): pulso rectangular de altura 1, entre t=0 y t=2

Solucin
Para generar el pulso rectangular h(t) lo aremos como en el
ejercicio anterior, mientras que para generar la funcin triangular
x(t) lo haremos de la siguiente manera
p3=find(t==-2);
p4=find(t==0);
p5=find(t==2);
x=zeros(1,L);
x(p3:p4)=t(p3:p4)/2+1;
x(p4:p5)=-t(p4:p5)/2+1;
figure(4)
plot(t,x)
h=zeros(1,L);
h(p4:p5)=1;
figure(5)
plot(t,h)
y=myconv(h,x);
figure(6)
plot(w,y)

b) Convolucin de Seales Infinitas


Las convoluciones donde intervienen seales infinitas en
tiempo son imposibles de calcular en Matlab ya que no se
puede tener un vector de valores de tamao infinito. Sin

embargo, vamos hacer algunos ejemplos donde veremos


que si es posible hacer clculos aproximados.
b.1) Empezaremos por generar una seal que podramos
3

llamar "cuasi-finita" como es el caso de

t
3
x ( t )= e 2 .u (t)
2

(cuasi-infinita porque a partir t=2 sus valores son


prcticamente nulos). Luego haremos la convolucin con la
funcin rectangular del ejercicio anterior.
Solucin: Para generar x(t) primero debemos generar la
funcin pulso unitario u(t), que es o seuna funcin igual 1
para t>=0 y 0 para t<0.
p6=find(t==5);
u=zeros(1,L);
u(p4:p6)=1;
figure(7)
plot(t,u)
x=(3/2)*exp(-3*t/2).*u;
figure(8)
plot(t,x)
y=myconv(h,x);
figure(9)
plot(w,y)

b.2) Ahora vamos a cambiar la seal de entrada por


h(t)=u(t). Ntese que vamos a aumentar considerablemente
la complicacin porque se trata de dos seales infinitas y
adems, la h(t) no tiende a cero como si lo hace la x(t).
h=u;
figure(10)
plot(t,h)
y=myconv(h,x);
figure(11)
plot(w,y)

c) Convolucin con Seales Peridicas


Vamos a terminar la prctica con un ejemplo de seales
peridicas. Mantendremos x(t) igual a la del apartado
anterior (seal exponencial) y haremos h(t)=cos(2t).
Cuando una de las dos seales de una convolucin es
peridica, el resultado es peridico con el mismo periodo. En
este caso, h(t) es peridica con periodo fundamental To
=2/2 = 1seg.
h=cos(2*pi*t);
figure(12)
plot(t,h)

y=myconv(h,x);
figure(13)
plot(w,y)

You might also like