You are on page 1of 7

LABORATORIO DE INTRODUCCION A LAS TELECOMUNICACIONES

PRACTICA N 4
Tema:

CONVOLUCION DE SEALES SENCILLAS USANDO MATLAB

Alumno:

FELIX GUTIERREZ BILLY MARCOS

Cdigo:

12190096

Horario:

Grupo Mircoles 10 a 1pm

I.

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

II.

PROCEDIMIENTO:
Para esta prctica hemos desarrollado una funcin que el ayudara a realizar cada ejercicio.
1 paso: En el programa Matlab, ingresar al men File New M-File. Aqu crearemos
la funcin myconv.m
2 paso: digitar en el editor lo siguiente:
Function[y,X]=myconv(x,h)
%esta funcin evala la consolacin 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 paso: guardar el archivo con el nombre myconv

1. Convolucin de seales Finitas.

1.1. Vamos a calcular la consolacin 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.
SOLUCION
Veamos como generarla en Matlab:
>> t=-5:0.1:5; % base de tiempo de x
>> L=length(t); % longitud
>> p1=find(t==-1);
>> p2=find(t==1); %localizar los puntos
>> x=zeros(1,L);
>> x(p1:p2)=1;% pulso entre -1 y 1
>> figure(1)
>> plot(t,x)
>> h=x; %h es igual a 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)

1.2. Realizar la consolacin 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=-2 y t=2.

SOLUCION
Para generar el pulso rectangular h(t9 lo haremos 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)

2. Convolucin de seales finitas.


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 a hacer algunos ejemplos donde veremos que si es posible hacer clculos
aproximados.

2.1 Empezaremos por generar una seal que podramos llamar cuasi-finita como es el
caso de

3
x (t )= e
2

3
t .u(t)
2

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

prcticamente nulos).
Luego haremos la consolacin con la funcin rectangular del ejercicio anterior
SOLUCION:
Para generar x(t) primero debemos generar la funcin pulso unitario u(t), que es
una funcin igual 1 pata t>=0 y 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)

2.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 x(t).

>> h=u;
>> figure(10)
>> plot(t,h)
>> y=myconv(h,x);
>> figure(11)
>> plot(w,y)

3. 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 consolacin es peridica, el resultado es peridico con el
mismo periodo. En este caso, h(t)es peridica con periodo fundamental T0=2/2=1
seg.

>> h=cos(2*pi*t);
>> figure(12)
>> plot(t,h)
>> y=myconv(h,x);
>> figure(13)
>> plot(w,y)

You might also like