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

