clf
clear all
set(0,'defaultaxesfontsize',20);
dt=0.01;
t=0:dt:10;
% 
a=-1; b=-0.5;
a1=1; a2=1;
t0=0;
x=a1*exp(a*(t-t0)).*unitstep(t-t0);
h=a2*exp(b*t).*unitstep(t);
y=dt*conv(x,h);
%
c1=1/(a-b); c2=1/(b-a);
tc=0:dt:20;
z=(c1*a1*exp(a*(tc-t0))+c2*a2*exp(b*(tc-t0))).*unitstep(tc-t0);
%
e1=-0.25; e2=1.25;
figure(1)
subplot(2,2,1)
plot(t,x,'Linewidth',3)
grid
axis([min(t) max(t) e1 e2])
set(gca,'XTick',[min(t):max(t)],'YTick',[e1:.25:e2])
title('x(t)');
subplot(2,2,2)
plot(t,h,'Linewidth',3)
grid
axis([min(t) max(t) e1 e2])
set(gca,'XTick',[min(t):max(t)],'YTick',[e1:.25:e2])
title('h(t)');
subplot(2,2,3)
plot(tc,y,'Linewidth',3)
grid
axis([min(tc) max(tc) e1 e2])
set(gca,'XTick',[min(tc):2:max(tc)],'YTick',[e1:.25:e2])
title('y(t)=x(t)*h(t) via DT convolution');
hold on
plot(tc,z,'r','Linewidth',3)
hold off
subplot(2,2,4)
plot(tc,z,'r','Linewidth',3)
grid
axis([min(tc) max(tc) e1 e2])
set(gca,'XTick',[min(tc):2:max(tc)],'YTick',[e1:.25:e2])
title('Theoretical y(t)=x(t)*h(t)');

