Taller señales y sistemas

Convolucion
Luis Miguel Romero Gutierrez
T00046388
1. %x(t)=1,0<t<2 and h(t)=1-t,0<t<1
tx1=-2:.1:0;%se establecen los diferente rangos para grafica cada parte
de la convolucion con x(t)
tx2=0:.1:2;
tx3=2:.1:4;
tx=[tx1 tx2 tx3];
x1=zeros(size(tx1)); ;%se crean vectores con el mismo tamaño de los
rangos
x2=ones(size(tx2));
x3=zeros(size(tx3));
x=[x1 x2 x3]; ;%se crea una matriz con todos los vectores ya obtenidos

th1=-2:.1:0; ;%se establecen los diferente rangos para grafica cada
parte de la convolucion con h(t) dándole un valor de prueba
th2=0:.1:1;
th3=1:.1:4;
th=[th1 th2 th3];
h1=zeros(size(th1)); %se crean vectores con el mismo tamaño de los
rangos
h2=1-th2;
h3=zeros(size(th3));
h=[h1 h2 h3]; %se crea una matriz con todos los vectores ya obtenidos

plot(tx,x,th,h,':*') %se grafica las señal de entrada y la respuesta al
impulso
ylim([-.1 1.1]) %se establecen los limite en el eje y
legend('x(\tau)','h(\tau)') %se le dan nombre a cada uno de los ejes
grid %Funcion para graficar las dos señales sin que se borre una

%reflection
figure
plot(tx,x,-th,h,':*') %se grafica a la respuesta al impulso aplicando
una inversión o refleción para cumplir h(t-T)
legend('x(\tau)','h(-\tau)')
ylim([-.1 1.1])

%shifting
figure
t=-2; %se define el respectivo corrimiento
plot(tx,x,-th+t,h,':*') %se grafica a la respuesta al impulso con la
inversión y el corrimiento
ylim([-.1 1.1])
legend('x(\tau)','h(t-\tau)')

%zero-overlap
figure
t=-2; %se define el corrimiento
plot(tx,x,-th+t,h,':*') %Se grafica la primera parte de la convolucion
es decir cuando t<0
ylim([-.1 1.1])
legend('x(\tau)','h(t-\tau)')

%partial-overlap
figure
t= 0.5; %Se define el corrimiento en un valor arbitrario cuando t>0, es
decir cuando el impulso se mueve y entra en el limite de la señal de
entrada
plot(tx,x,-th+t,h,':*') %Se grafica la segunda parte es decir la
convolucion cuando t>0 pero t<2 , para lo cual se le da una valor
arbitrario que se encuentra entre el limite dado
ylim([-.1 1.1])
legend('x(\tau)','h(t-\tau)')

T=1;
r=0:.1:t;
a=1/T*r+1-t/T; %Se establece el limite donde se interceptan las dos
señales para luego hacerla más visible subrayándola
hold on; area(r,a); %Se utiliza hold para subrayar el área de
intercesión
hold off;

%complete-overlap
figure
t=1.6; %Se define el corrimiento para cuando la respuesta al impulso se
encuentra totalmente dentro de x(t) pero t<2
plot(tx,x,-th+t,h,':*') %Se grafica la tercera parte de la convolucion
0<t>2 pero el limite inferior se encuentra > 0
ylim([-.1 1.1])
legend('x(\tau)','h(t-\tau)')

r=t-T:.1:t;
a=1/T*r+1-t/T; %se halla la el área de intercesión de la dos señales
hold on; area(r,a); %Se grafica encima de la grafica subrayándolo
hold off;

%partial-overlap
figure
t=2.4; %Se establece los limites donde se trasladara la respuesta al
impulso para hallar la convolucion
plot(tx,x,-th+t,h,':*') %Se grafica la cuatra parte de la convolucion es
decir cuando t>1
ylim([-.1 1.1])
legend('x(\tau)','h(t-\tau)')
d
r=t-T:.1:2;
a=1/T*r+1-t/T; %Se halla el receptivo intersecto de las dos señales
hold on; area(r,a);
hold off;

