利用菲涅尔波带法讨论圆孔衍射时已知,由于相邻波带的相位相反,它们对观察点的作用相互抵消。当只露出一个波带时,光轴上点P0的光强是波前未阻挡时的4倍。 对于一个露出20个波带的衍射孔,其作用结果是相互抵消,点P0为暗点。 如果令其中的1、3、5、…19等10个奇数波带通光,而使2、4、6…20等10个偶数波带不通光,则点P0的合振幅为 因波前完全不被遮挡时点P0的合振幅为 挡住偶数带(或奇数带)后,点P0的光强约为波前完全不被遮挡时的400倍。 将奇数波带或偶数波带党组所制成的特殊光阑成为菲涅尔波带片。它类似于透镜,有聚光作用,也称为菲涅尔透镜。
下图给出了奇数和偶数波带被挡住(涂黑)的两种菲涅尔波带片。
波带片对轴上物点的成像公式为 此公式与薄透镜成像公式相似。 R相应于物距(物点与波带片之间的距离),r0相应于像距(观察点与波带片间的距离),而焦距为 折射透镜是利用光的折射原理聚光,从物点发出的光线到像点的光程相等,波带片利用光的衍射原理聚光,到达像点的相位差为2π的整数倍,产生相干叠加。 另外,波带片中有多个焦距,用平行光照射波带片时,出了点P0(主焦点)为亮点以外,还有一些光强较小的(次焦点)亮点。 相应第m个亮点(焦点)的焦距为 除了实焦点以外,波带片还有一系列的虚焦点,它们位于波带片的另一侧,其焦距仍由上式计算。
用Matlab仿真菲涅尔波带片:
(1)偶数波带片:将波带片所在屏幕分为1001*1001个点,依次求出各点处的半波带数,为奇数则涂黑,为偶数则不涂黑表示透光。设波带片中心为原点。 >> clear; >> lamda=600e-6; %设置波长为600nm >> R=3; %设置菲涅尔波带片半径为3mm >> f=1000; %设置焦距1m >> ym=R; xm=R; >>y=linspace(-ym,ym,1001); x=linspace(-xm,xm,1001); %设置程序中x,y向量,将屏幕分为1001*1001个点 >> for m=1:1001 for n=1:1001 %设置二重循环依次求菲涅尔波带片屏幕上各点 p=sqrt(x(m).^2+y(n).^2); %求各点所在圆半径 k=fix(p.^2./(lamda.*f)); %求各点半波点数 if p>R %如果屏幕上点大于波带片半径 I(m,n)=0; % 则用灰色表示背景,不是波带片部分 else if mod(k,2)==1 %判断半波带数奇偶,为奇数则涂黑 I(m,n)=0; else I(m,n)=1; %为偶数则不涂黑表示透光 end end end end >> colormap(gray(255)) >> N=255; %设置灰度等级 >> Ir=I*N; >> image(Ir); %绘制波带片图像 (2)奇数波带片:将波带片所在屏幕分为1001*1001个点,依次求出各点处的半波带数,为偶数则涂黑,为奇数则不涂黑表示透光。设波带片中心为原点。 >> clear; >> lamda=600e-6; %设置波长为600nm >> R=3; %设置菲涅尔波带片半径为3mm >> f=1000; %设置焦距1m >> ym=R; xm=R; >>y=linspace(-ym,ym,1001); x=linspace(-xm,xm,1001); %设置程序中x,y向量,将屏幕分为1001*1001个点 >> for m=1:1001 for n=1:1001 %设置二重循环依次求菲涅尔波带片屏幕上各点
p=sqrt(x(m).^2+y(n).^2); %求各点所在圆半径 k=fix(p.^2./(lamda.*f)); %求各点半波点数 if p>R %如果屏幕上点大于波带片半径 I(m,n)=0.5; % 则用灰色表示背景,不是波带片部分 else if mod(k,2)==1 %判断半波带数奇偶,为奇数则不涂黑表示透光 I(m,n)=1; else I(m,n)=0; %为偶数则涂黑表示不透光 end end end end >> colormap(gray(255)) >> N=255; %设置灰度等级 >> Ir=I*N; >> image(Ir); %绘制波带片图像 |