clear all

%%%%%%%%%%% parameter %%%%%%%%%%%%%%%%
alpha1=0.05;
alpha2=0.05;
maxlaml=1.1/0.50;
minlaml=0.9/0.50;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

l=0.1;
c=3e8;
imagg=sqrt(-1);
Z0=120*pi;

l1=alpha1*l;
l2=alpha2*l;
l3=l-l1-l2;

minlam=minlaml*l;
maxlam=maxlaml*l;
minf=c/maxlam;
maxf=c/minlam;

zLmin=-1*l;
zLmax=0;
zCmin=0;
zCA=l1;
zCB=l1+l3;
zCmax=l;
zRmin=l;
zRmax=zRmin+1*l;

delz=1/5000;
zL=[zLmin:delz:zLmax];
zCL=[zCmin:delz:zCA];
zCC=[zCA+delz:delz:zCB];
zCR=[zCB+delz:delz:zCmax];
zR=[zRmin:delz:zRmax];

framemax=96;
M = moviein(framemax);
set(gcf,'Position',[100 100 640 480])

for n=1:framemax

f= minf+1*(maxf-minf)/(framemax-1)*(n-1);

omega = 2*pi*f;
k=omega/c;

ZBl2=imagg*Z0*tan(k*l2);
ZB0=Z0;
ZB=ZBl2*ZB0/(ZBl2+ZB0);
ZAB=Z0*(ZB/Z0+imagg*tan(k*l3))/(1+imagg*(ZB/Z0)*tan(k*l3));
ZAl1=imagg*Z0*tan(k*l1);
ZA=(ZAl1*ZAB)/(ZAl1+ZAB);

GaAL=(ZA-Z0)/(ZA+Z0);
VL=1*(exp(-imagg*k.*zL)+ GaAL*exp(imagg*k.*zL));

V0CL=VL(length(VL))/(exp(imagg*k*l1)-exp(-imagg*k*l1));
zlocalCL=-zCL;
VCL=V0CL*(exp(-imagg*k.*zlocalCL)-exp(imagg*k.*zlocalCL));

GaB=(ZB-Z0)/(ZB+Z0);
V0CC=VL(length(VL))/(exp(imagg*k*l3)+GaB*exp(-imagg*k*l3));
zlocalCC=(zCC-zCB);
VCC=V0CC*(exp(-imagg*k.*zlocalCC)+GaB*exp(imagg*k.*zlocalCC));

V0CR=VCC(length(VCC))/(exp(imagg*k*l2)-exp(-imagg*k*l2));
zlocalCR=(zCR-zCmax);
VCR=V0CR*(exp(-imagg*k.*zlocalCR)-exp(imagg*k.*zlocalCR));

V0R=VCC(length(VCC));
zlocalR=(zR-zRmax);
VR=V0R*exp(-imagg*k*zlocalR);

ztot=[zLmin:delz:zRmax];

ztot1=[zCL,zCC,zCR];
Vtot1=[VCL,VCC,VCR];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure(1)
hold off

subplot(2,1,1)
plot(ztot1,abs(Vtot1),'b','linewidth',2)
title('VSWP (resonator)','fontsize',18)
grid on
axis([ztot(1) ztot(length(ztot)) 0 20])

subplot(2,1,2)
plot(zL+l1,abs(VL),'linewidth',2)
hold on
plot(zR-l2,abs(VR),'linewidth',2)
title('VSWP (incident and transmitted)','fontsize',18)
grid on
axis([ztot(1) ztot(length(ztot)) 0 3])

%subplot(2,1,2)
%plot(z,real(Etot),'linewidth',2)
%title('Real(V)','fontsize',18)
%axis([zmin zmax -2 2])
%grid on

xlabel(['5% tap point(low Q), L/\lambda=' ,num2str(l/(c/f))],'Color','k','fontsize', 18)

M(:,n) = getframe(gcf);

end

clf reset
set(gcf,'Position',[100 100 800 600])
axis off
movie(M,1,2)