%zero-overlap
figure
t=3.6; %Se establece los límites para cuando las dos señales ya no se
intersectan
plot(tx,x,-th+t,h,':*') %%Se grafica la quinta parte de la convolucion
es decir cuando t>2
ylim([-.1 1.1])
legend('x(\tau)','h(t-\tau)')

%convolution calculation
syms t r
f=1-t+r; %Se establece el rango de que recorrerá la respuesta al sistema
y=int(f,r,0,t)Se aplica el concepto de la convolucion para hallar la
salida en ese intervalo

y=int(f,r,t-1,t) %se aplica el concepto de la convolucion para hallar la
salida de sistema en el intervalo dado
simplify(y) %Se simplifica a lo mínimo la expresión

y=int(f,r,t-1,2) %se aplica el concepto de la convolucion para hallar la
salida de sistema en el intervalo dado

t1=0:.1:1;
t2=1:.1:2;
t3=2:.1:3;
y1=t1-(t1.^2)/2;
y2=0.5*ones(size(t2));
y3=0.5*((3-t3).^2);

figure
plot(t1,y1,t2,y2,'.',t3,y3,':') %sumando cada una de la respuestas se
obtine la grafica de la señal de salida
ylim([0 0.6])
title('Output signal y(t)');

Aquí se muestra la señal de entrada y la respuesta al impulso Figura 2. La respuesta al impulso aplicándole una inversión o reflexión .1. Figura 1.

Aquí se muestra la señal de entrada y la respuesta al impulso con el corrimiento en t y la reflexión Figura 4. Convolucion para t<0 .Figura 3.

Convolucion cuando la respuesta al impulso 0<t<2 . Se muestra gráficamente la convolucion cuando la respuesta al impulso va de-1 hasta t>0 Figura 6. Figura 5.

Figura 7. Convolucion cuando t>2 . Convolucion para 1<t<3 Figura 8.

plot(ty.0<t<2 and h(t)=1-t.% se define el vector donde estará el resultado de la convolucion t1=0:step:1.% con el comando conv se calcula la señal de salida aplicando el concepto de convolucion para los limmites establecidos ty=0:step:4. % convolution between x(t)=1.Figura 9. .0<t<1 step=0.01. .% se define la gráfica y la representación de la señal resultante .y). t2=1+step:step:2. La señal de salida resultante de aplicar el concepto de convolucion 2. y=conv(x. h=[h1 h2].h)*step. t=0:step:2. . . h1=1-t1. h2=zeros(size(t2)).% limite de la señal de entrada que se trata de un Escalón unitario x=ones(size(t )).

