DIFFR3 Diffraction patterns

by Chuck DiMarzio Northeastern University 2010

!! 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.

Contents

Start

fcount=5; % for generating figure numbers
xaxis=fftaxisshift((0:1023)*16/1024);
subregion=(floor(length(xaxis)/4):floor(length(xaxis)*3/4));
[x,y]=meshgrid(xaxis,xaxis);

% uniformly illuminated circular aperture
r=sqrt(x.^2+y.^2);
pup=double((r<1/2));

fig6=figure;imagesc(xaxis(subregion),xaxis(subregion),pup(subregion,subregion));
axis image;colormap(flipud(gray));colorbar;
fcount=fcount+1;
%print('-depsc',[epspath,'8-',num2strz(fcount,2),'-diffr']);

img=fftshift(fft2(fftshift(pup)));
faxis=fftaxisshift(fftaxis(xaxis));
fig7=figure;imagesc(faxis(subregion),faxis(subregion),...
               20*log10(abs(img(subregion,subregion))));
moose=caxis;caxis(max(abs(moose))+[-30,0]);
axis image;colormap(flipud(gray));colorbar;
fcount=fcount+1;

fig8=figure;
plot(faxis(subregion),20*log10(abs(img(floor(length(faxis)/2), ...
                                      subregion))));
grid on;
plotaxis=axis;plotaxis(4)=80;
axis([plotaxis(1)/2,plotaxis(2)/2,plotaxis(4)+[-50,0]]);
fcount=fcount+1;

% uniformly illuminated square aperture
pup=zeros(size(x));
pup(find((abs(x)<1/2) & (abs(y)<1/2)))=1;

fig9=figure;imagesc(xaxis(subregion),xaxis(subregion),pup(subregion,subregion));
axis image;colormap(flipud(gray));colorbar;
fcount=fcount+1;

img=fftshift(fft2(fftshift(pup)));
faxis=fftaxisshift(fftaxis(xaxis));
fig10=figure;imagesc(faxis(subregion),faxis(subregion),...
               20*log10(abs(img(subregion,subregion))));

caxis(max(abs(moose))+[-30,0]);
axis image;colormap(flipud(gray));colorbar;
fcount=fcount+1;
%print('-depsc',[epspath,'8-',num2strz(fcount,2),'-diffr']);

fig11=figure;
plot(faxis(subregion),20*log10(abs(img(floor(length(faxis)/2), ...
                                      subregion))));
grid on;
axis([plotaxis(1)/2,plotaxis(2)/2,plotaxis(4)+[-50,0]]);
fcount=fcount+1;
%print('-depsc',[epspath,'8-',num2strz(fcount,2),'-diffr']);

% Gaussian no aperture
pup=zeros(size(x));
r=sqrt(x.^2+y.^2);
w=1/2;
pup=sqrt(2/(pi*w^2))*exp(-r.^2/w^2);

fig12=figure;imagesc(xaxis(subregion),xaxis(subregion),pup(subregion,subregion));
axis image;colormap(flipud(gray));colorbar;
fcount=fcount+1;
%print('-depsc',[epspath,'8-',num2strz(fcount,2),'-diffr']);

img=fftshift(fft2(fftshift(pup)));
faxis=fftaxisshift(fftaxis(xaxis));
fig13=figure;imagesc(faxis(subregion),faxis(subregion),...
               20*log10(abs(img(subregion,subregion))));
axis image;colormap(flipud(gray));colorbar;
caxis(max(abs(moose))+[-30,0]);
fcount=fcount+1;
%print('-depsc',[epspath,'8-',num2strz(fcount,2),'-diffr']);

fig14=figure;
plot(faxis(subregion),20*log10(abs(img(floor(length(faxis)/2), ...
                                      subregion))));
grid on;
fcount=fcount+1;
axis([plotaxis(1)/2,plotaxis(2)/2,plotaxis(4)+[-50,0]]);
%print('-depsc',[epspath,'8-',num2strz(fcount,2),'-diffr']);