FLENS Fresnel lens and zone plate figures

by Chuck DiMarzio Northeastern University November 2008

!! This file may be copied, used, or modified for educational and
!! research purposes provided that this header information is not
!! removed or altered, and provided that the book is cited in
!! publications, as DiMarzio, Charles A., Optics for Engineers,
!! CRC Press, Boca Raton, FL, 2011.
!! http://www.crcpress.com
!! Other distribution is prohibited without permission.
Figure numbers
56 phase in a lens
57 phase in a Fresnel lens
58 real field through fresnel zone plate
59 imaginary field through fresnel zone plate
60 Fresnel diffraction from uniform aperture
61 Fresnel diffraction focused case
62 zone plate pattern
63 Fresnel lens drawing
counter=56;
lambda=0.5145e-6;  % Meters - Argon ion green line
k=2*pi/lambda;

z=10;
xx=(-0.01:0.0001:0.01);
[cx,cy]=meshgrid(xx,xx);
rsq=cx.^2+cy.^2;
phi=k*rsq/2/z;phi(rsq>0.01^2)=0;
cz=cos(phi);cz(rsq>0.01^2)=0;
sz=sin(phi);sz(rsq>0.01^2)=0;
ez=exp(1i*phi);ez(rsq>0.01^2)=0;
fig56=figure(counter);imagesc(xx*100,xx*100,phi);  % Plot the actual phase
axis image;colormap(flipud(gray));colorbar;
xlabel('x, cm');
ylabel('y, cm');
%print('-depsc',['8-',num2str(counter),'-fresd.eps']);
counter=counter+1;
%
fig57=figure(counter);imagesc(xx*100,xx*100,angle(ez));  % Plot the wrapped phase
axis image;colormap(flipud(gray));colorbar;
xlabel('x, cm');
ylabel('y, cm');
%print('-depsc',['8-',num2str(counter),'-fresd.eps']);
counter=counter+1;

zp=ez.*(cz>0);
fig58=figure(counter);imagesc(xx*100,xx*100,real(zp));  % Real and imaginary
%                                          parts of zone plate
axis image;colormap(flipud(gray));colorbar;
xlabel('x, cm');
ylabel('y, cm');
%print('-depsc',['8-',num2str(counter),'-fresd.eps']);
counter=counter+1;
%

fig59=figure(counter);imagesc(xx*100,xx*100,imag(zp));
axis image;colormap(flipud(gray));colorbar;
xlabel('x, cm');
ylabel('y, cm');
%print('-depsc',['8-',num2str(counter),'-fresd.eps']);
counter=counter+1;
%

fx=fftaxisshift(fftaxis(xx));  % FFT of uniform aperture
fig60=figure(counter);imagesc(fx/100,fx/100,fftshift(10*log10(abs(fft2(ez)))));
caxis([20,40]);
axis image;colormap(flipud(gray));colorbar;
xlabel('f_x, /cm');
ylabel('f_y, /cm');
%print('-depsc',['8-',num2str(counter),'-fresd.eps']);
counter=counter+1;
%

fx=fftaxisshift(fftaxis(xx));  % FFT with Fraunhofer lens
fig61=figure(counter);imagesc(fx/100,fx/100,fftshift(10*log10(abs(fft2(rsq<0.01^2)))));
caxis([20,40]);
axis image;colormap(flipud(gray));colorbar;
xlabel('f_x, /cm');
ylabel('f_y, /cm');
%print('-depsc',['8-',num2str(counter),'-fresd.eps']);
counter=counter+1;
%
% FFT of zone plate
fig62=figure(counter);imagesc(fx/100,fx/100,fftshift(10*log10(abs(fft2(zp)))));
caxis([20,40]);
axis image;colormap(flipud(gray));colorbar;
xlabel('f_x, /cm');
ylabel('f_y, /cm');
%print('-depsc',['8-',num2str(counter),'-fresd.eps']);
counter=counter+1;
%
% Drawing of Fresnel lens

phi1d=max(max(phi))-phi(:,floor(length(xx)/2));
fl1d=pi-angle(ez(:,floor(length(xx)/2)));
opphi1d=phi1d*lambda/2/pi;
opfl1d=fl1d*lambda/2/pi;
fig63=figure(counter);
plot(opphi1d/2*1e6,xx*1000,'k-',-opphi1d/2*1e6,xx*1000,'k-',...
     opfl1d/2*1e6,xx*1000,'k-',-opfl1d/2*1e6,xx*1000,'k-');
xlabel('OPD, \mu m');ylabel('height, mm');
axis image;
%print('-depsc',['8-',num2str(counter),'-fresd.eps']);
counter=counter+1;
%