'h(t-\tau)') figure .h) legend('x(\tau)'.Figura B1. % se declara la respuesta al impulso h=[0 h1]. ':'.3 0].x.% se declara un vector de fila h1=exp(-th1).5<t<3 %analytical figure th1=linspace(0. plot(tx.6 0.3 0.6 0.6 -1<t<0. Señal de salida resultante de realizar la convolucion .':'. th=[0 th1].5 0.x.3 0.-th+t. 3.h) % se grafican en continuo legend('x(\tau)'.1001). % convolution between h(t)=exp(-t)u(t) and x(t)=0.5 % 0.th.5 3 3].10. tx=[-1 -1 0.'h(\tau)') figure t=-3% se halla la convolucion cuando n=1 plot(tx. % se definen las escalas de los dos términos a convu x=[0 0.

t=-0.':'.6*exp(-(t-r)).5].*(exp(t2)-2*exp(-1)+exp(0. f2=0. nos queda este limite plot(tx.3*ones(size(t2)).-th+t.r.6*ones(size(t1)). x1=0.01:0.5. % se se establece un limiete para cuando t>0 pero t<4 plot(tx.5+0.5)+int(f2. t2=[1.3*exp(-t2).9. y2=0.-th+t. y=int(f1.0.0.5)-2*exp(-1)+exp(3)).-th+t. y=[y1 y2 y3].3 % analizando la convolucion cuando t<0 . y3=0.'h(t-\tau)') % se forma la gráfica y se intersectan y se submarca las interseciones syms t r f1=0.'h(t-\tau)') syms t r f=0.5)+int(f2.r.3) % se grafica cada una de la convoluciones en una sola grafica figure t1=-1:. y=int(f.1:3.h) % se grafica la interacción de esa dos señales legend('x(\tau)'. .r.6*exp(-(t-r)).r.3*exp(-(t-r)).1:0.01:10].01:1.-1.4. % se halla el limite para caonvolucion para cuando las dos señales se intersecan plot(tx.5.01:4] t3=[4.0.h) legend('x(\tau)'.x. x=[x1 x2 x3].x.y) title('Output signal y(t)') Otro método por el cual se puede hallar más simplificado esta convolucion %2nd method figure t1=[0:0.5)).1:10.5. x2=0. plot(t.6*exp(-(t-r)). x3=zeros(size(t3)).-1.h) xlim([-8 6]) legend('x(\tau)'.3*exp(-(t-r)).0.6*(1-exp(-1-t1)). f2=0.r.x. t=[t1 t2 t3].'h(t-\tau)') % se arma la respectiva intercesión syms t r f1=0.t) figure t=3. y1=0.3*exp(-t3)*(exp(0.5:. t2=0. t3=3:.':'.':'. y=int(f1.-1.t) figure t=1.01:0.

01:0.5+0.01:3]. x3=zeros(size(t3)). x=[x1 x2 x3].h)*.h=exp(-[t1 t2 t3]).01:10].01:19. y=conv(x. x2=.3*ones(size(t2)). h1=zeros(size(t1)). plot(-1:0.5].01:20. y=conv(x. x1=.01:0. t3=[3.01:10.y) Figura 1 . t2=0:.01. t1=-1:.01. h2=exp(-t2). y) title('Output signal y(t)') %3rd method figure t1=[-1:0. h=[h1 h2]. Aquí se muestra la señal de entrada y la respuesta al impulso .01.01:-. t2=[.01:0. plot(-2:.6*ones(size(t1)).h)*0.

Figura 2. Convolucion para cuando t<0 pero la señales se intersecan . Convolucion grafica para cuando t<0 Figura 3.

convolucion grafica para cuando t>0 pero t<2 Figura 5 .Figura 4 . convolucion grafica para cuando 0<t<4 .

Señal de salida resultante Figura 7 .Figura 6. Señal de salida a diferente escala .

01:2.h.y).1 1.h)*.% se crean los vectores que contrendan los resultados de cada convolucion x2=ones(size(t2)).01.01:4.1]) figure plot(t.2-t.01:10.01:2.y) legend('y(t)') .01:20.% los mismo se hace para x3=zeros(size(t3)).01:1-0.x.'h(t-\tau)=h(2-\tau)') %2nd way figure t=1:.'h(t-\tau)=h(0-\tau)') ylim([-.1<t<2 %1st way t1=0:.0-t. x=[x1 x2 x3]. h=ones(size(t)). x=ones(size(t)). plot(2:.% en un vector se guardas todos los limites x1=zeros(size(t1)). h=x.h)*.01:.01.x.1 1.% se establece los limites de respuesta al impulso en t<0 t2=1:. y=conv(x.% se establece los limites de las respuesta al impulso en 0<t>1 t3=2.01.1 1. se grafica la señal resultante axis([0 6 -.h.% convolution between and x(t)=h(t)=1.':') ylim([-.':') legend('x(t)'.Se utiliza el comando para realizar aplicando el concepto de convolucion plot(0:.1]) legend('x(t)'. y=conv(x.1]) legend('y(t)') %the two signals Figure% otra forma de realizar la convolucion correspondiente plot(t.% limites de la resultante t> 2 t=[t1 t2 t3].

Figura 4.2 .3 convolucion grafica cuando la señal respuesta impulso se desplaza 0<t<1 . convolucion grafica para t<0 Figura 4.

.%se arma h(t) y=conv(x.01:4.resultado para cada uno de los estados .y) .%Limites del desplazamiento de h(t) h=cos(2*pi*t). .01:2. . .%Limites de la segunda señal x1=2*t1.01.01:.%se designa la forma de la señal 1 x2=4-2*t2. .4 Señal de salida 5.01:.h)*. .%vector t=[t1 t2 t3]. . t1=0:.%Limites para cuando la respuesta al impulse se mueve t<0 t2=1. .01:8.%Limites de la señal x(t) t3=2.%se convoluciona directamente plot(0:. .01:1.Figura 4.% vector donde se realizar la el desplacamientode h(t) x=[x1 x2 x3].%se designa la forma de la señal2 x3=zeros(size(t3)).

.

.

.

1 1. % se establece el limite del plano en el eje x x=[0 1 0 0].2 3. % se establece los valores de la respuesta al impulso n=0:3.2 6.2 -.2 6.2 -. % Se define la respuesta al impulso n=0:3.2 -.1]) legend('x[n]=\delta[n-1]') figure h=[ 2 4 3 1].%h[n]=S{delta[n]} x=[1 0 0 0]. % se designan los valores de la entrada stem(n.% se declara un vector de ceros n=0:3.2 3. % se realiza la convolucion de x[n] y h[n] stem(0:6.1]) legend('x[n]=\delta[n]') figure h=[ 2 4 3 1].y) % se grafican en discreta axis([-.h) % se grafica en discreta axis([-.x).1 4.2 -. % se realiza la convolucion de x[n] con h[n] stem(0:6.1]) legend('y[n]=h[n-1]') .h) % se grafica en discreto la respuesta al impulso axis([-.1 4.1]) % se establece la escala legend('h[n]') figure y=conv(x.h).h).1]) % se establece la escala legend('y[n]=h[n]') %h[n-n0]=S{delta[n-n0]} figure n=0:3.1 -.1 3.1 4. % se grafican discreta axis([-.1]) % se establece la escala legend('h[n]') figure y=conv(x.y) % se grafica en discreta axis([-.1 4.x) % se grafica el pulso en tiempo discreto axis([-. % se establece el límite del plano en el eje x stem(n. % se establece el limite de la grafica stem(n.2 -.2 6. stem(n.1 1.

Grafica del impulso Figura 2 .Figura 1. Grafica de h[n] .

La salida resultante de la convolucion del impulso con h[n]. impulso con corrimiento . Figura 4.Figura 3. Entrada .

% discrete time convolution of % x[n]=[1. Señal de salida resultante de la convolucion 8. % se define el valor de la entrada stem(kx.n=0. % se define los valores del eje n . % se grafican en discreto legend('x[k]') axis([-.1 2.Figura 5 .n=0.1.2.1.1 -.2].x). Grafica de h[n] Figura 6 .3 %the signals kx=[0 1].1].1 and h[n]=[2.1.1]) figure kh=0:3. % se define el parámetro n que seria en eje x x=[1 2].1 3.

al impulse axis([-3.h).1 -.1 3.1]) legend('h[n-k]=h[1-k]') % se halla la convolucion cuando n=2 figure. stem(-kh+n. n=2. axis([-5.1.1 2.h).h).1]) legend('x[k]') figure n=-2. axis([-5.1]) legend('h[-2-k]') %overlap % se halla los limite de la convolucion cuando n<0.h).1]) legend('h[n-k]=h[2-k]') % se halla la convolucion cuando n=3 figure n=3.1]) legend('h(n-k)=h(0-k)') % se halla la convolucion cuando n=1 figure.1 -.1 2.1]) legend('x(k)') figure n=0.1 3.1 2.x) % se grafica de nuevo la señal de entrada.x) axis([-5.1]) legend('h[k]') %reflection stem(-kh.1 -.1 2.1 3.h).h). axis([-5.1 -. % se grafica la resp. figure stem(kx.1 3. axis([-5. Al impulso invertida y con el corrimiento correspondiente axis([-5.1 2.1 -. stem(-kh+n.1.1]) .1 -. % se grafican en discreto axis([-.1 2.1]) legend('h[-k]') %shifting %zero overlap figure stem(kx.1 -. axis([-2.h) % se invierte y grafica la resp.1 .1 2.1 3. stem(-kh+n. % se establecen los valores de la respuesta al impulso stem(kh.1 2. h=[2. stem(-kh+n.1 6.1 3. n=1.1 -. como se trata de la convolucion de escalones unitarios corridos se puede aplicar este método.1 3. stem(-kh+n.1 -.1 2.1].

1 6.1]) legend('y[n]') Figura 1.1 -. stem(n. Grafica de la señal x[n] . axis([-2.1 5.1]) legend('h[n-k]=h[4-k]') % se halla la convolucion cuando n=5 %zero overlap n=5.2]. stem(-kh+n.y).1]) legend('h(n-k)=h(5-k)') % Finalmente se guarda todos los resultados de la convolucion en un vector y se grafica la señal de salida resultante %result n=0:4.5. axis([-. legend('h[n-k]=h[3-k]') % se halla la convolucion cuando n=4 figure n=4.h).1 -. y=[2. stem(-kh+n. axis([-2.1 2.1 -.3.1 2.h).1 4.3.1 6.

Figura 2 . Grafica de respuesta al impulso invertida Figura 3 . Grafica de la señal de entrada a diferente escalas .

La graficas de aquí en adelante son el resultado de la conv grafica con cada uno de los impulso de x[n] con h[n] .

Figura 7. Señal de salida .

1 -.1].y) axis([-2.2.1]).5].0].%limites de h(t) x=[0. %limites subplot(121).5 8.5].2.5]).4.4.4.h).5 -.1 5.0.0<=n<=4 % h=[1. legend('y[n]') . stem(n.5 8. % x=[1.1 -.3.2.1]).2.-1<=n<=1 %1st approach n=-1:4.2.3.y) %Graficamos axis([-2.3.1].h).5 -.9.h).x).1 4.1 4. legend('h[n]') figure y=conv(x. axis([-1.1 5.2.1. stem(-1:5. stem(n. %se utiliza este comando para ejecutarla axis([-1. %teniendo los valores convolucionamos directamnet stem(-2:8. h=[1. legend('y[n]') %2nd approach figure%Los mismo se realiza para este ejempl x=[1. y=conv(x. %valores de la señal de entrada da en delta h=[1.5]).5]. %se grafican cada uno de los puntos en distreta de x(t) legend('x[n]') subplot(122).5 16.5 16.1.0.

-5<=n<=5 %1st approach n1=-5:9.10<=n<=20 % h[n]=n. .Señal de entrada y la respuesta al impulso la señal de salida después de haber realizado la conv 10. % Discrete time convolution % x[n]=1.

h). nh=-5:5. %vector lleno de cero indicando un desplazamiento x=[x1 x2]. Figura 1 . %se realiza la convolucion entre la señal y la respuesta stem(-10:40. h=[h1 h2]. %2nd approach figure nx=10:20. n1=-5:5. grid .h). h2=zeros(size(n2)). n2=10:20. h=nh. legend('y[n]'). n2=6:20. Señal de salida . legend('y[n]'). h1=n1. stem(5:25. x1=zeros(size(n1)). %se grafica en discreta ylim([-16 16]). x=ones(size(nx)). y=conv(x.y). y=conv(x. %limites de x(t) x2=ones(size(n2)). grid.y) axis([-10 40 -16 16]).