光学课堂 首页 资讯 查看内容

菲涅尔波带片及用Matlab仿真(续)

2021-12-20 11:08| 发布者:Davis| 查看:659| 评论:0|原作者: 小小光08

摘要:Learn about Fresnel zoneplates, their different versions such as amplitude and phase FZPs, and the advantages of using binary phase FZPs in various applications. Explore the optics configuration for focusing a parallel beam of light using a 1D FZP and the

Fresnel zoneplates

The amplitude version of the FZP was inventedas early as 1871 by Lord Rayleigh. 36 The phase version of the FZP is one ofthe most useful inventions and is present in many different currentapplications.

The optics configuration for focusing aparallel beam of light using a 1D FZP is shown in Fig. 1



Light diffracted from consecutive zones of theFZP are out of phase by π, which corresponds to a path difference of λ/2.Hence, in the amplitude FZP, the zones with odd zone numbers are blocked toremove the light that is out of phase with respect to the light diffracted bythe zones with even zone numbers.

Such an FZP has only 10% efficiency. Thisdisadvantage can be overcome by making a phase element, with the addition ofphase π to either the even or odd zones using a refractive material ofcalculated thickness and refractive index (such as photo resist or electronbeam resist). Such binary phase FZPs have a relatively higher efficiency of40%.

The path difference equation for the design ofa 1D FZP is given in bySolving Eq. (1) and rearranging theterms, we obtain the width of the grating lines xn as




The first term inside the square root isnegligible compared to the second term. Hence, the approximate value of thewidths of the grating lines is given by



The 1D FZP has a line focus similar to that ofa cylindrical lens. The MATLAB code for simulation and analysis of a 1D phaseFZP is shown in Table 1. The image of the 1D FZP and its diffraction patternare shown in Figs. 2 (a) and (b), respectively.

 

Table 1 MATLAB code for design of a 1Dbinary phase FZP.

%%1-d FZP%%

clear; %Clear all memory

%Defining FZP parameters

N=500; %Define Matrix sizes

M=50;%Define the number ofgrating lines

A=ones(N,N); %DefineMatrices by assigning 1 to all pixels

x=zeros(M,M);

f=3000;%Define the focal lengthof FZP in micrometers

lambda=0.633;%Definewavelength in micrometers

% Constructing the FZP

for n=1:M;

x(n)=sqrt(n*f*lambda);

end

for n=1:2:M;

for q=1:N;

if abs(q-N/2)>x(n) &&abs(q-N/2)<x(n+1);

A(:,q)=exp(1i*pi);

end

end

end

A=repmat(A,N,1); %replicatethe row to create a 2D grating

%Observing the gratingoutput in the far-field

E=fftshift(fft2(A)); %fftshift isused to re-order the terms in their natural order

IN=(abs(E)/(N*N)).*(abs(E)/(N*N));% Calculating intensity

figure(1)

colormap(gray);

imagesc(angle(A))

figure(2)

colormap(gray);

imagesc(IN);

 



Acircular FZP

A circular FZP can be designed using a similarprocedure. In that case, the radius rn of each zone will be definedinstead of the distance away from the axis in one direction:



The MATLAB code for a circular FZP can bedesigned by replacing the x or y coordinate in the nested-for-loop section usingradial coordinates. The circular FZP design part using nested-for-loops isshown in Table 2 The M value is modified from 50 to 32 in order to fit thecircular FZP to the matrix size.

 

Table 2  MATLAB code for design of a circular binaryphase FZP.

 

clear; %Clear all memory

%Defining FZP parameters

N=500; %Define Matrix sizes

M=32;%Define the number ofgrating lines

A=ones(N,N); %DefineMatrices by assigning 1 to all pixels

x=zeros(M,M);

f=3000;%Define the focal lengthof FZP in micrometers

lambda=0.633;%Definewavelength in micrometers

%%Circular FZP%%

% Constructing the FZP

for n=1:M; %Calculatethe width of the grating lines

r1(n)=sqrt(n*f*lambda);

end

for n=1:2:M;

for p=1:N;

for q=1:N;

r(p,q)=sqrt((p-N/2)*(p-N/2)+(q-N/2)*(q-N/2));

if r(p,q)>r1(n) &&r(p,q)<r1(n+1);

A(p,q)=exp(1i*pi);

end

end

end

end

%Observing the gratingoutput in the far-field

E=fftshift(fft2(A)); %fftshift isused to re-order the terms in their natural order

IN=(abs(E)/(N*N)).*(abs(E)/(N*N));% Calculating intensity

figure(1)

colormap(gray);

imagesc(angle(A))

figure(2)

colormap(gray);

imagesc(IN);

 





路过

雷人

握手

鲜花

鸡蛋

最新评论

联系客服 关注微信 访问手机版 返回顶部