Você está na página 1de 14

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Facultad de Ingeniería Electrónica, Eléctrica y Telecomunicaciones

EXPERIENCIA N°4
CONVOLUCIÓN DE SEÑALES SENCILLAS USANDO
MATLAB

Docente: Sixto Llosa


Laboratorio del curso: Introducción a las Telecomunicaciones
Alumno: Enco Castañeda, Owen Paulo 15190179
Fecha de realización: 18 de enero del 2018
Fecha de entrega: 21 de enero del 2018
CONVOLUCIÓN DE SEÑALES SENCILLAS USANDO
MATLAB

I. OBJETIVOS:

 Reforzar los conceptos teóricos sobre convolución.


 Comprender las limitaciones del ordenador para trabajar con las señales y
su convolución.
 Comparar los resultados del ordenador con los analíticos.

II. MATERIAL Y EQUIPO:

 Matlab Versión 4 y 5.3.6.12


 PC Intel Core i5
 Manual de Matlab

III. PROCEDIMIENTO:

Primer paso:

En el programa Matlab, crearemos una función a la cual llamaremos


“myconv.m”

Segundo paso:
Digitar en el editor lo siguiente:
function[y,X]=myconv(x,h)
%esta función evalúa la convolución 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));

Así habremos creado una nueva función, la cual nos permitirá hacer
convoluciones:
1. Convolución de señales finitas

1.1. Vamos a calcular la convolución entre dos señales 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.

Solución:

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 función creada
w=-10:0.1:10;% base de tiempo de y
figure(3)
plot(w,y)
1.2. Realizar la convolución de las siguientes señales:

- 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.

Solución:

Para generar el pulso rectangular h(t) lo haremos como en el


ejercicio anterior, mientras que para generar la función 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. Convolución de señales infinitas

Las convoluciones donde intervienen señales infinitas en tiempo son


posibles de calcular en Matlab ya que no se pude tener un vector de
valores de tamaño infinito. Sin embargo, vamos a hacer algunos
ejemplos donde veremos que sí es posible calculos aproximados.

2.1. Empezaremos por generar una señal que podríamos llamar “casi-
−3
3 t
finita” como es el caso de x ( t )= e 2 .u (t ) , la haremos
2
convolucionar con la función rectangular del ejercicio anterior.

Solución:
Para generar x(t) primero debemos generar la función pulso
unitario u(t), que es una función igual a 1 para t>=0 y o 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. Cambiamos h(t) por u(t). Nótese que vamos aumentar
considerablemente la complicación porque se trata de dos señales
infinitas y, además, la h(t) no tiende a cero como si lo hace x(t).

Solución:

h=u;
figure(10)
plot(10)
plot(t,h)
y=myconv(h,x);
figure(11)
plot(w,y)
3. Convolución de señales periódicas

Vamos a terminar la práctica con un ejemplo de señales periódicas.


Mantendremos x(t) igual al apartado anterior (señal exponencial) y
haremos h(t)=cos(2πt).
Cuando una de las dos señales de una convolución es periódica, el
resultado es un periódico con el mismo periodo. En este caso, h(t) es
periódica con periodo fundamental T0 = 2π/2π =1seg.

Solución:
h=cos(2*pi*t);
figure(12)
plot(t,h)
y=myconv(h,x);
figure(13)
plot(w,y)
IV. DATOS FIRMADOS:

Você também pode gostar