clf
clear all
set(0,'defaultaxesfontsize',20);
n=0:10;
N1=4; N2=3; 
a=2; b=3;
a1=1; a2=2;
x=a1*a.^(n).*(unitstep(n+0.5)-unitstep(n-N1+0.5));
h=a2*b.^n.*(unitstep(n+0.5)-unitstep(n-N2+0.5));
y=conv(x,h);
%
c1=a/(a-b); c2=b/(b-a);
nc=0:20;
z=(c1*a.^(nc)+c2*b.^(nc)).*unitstep(nc+0.5);
z=z-a.^N1*(c1*a.^(nc-N1)+c2*b.^(nc-N1)).*unitstep(nc-N1+0.5);
z=z-b.^N2*(c1*a.^(nc-N2)+c2*b.^(nc-N2)).*unitstep(nc-N2+0.5);
z=(a1*a2)*z;
%
% y(1)=x(1);
% for ni=2:(length(x)+length(h)),
% y(ni)=b*y(ni-1)+x(ni);
% end
%
e1=0; e2=40;
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:2: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:2:e2])
title('h[n]');
e3=max(z);
subplot(2,2,3)
stem(nc,y,'Linewidth',3)
grid
axis([min(nc) max(nc) e1 e3])
set(gca,'XTick',[min(nc):2:max(nc)],'YTick',[e1:10:e3])
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 e3])
set(gca,'XTick',[min(nc):2:max(nc)],'YTick',[e1:10:e3])
title('Theoretical y[n]=x[n]*h[n]');

