圆孔矩孔的菲涅尔衍射模拟matlab实现工程光学
- 格式:doc
- 大小:336.50 KB
- 文档页数:7
《工程光学》综合性练习二题目:基于matlab的衍射系统仿真综合练习大作业二一、要求3-4人组成小组,对下面给出的各题目利用Matlab等工具进行仿真。
练习结束时每组提交一份报告及仿真程序。
在报告中应注明各仿真结果所对应的参数,如屏与衍射屏间距、孔径形状尺寸等。
二、仿真题目1.改变观察屏与衍射屏间距,观察观察屏上发生的衍射逐渐由菲涅耳衍射转为夫琅和费衍射1)原理图:S点光源发出的波长lam=500纳米S点发出光线经过单缝,缝宽a;单缝到衍射屏的距离L'2)Matlab代码clear;clcl=10; %l=input ('单缝到衍射屏的距离L=');a=0.2; %a=input('单缝的宽度(mm)a=');lam=500e-6; %lam=input('波长(nm)');x=-1:0.001:1; %接收屏边界y=x./sqrt(x.^2+l^2);z=a.*y/lam;I=1000*(sinc(z)).^2; %计算接受屏某点光强subplot(2,1,1) %绘制仿真图样及强度曲线image(2,x,I)colormap(gray(3))title('单缝衍射条纹')subplot(2,1,2)plot(x,I)title(光强分布)3)初始仿真图样(d=10)4)改变d之后的图样(d=1000)5)变化规律根据衍射屏以及接受屏的相对位置不同,由此产生菲涅尔衍射和夫琅禾费衍射的区别,根据我们模拟的情况得到菲涅尔衍射和夫琅禾费衍射的明显不同是夫琅禾费衍射条件下:中央有一条特别明亮的亮条纹,其宽度是其他亮条纹的两倍;其他亮条纹的宽度相等,亮度逐渐下降。
2.改变孔径形状、尺寸,观察图样变化1)原理图矩孔衍射:透镜焦距:1000mm;照射光波长:500nm;孔高:a(mm);孔宽:b(mm);圆孔衍射:圆孔直径:r(mm);照射光波长:500nm;照射光波长:500nm;2)matlab代码矩孔衍射:focallength=1000;lambda=500;a=2.0;b=2.0;resolution=64;center=(resolution)/2;A=zeros(resolution,resolution);for i=1:1:resolutionfor j=1:1:resolutionif abs(i-center)<a*10/2 & abs(j-center)<b*10/2 A(j,i)=255;endendendE=ones(resolution,resolution);k=2*pi*10000/focallength/lambda;imag=sqrt(-1);for m=1:1:resolutionx=m-center;for n=1:1:resolutiony=n-center;C=ones(resolution,resolution);for i=1:1:resolutionp=i-center;for j=1:1:resolutionq=j-center;C(j,i)=A(j,i)*exp(-imag*k*(x*p+y*q)); endendE(n,m)=sum(C(:));endendE=abs(E);I=E.^2;I=I.^(1/3);I=I.*255/max(max(I));L=I;I=I+256;CM=[pink(255).^(2/3);gray(255)];Colormap(CM);edge=(resolution-1)/20;[X,Y]=meshgrid([-edge:0.1:edge]);x=linspace(-edge,edge,resolution);y=linspace(-edge,edge,resolution);subplot(1,2,1);surf(x,y,L);axis([-edge,edge,-edge,edge,0,255]);caxis([0,511]);subplot(1,2,2);image(x,y,I);axis([-edge,edge,-edge,edge,0,511]);view(2);axis square;圆孔衍射:clearlmda=500e-9; %波长r=1.2e-3; %f = 1; %焦距N = 19;K = linspace(-0.1,0.1,N) ;lmda1 = lmda* ( 1 + K) ;xm = 2000* lmda* f;xs = linspace(-xm,xm,2000) ;ys = xs;z0 = zeros( 2000) ;[x,y]= meshgrid( xs) ;for i = 1: 19s = 2*pi*r*sqrt(x.^2 + y.^2)./(lmda1( i) ) ;z = 4* ( besselj( 1,s)./( s + eps) ).^2; %光强公式z0 = z0 + z;endz1 = z0 /19;subplot( 1,2,1)imshow( z1* 255) ; %平面图xlabel( 'x')ylabel( 'y')subplot( 1,2,2)mesh( x,y,z1) %三维图colormap(gray)xlabel( 'x')ylabel( 'y')zlabel( '光强')3)仿真图样:矩孔衍射:a=1,b=2a=2,b=2可知:矩孔在一个维度上展宽一定倍数将导致衍射图样在相同维度上缩短相同倍数,同时能量会更向中心亮斑集中。
利用MATLAB语言进行光学衍射现象的仿真储林华(安庆师范学院物理与电气工程学院安徽安庆246011)指导教师:张杰摘要:光的衍射是光的波动性的一种重要表现,因此对光的衍射现象的研究,不仅具有重要的理论意义,而且在光学仪器研制和成像分析等诸多实际应用方面均有重要价值,但是其衍射光强的计算非常复杂,对实验条件的要求非常高,通常情况下很难得到满意的效果,严重影响了光学的教学。
本文从衍射的相关理论知识出发,首先介绍了惠更斯--菲涅耳原理及其数学表示形式,然后重点讨论了单色光经各种对称光学衍射元件(单缝,双缝,光栅,圆孔)的夫琅和费衍射情况,并分别给出了它们在焦平面上的衍射光强计算公式,最后利用科学计算软件MA TLAB对光的衍射现象进行了仿真,所得到的图样细致逼真,使整个物理过程变得直观形象,且与实验所得到的衍射图样进行了比较,两者吻合得很好,从而为光学的理论分析和实验教学提供了一种新的途径。
关键词:光的衍射,光栅衍射,圆孔衍射,Matlab,计算机仿真0 引言光的衍射现象是光具有波动性的重要特征,因此对衍射现象的研究无论在理论上还是在实践中都有很重要的意义。
对光的衍射现象的研究,始于17世纪,当时著名的荷兰科学家惠更斯提出了光是一种波的假说,并根据波动理论提出了光的传播理论——即惠更斯原理[1],根据这一原理,他解释了光的反射定律和折射定律,给出了折射率的意义,光在两种介质中的速度比。
到了19世纪,法国年轻的科学家菲涅耳,根据叠加原理把惠更斯原理进一步具体化,给出了光在传播过程中光强学计算公式,这就是著名的惠更斯-菲涅耳原理[2]。
但由于在实际应用过程中,障碍物形状的不规则性,导致光强的计算公式几乎无解析解,只能进行一些数值计算。
针对衍射计算中出现的困难,近代的研究人员想到运用科学的计算软件MA TLAB,利用其较强的绘图和图象功能,编写计算程序,使得多种衍射元件(单缝,双缝,光栅,矩孔,圆孔)下的衍射现象得以在计算机中形象地被模拟仿真。
成绩:《工程光学》综合性练习二题目:基于matlab的衍射系统仿真学院精密仪器与光电子工程学院专业测控技术与仪器年级20**级班级**班姓名20**年**月综合练习大作业二一、要求3-4人组成小组,对下面给出的各题目利用Matlab等工具进行仿真。
练习结束时每组提交一份报告及仿真程序。
在报告中应注明各仿真结果所对应的参数,如屏与衍射屏间距、孔径形状尺寸等。
二、仿真题目1.改变观察屏与衍射屏间距,观察观察屏上发生的衍射逐渐由菲涅耳衍射转为夫琅和费衍射1)原理图:S点光源发出的波长lam=500纳米S点发出光线经过单缝,缝宽a;单缝到衍射屏的距离L'2)Matlab代码clear;clcl=10;%l=input('单缝到衍射屏的距离L=');a=0.2;%a=input('单缝的宽度(mm)a=');lam=500e-6;%lam=input('波长(nm)');x=-1:0.001:1;%接收屏边界y=x./sqrt(x.^2+l^2);z=a.*y/lam;I=1000*(sinc(z)).^2;%计算接受屏某点光强subplot(2,1,1)%绘制仿真图样及强度曲线image(2,x,I)colormap(gray(3))title('单缝衍射条纹')subplot(2,1,2)plot(x,I)title(光强分布)3)初始仿真图样(d=10)4)改变d之后的图样(d=1000)5)变化规律根据衍射屏以及接受屏的相对位置不同,由此产生菲涅尔衍射和夫琅禾费衍射的区别,根据我们模拟的情况得到菲涅尔衍射和夫琅禾费衍射的明显不同是夫琅禾费衍射条件下:中央有一条特别明亮的亮条纹,其宽度是其他亮条纹的两倍;其他亮条纹的宽度相等,亮度逐渐下降。
2.改变孔径形状、尺寸,观察图样变化1)原理图矩孔衍射:透镜焦距:1000mm;照射光波长:500nm;孔高:a(mm);孔宽:b(mm);圆孔衍射:圆孔直径:r(mm);照射光波长:500nm;照射光波长:500nm;2)matlab代码矩孔衍射:focallength=1000;lambda=500;a=2.0;b=2.0;resolution=64;center=(resolution)/2;A=zeros(resolution,resolution);for i=1:1:resolutionfor j=1:1:resolutionif abs(i-center)<a*10/2&abs(j-center)<b*10/2 A(j,i)=255;endendendE=ones(resolution,resolution);k=2*pi*10000/focallength/lambda;imag=sqrt(-1);for m=1:1:resolutionx=m-center;for n=1:1:resolutiony=n-center;C=ones(resolution,resolution);for i=1:1:resolutionp=i-center;for j=1:1:resolutionq=j-center;C(j,i)=A(j,i)*exp(-imag*k*(x*p+y*q)); endendE(n,m)=sum(C(:));endendE=abs(E);I=E.^2;I=I.^(1/3);I=I.*255/max(max(I));L=I;I=I+256;CM=[pink(255).^(2/3);gray(255)];Colormap(CM);edge=(resolution-1)/20;[X,Y]=meshgrid([-edge:0.1:edge]);x=linspace(-edge,edge,resolution);y=linspace(-edge,edge,resolution);subplot(1,2,1);surf(x,y,L);axis([-edge,edge,-edge,edge,0,255]);caxis([0,511]);subplot(1,2,2);image(x,y,I);axis([-edge,edge,-edge,edge,0,511]);view(2);axis square;圆孔衍射:clearlmda=500e-9;%波长r=1.2e-3;%f=1;%焦距N=19;K=linspace(-0.1,0.1,N);lmda1=lmda*(1+K);xm=2000*lmda*f;xs=linspace(-xm,xm,2000);ys=xs;z0=zeros(2000);[x,y]=meshgrid(xs);for i=1:19s=2*pi*r*sqrt(x.^2+y.^2)./(lmda1(i));z=4*(besselj(1,s)./(s+eps)).^2;%光强公式z0=z0+z;endz1=z0/19;subplot(1,2,1)imshow(z1*255);%平面图xlabel('x')ylabel('y')subplot(1,2,2)mesh(x,y,z1)%三维图colormap(gray)xlabel('x')ylabel('y')zlabel('光强')3)仿真图样:矩孔衍射:a=1,b=2a=2,b=2可知:矩孔在一个维度上展宽一定倍数将导致衍射图样在相同维度上缩短相同倍数,同时能量会更向中心亮斑集中。
实验7衍射的Matlab模拟一、实验目的:掌握衍射的matlab模拟。
二、实验内容:1)单个圆孔夫朗和费衍射的matlab模拟2)双圆孔夫朗和费衍射的matlab模拟3)同一波长,狭缝数量分别为1、2、3、6、9、10时候的夫朗和费衍射的matlab模拟4)对4个不同波长的光照射时,狭缝数量分别为1、3时候的夫朗和费衍射的matlab 模拟5)单个圆孔菲涅尔衍射的matlab模拟6)模拟圆孔(或者单缝)衍射时,衍射屏到接收屏距离不同的时候衍射的图样1)clearclclam=632.8e-9;a=0.0005;f=1;m=300;ym=4000*lam*f;ys=linspace(-ym,ym,m);xs=ys;n=200;for i=1:mr=xs(i)^2+ys.^2;sinth=sqrt(r./(r+f^2));x=2*pi*a*sinth./lam;hh=(2*BESSELJ(1,x)).^2./x.^2;b(:,i)=(hh)'.*5000;B=b/max(b);endimage(xs,ys,b);colormap(gray(n));figure;plot(xs,B);colormap(green);-2.5-2-1.5-1-0.500.51 1.52 2.5x 10-3-2.5-2-1.5-1-0.50.511.522.5x 10-3-3-2-10123x 10-300.10.20.30.40.50.60.70.80.912)%双圆孔夫琅禾费衍射clear all close all clc %lam=632.8e-9;a=0.0005;f=1;m=300;ym=4000*lam*f;ys=linspace(-ym,ym,m);xs=ys;n=200;for i=1:m r=xs(i)^2+ys.^2;sinth=sqrt(r./(r+f^2));x=2*pi*a*sinth./lam;h=(2*BESSELJ(1,x)).^2./x.^2;d=10*a;deltaphi=2*pi*d*xs(i)/lam;hh=4*h*(cos(deltaphi/2))^2;b(:,i)=(hh)'.*5000;end image(xs,ys,b);colormap(gray(n));-2.5-2-1.5-1-0.500.51 1.52 2.5x 10-3-2.5-2-1.5-1-0.50.511.522.5x 10-33)lamda=500e-9;%波长N=[1236910];for j=1:6a=2e-4;D=5;d=5*a;ym=2*lamda*D/a;xs=ym;%屏幕上y 的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for i=1:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lamda;beta=pi*d*sinphi/lamda;B(i,:)=(sin(alpha)./alpha).^2.*(sin(N(j)*beta)./sin(beta)).^2;B1=B/max(B);end NC=256;%确定灰度的等级Br=(B/max(B))*NC;figure(j);subplot(1,2,1);image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2);plot(B1,ys,'k');end-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为1-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为2-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为3-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为9狭缝数为6-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.0254)lamda=400e-9:100e-9:700e-9;%波长N=[13];a=2e-4;D=5;d=5*a;for j=1:4ym=2*lamda(j)*D/a;xs=ym;%屏幕上y 的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for k=1:2for i=1:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lamda(j);beta=pi*d*sinphi/lamda(j);B(i,:)=(sin(alpha)./alpha).^2.*(sin(N(k)*beta)./sin(beta)).^2;B1=B/max(B);end NC=256;%确定灰度的等级Br=(B/max(B))*NC;figure();subplot(1,2,1);image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2);狭缝数为10plot(B1,ys,'k');end end-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02Lamda=400nm,N=1-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025Lamda=400nm,N=3Lamda=500nm,N=1-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03Lamda=500nm,N=3Lamda=600nm,N=1-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.04Lamda=600nm,N=3Lamda=700nm,N=1-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.045)clearclcN=300;r=15;a=1;b=1;I=zeros(N,N);[m,n]=meshgrid(linspace(-N/2,N/2-1,N));D=((m-a).^2+(n-b).^2).^(1/2);i=find(D<=r);I(i)=1;subplot(2,2,1);imagesc(I)colormap([000;111])axis imagetitle('衍射前的图样')L=300;M=300;[x,y]=meshgrid(linspace(-L/2,L/2,M));lamda=632.8e-6;k=2*pi/lamda;z=1000000;Lamda=700nm,N=3h=exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z); H=fftshift(fft2(h));%传递函数B=fftshift(fft2(I));%圆孔频谱G=H.*B;U=fftshift(ifft2(G));Br=(U/max(U));subplot(2,2,2);imshow(abs(U));axis image;colormap(hot)%figure,imshow(C);title('衍射后的图样');subplot(2,2,3);mesh(x,y,abs(U));subplot(2,2,4);plot(abs(Br))6)lamda=500e-9;%波长N=1;%缝数,可以随意更改变换a=2e-4;D=3:7;d=5*a;for j=1:5ym=2*lamda*D(j)/a;xs=ym;%屏幕上y的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for i=1:nsinphi=ys(i)/D(j);alpha=pi*a*sinphi/lamda;beta=pi*d*sinphi/lamda;B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;B1=B/max(B);endNC=256;%确定灰度的等级Br=(B/max(B))*NC;figure();subplot(1,2,1)image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2)plot(B1,ys,'k');end-0.4-0.200.20.4-0.015-0.01-0.00500.0050.010.01500.51-0.015-0.01-0.0050.0050.010.015D=3m-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025D=5m D=4m-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.04D=7m D=6m。
菲涅尔衍射matlab菲涅尔衍射(Fresnel diffraction)既是一种物理现象,也是一种集中光束的数学解析方法,是量子力学中的物理现象之一。
MATLAB使用菲涅尔衍射算法,可以在复杂物体和形状上进行准确的光分发分析和性能评估。
一、什么是菲涅尔衍射1.1 菲涅尔衍射的定义菲涅尔衍射,也称为衍射弥散,是由法国物理学家菲涅尔(Augustin Fresnel)在1817-1818年首次提出的一种物理现象。
它指的是当光线遇到光学系统的边界折射处或非特定孔径时,其交界处的散射效应。
当一束光线穿过一个孔径或光学系统边界时,菲涅尔衍射造成了衍射或散射,这会影响光束的衍射图像,其形式主要依赖介质的结构和入射光的波长。
1.2 菲涅尔衍射的应用菲涅尔衍射算法(fresnel diffraction algorithm)的主要应用有:(1)应用于光学系统的分析,包括照明系统、光学投影系统的性能分析,以实现信号的有效传输。
(2)在光纤传感器的分析中,可以应用菲涅尔衍射方法研究微弱信号的传输性能。
(3)在计算机视觉研究中,运用菲涅尔衍射可以最大限度地减少折射和反射的影响,从而获取更加真实的图像。
(4)在天体衍射中,菲涅尔衍射可以被用来描述在更大空间张量和体积空间进行光学计算。
二、MATLAB如何使用菲涅尔衍射2.1 编程实现的步骤(1)用MATLAB创建光学系统模型:根据系统模型,建立计算机模型,从而模拟系统性能。
(2)使用菲涅尔衍射计算光束穿过光学系统的散射衍射:在计算机模型的基础上,可以使用菲涅尔衍射算法,模拟光束穿过特定的不它孔径或者到达特定点时,菲涅尔衍射会发生的变化,从而计算出衍射图形。
(3)对光束进行测量:通过精确测量可以观察光束的变化,进而检查系统的性能,从而改进系统设计。
2.2 使用fresnel diffraction algorithm的Matlab工具Matlab中提供了fresnel diffraction algorithm的一系列Matlab工具,可以实现准确运算并生成衍射系数,这些工具可用于各种光学衍射、折射和反射模拟的仿真,可以作为视觉设计、光学性能测试和甚至作为优化,可以解决复杂的光学光谱计算问题。
课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 夫琅和费矩孔、单缝、圆孔衍射图样一、设计目的了解MA TLAB软件的基本知识,基本的程序设计,软件在高等数学和工程数学中的应用,学会使用软件进行数值计算和控制工程中的应用。
二、设计内容和要求1.绘制弗朗禾费矩孔、单缝和圆孔衍射图样,可以是二维的或三维的,也可以两种都有。
改变矩孔、单缝和圆孔的参数,比较衍射条纹的变化。
2. 学习Matlab语言的概况和Matlab语言的基本知识。
3.学习Matlab语言的程序设计。
三、初始条件计算机;Matlab软件。
四、时间安排1、2015年01月19日,任务安排,课设具体实施计划与课程设计报告格式的要求说明。
2、2015年01月20日,查阅相关资料,学习Matlab语言的基本知识,学习MATLAB语言的应用环境、调试命令,绘图功能函数等。
3、2015年01月21日至2015年01月22日,Matlab课程设计制作和设计说明书撰写。
4、2015年01月23日,上交课程设计成果及报告,同时进行答辩。
指导教师签名:2015年01 月19日系主任(或负责教师)签名:2015年01 月19日目录摘要 (I)1.设计的内容及要求 (1)1.1设计的目的 (1)1.2设计任务要求 (1)2.设计原理及设计思路 (1)2.1夫琅和费干涉理论 (1)2.1.1夫琅和费圆孔衍射 (2)2.1.2夫琅和费矩孔衍射 (2)2.1.3夫琅和费单缝衍射 (2)2.2设计思路 (3)3.仿真及分析 (4)4.心得和体会 (8)参考文献 (8)摘要物理光学理论较为复杂抽象,实验现象的演示对条件要求高。
采用MATLAB7.0强大的函数作图功能对矩孔、单缝、圆孔的夫琅和费衍射进行模拟,建立直观形象并且精确完整的理论模型,并附上程序代码,将干涉理论联系起来,分析衍射和干涉的本质。
从而加深对夫琅和费原理、概念、和图像的理解。
通过使用MATLAB编写程序,不仅理解了物理思想,而且了解了运用软件解决物理问题的方法。
菲涅尔衍射引言菲涅尔衍射是一种光学现象,是光波在通过物体边缘或光阑时发生衍射现象。
菲涅尔衍射是由法国物理学家奥古斯丁·菲涅尔于19世纪中期发现的,成为研究光的传播和衍射的重要工具。
本文将对菲涅尔衍射的基本原理、计算公式和一些应用进行全面深入的探讨。
基本原理菲涅尔衍射的基本原理是光束在通过物体边缘时会发生衍射,产生绕射波。
这种绕射波与原来的波的相位差会导致光波的干涉现象。
菲涅尔衍射可以通过泊松公式来描述。
泊松公式泊松公式是描述菲涅尔衍射的重要公式,它表示了通过一点的衍射光强与入射光强之间的关系。
泊松公式可以用以下数学公式表示:U(x,y)=1jλz∬UΣ(x′,y′)exp(jk2z((x−x′)2+(y−y′)2)) dx′dy′其中,U(x,y)表示在坐标(x,y)处的复振幅,λ表示光波的波长,z表示入射光与观察点的距离,(x′,y′)表示积分变量在发射面Σ上的坐标。
泊松-菲涅尔衍射公式泊松公式可以简化为泊松-菲涅尔衍射公式,它可以用来计算光束经过一块无穷小光阑的菲涅尔衍射。
泊松-菲涅尔衍射公式可以用以下数学公式表示:U(x,y,z)=exp(jkz)jλz∬UΣ(x′,y′)exp(jk2z((x−x′)2+(y−y′)2)) dx′dy′泊松-菲涅尔衍射公式是菲涅尔衍射研究的重要工具,可以用于计算光束经过复杂物体时的衍射效应。
常见应用菲涅尔衍射在许多领域都有重要的应用,下面将介绍几个常见的应用。
衍射光栅衍射光栅是一种利用菲涅尔衍射原理制造的光学元件。
通过在光栅上制造微细的凹槽或凸起,可以使入射光产生衍射现象,从而实现光的分光效应。
衍射光栅广泛应用于光谱仪、激光干涉仪等高精度光学仪器中。
菲涅尔透镜菲涅尔透镜是一种光学透镜,它由一系列同心环状的圆形凸起构成。
这种特殊的结构使得菲涅尔透镜的厚度较薄,重量较轻,透光效果更佳。
菲涅尔透镜广泛应用于相机镜头、投影仪、车灯等光学设备中。
菲涅尔区菲涅尔区是菲涅尔衍射中的一个概念,用来描述光波通过物体边缘时产生的干涉现象。
工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为其中为衍射屏上的复振幅分布,为倾斜因子。
根据基尔霍夫对此公式的完善,有设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即此时可得到菲涅尔衍射的计算公式把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。
相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。
在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x, y)以及(x1, y1)。
二、圆孔菲涅尔衍射用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。
注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。
根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:取典型的He-Ne激光器波长λ=632.8nm,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为12mm,20mm,50mm图1(r=12mm)图2(r=20mm)图3(r=50mm) 三、矩孔的菲涅尔衍射步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。
这里选择矩孔的长宽相等,分别为15mm,20mm,30mm,其衍射图样及强度分布如图4、5、6图4(a=b=15mm)图5(a=b=20mm)图 6(a=b=30mm)四、MATLAB 程序%所有长度单位为毫米lamda=632.8e-6; k=2*pi/lamda;z=1000000;%先确定衍射屏N=300; %圆屏采样点数a=15;b=15;[m,n]=meshgrid(linspace(-N/2,N/2-1,N));I=rect(m/(2*a)).*rect(n/(2*b));q=exp(j*k*(m.^2+n.^2)/2/z);subplot(2,2,1); %圆孔图像画在2行2列的第一个位置 imagesc(I) %画衍射屏的形状colormap([0 0 0; 1 1 1]) %颜色以黑白区分axis imagetitle('衍射屏形状')L=300;M=300; %取相同点数用于矩阵运算若为圆孔,方框内替换为以下程序 r=12;a=1;b=1; I=zeros(N,N); [m,n]=meshgrid(linspace(-N/2,N/2-1,N)); D=((m-a).^2+(n-b).^2).^(1/2); i=find(D<=r); I(i)=1; %孔半径范围内透射系数为1[x,y]=meshgrid(linspace(-L/2,L/2,M));h=exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z);%接收屏H =fftshift(fft2(h));B=fftshift(fft2(I)); %圆孔频谱G=H.*B; %公式中为卷积,空间域中相卷相当于频域中相乘U= fftshift(ifft2(G)); %求逆变换,得到复振幅分布矩阵Br=(U/max(U)); %归一化subplot(2,2,2);imshow(abs(U));axis image;colormap(hot)% figure,imshow(C);title('衍射后的图样');subplot(2,2,3);mesh(x,y,abs(U)); %画三维图形subplot(2,2,4);plot(abs(Br))。
写平行光束分别通过圆孔和矩形孔的菲涅尔衍射的matlab代码1. 引言1.1 概述在光学领域中,菲涅尔衍射是一种常见的现象,它描述了当平行光束通过孔洞或物体边缘时所产生的衍射效应。
这个现象在很多应用中都具有重要意义,例如光学仪器的设计、天文学以及激光技术等领域。
理解和研究菲涅尔衍射现象对于深入探究光的波动性质以及相干光的传播具有重要意义。
1.2 文章结构本文将从以下几个方面进行讨论:首先介绍菲涅尔衍射理论中与本文相关的基本概念和原理;其次详细阐述使用MATLAB代码实现菲涅尔衍射的方法和步骤;然后,通过对圆孔和矩形孔两种情况下的菲涅尔衍射结果进行分析和讨论;最后给出文章总结,并提出进一步研究方向。
1.3 目的本文旨在通过编写MATLAB代码来模拟实现平行光束通过圆孔和矩形孔时的菲涅尔衍射现象,并利用结果分析和比较两种情况下的衍射效应。
通过这样的研究,可以加深对菲涅尔衍射原理的理解,并为后续相关研究提供参考和借鉴。
同时,通过MATLAB代码实现,读者也可以根据自己的需求进行扩展和修改,从而进一步探索不同形状孔洞的菲涅尔衍射特性。
2. 菲涅尔衍射理论2.1 光的波动特性菲涅尔衍射是一种描述光波传播和衍射现象的理论。
根据光的波动特性,当光通过一个孔径较小的障碍物时,它会弯曲并发生衍射现象。
在菲涅尔衍射中,平行光束通过圆孔或矩形孔后,在进入屏幕上的观察点处产生干涉图样。
2.2 菲涅尔近似理论菲涅尔近似理论是在进一步简化计算过程中使用的近似方法。
它假设观察点距离光源和障碍物足够远,使得远场近似成立。
2.3 圆孔和矩形孔的描述圆孔和矩形孔是两种常见形状的障碍物,用于描述光线传播时发生的菲涅尔衍射效应。
- 圆孔: 圆孔通常由一个具有确定半径大小的圆形开口组成。
当平行光束通过圆孔时,它会扩散并形成一系列同心环状条纹。
- 矩形孔: 矩形孔是由一个具有确定边长的矩形开口组成。
当平行光束通过矩形孔时,它会扩散并在屏幕上生成一系列矩形衍射图样。
基于Matlab的光学衍射实验仿真()摘要通过Matlab软件编程,实现对矩孔夫琅和费衍射的计算机仿真,结果表明:该方法直观正确的展示了衍射这一光学现象,操作性强,仿真度高,取得了较好的仿真效果。
关键词夫琅和费衍射;Matlab;仿真1引言物理光学是高校物理学专业的必修课,其中,光的衍射既是该门课程的重点内容,也是人们研究的热点。
然而由于光学衍射部分公式繁多,规律抽象,学生对相应的光学图像和物理过程的理解有一定的困难,大大影响了教学效果。
当然,在实际中可以通过加强实验教学来改善教学效果,但是光学实验对仪器设备和人员掌握的技术水平要求都较高,同时实验中物理现象容易受外界因素的影响,这给光学教学带来了较大的困难1【-5】。
随着计算机技术的迅速发展,现代化的教育模式走进了课堂,利用计算机对光学现象进行仿真也成为一种可能。
Matlab是一款集数值分析、符号运算、图形处理、系统仿真等功能于一体的科学与工程计算软件,它具有编程效率高、简单易学、人机交互好、可视化功能、拓展性强等优点[6-8],利用Matlab编程仿真光学现象只需改变程序中的参数,就可以生成不同实验条件下的光学图像,使实验效果更为形象逼真。
在课堂教学中,能快速的验证实验理论,使学生更直观的理解理论知识,接受科学事实。
本文以矩孔夫琅和费衍射为例,介绍了Matlab在光学衍射实验仿真中的应用。
2 衍射基本原理衍射是光波在空间或物质中传播的基本方式。
实际上,光波在传播的过程中,只要光波波面受到某种限制,光波会绕过障碍物偏离直线传播而进入几何阴影,并在屏幕上出现光强分布不均匀的现象,称为光的衍射。
根据障碍物到光源和考察点的距离,把衍射现象分为两类:菲涅尔衍射和夫琅和费衍射。
研究不同孔径在不同实验条件下的光学衍射特性,对现代光学有重要的意义。
如图1所示,衍射规律可用菲涅尔衍射积分表示,其合振幅为[9]:(1)其中,K是孔径平面,E是观察平面,r是衍射孔径平面Q到观察平面P的距离,d是衍射孔径平面O到观察平面P0的距离,cosθ是倾斜因子,k=2π/λ是光波波数,λ是光波波长,x1,y1和x,y分别是孔径平面和观察平面的坐标。
圆孔矩孔的菲涅尔衍射模拟(m a t l a b实现)-工程光学-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟圆孔和矩孔的菲涅尔衍射模拟一、原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为其中为衍射屏上的复振幅分布,为倾斜因子。
根据基尔霍夫对此公式的完善,有设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即此时可得到菲涅尔衍射的计算公式把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅和相位因子外,菲涅尔衍射的复振幅分布是孔径平面的复振幅分布和一个二次相位因子乘积的傅里叶变换。
相对于夫琅和费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。
在菲涅尔衍射中,输入变量和输出变量分别为衍射孔径平面的光场分布和观察平面的光场以及光强分布,考虑到这三个量都是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面和观察平面的场分布,并分别以矩阵的列数和行数来对应平面的直角坐标值(x, y)以及(x1, y1)。
二、圆孔菲涅尔衍射用MATLAB分别构造表示衍射屏和接收屏的二维矩阵。
注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x和y方向各取200到300点进行运算。
根据式(4),选取合适的衍射屏和接收屏尺寸和相距的距离,模拟结果如下:取典型的He-Ne激光器波长λ=,固定衍射屏和接收屏尺寸和相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为12mm,20mm,50mm图 1(r=12mm)图 2(r=20mm)图 3(r=50mm)三、矩孔的菲涅尔衍射步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。
圆孔和矩形孔夫琅禾费衍射的MATLAB仿真对比研究作者:何皓轩史仟芝杨莎刘家兴来源:《科技风》2022年第03期摘要:根据夫琅禾费衍射的基本原理,利用MATLAB仿真模拟圆孔和矩形孔的夫琅禾费衍射,观察孔径大小与夫琅禾费衍射图样的关系,发现孔径越小,衍射现象越明显。
接着通过矩形孔和圆形孔互为内接圆和外接圆的关系进行对比,研究衍射屏形状对夫琅禾费衍射图样的影响,分析其夫琅禾费衍射图样的特征,衍射图样对孔的形状有较大的依赖关系,且在孔径大小相当的情况下,矩孔的夫琅禾费衍射比圆孔的夫琅禾费衍射更加明显。
计算机仿真能快速、准确的改变衍射屏的形状和大小,这对学生形象、直观的理解夫琅禾费衍射提供一种有益的辅助手段。
关键词:夫琅禾费衍射;MATLAB仿真;圆孔;矩形孔中图分类号:O436.1文献标识码:AAbstract:According to the basic principle of Fraunhofer diffraction,the Fraunhofer diffraction of circular hole and rectangular hole is simulated by MATLAB,The relationship between the aperture size and Fraunhofer diffraction pattern was observed,and found that the smaller the aperture,the more obvious the diffraction phenomenon.Then,the influence of the shape of thediffraction screen on the Fraunhofer diffraction pattern is studied and the characteristics of the Fraunhofer diffraction pattern are analyzed,The diffraction pattern has a great dependence on the shape of the hole,and the Fraunhofer diffraction of the distance hole is more obvious than that of the circular hole when the aperture size is the same.It has a certain reference significance for students to understand Fraunhofer diffraction vividly and intuitively.Keywords:Fraunhofer diffraction;MATLAB simulation;circular hole;Rectangular hole1 概述光绕过障碍物偏离直线继续向前传播而进入几何阴影,并在屏幕上出现光强分布不均匀的现象称为光的衍射,光的衍射现象是说明光波动性的实验依据,而夫琅禾费衍射实验是大学物理实验的基础实验之一[1-3]。
MATLAB编程用两种方法模拟光学实验03级物理一班李超PB03203017摘要:利用MATLAB软件编程实现了用衍射积分的方法对单缝衍射、杨氏双缝干涉、黑白光栅衍射的计算机模拟;以及用傅立叶变换方法对简单孔径衍射、黑白光栅及正弦光栅夫琅和费衍射的模拟。
关键词:MATLAB;衍射积分;傅立叶变换;计算机模拟引言:美国Mathworks公司推出的MA TLAB,是一种集数值计算、符号预算、可视化建模、仿真和图形处理等多种功能于一体的优秀图形化软件。
本文介绍了通过MA TLAB软件编程实现用衍射积分和傅立叶变换实现夫琅和费衍射计算机模拟的方法。
计算机模拟为衍射实验的验证提供一条简捷、直观的途径。
从而加深了对物理原理、概念和图像的理解。
正文:大学教学课程中引入计算机模拟技术正日益受到重视,与Basic、C和Fortran相比,用MA TLAB软件做光学试验的模拟,只需要用数学方式表达和描述,省去了大量繁琐的编程过程。
下面来介绍利用MATLAB进行光学模拟的两种方法。
(一)衍射积分方法:该方法首先是由衍射积分算出接收屏上的光强分布,然后根据该分布调制色彩作图,从而得到衍射图案。
1.单缝衍射。
把单缝看作是np个分立的相干光源,屏幕上任意一点复振幅为np个光源照射结果的合成,对每个光源,光程差Δ=ypsinΦ,sinΦ=ys/D,光强I=I0(Σcosα)2+(Σsinα)2,其中α=2Δ/λ=πypys/λD编写程序如下,得到图1lam=500e-9;a=1e-3;D=1;ym=3*lam*D/a;ny=51;ys=linspace(-ym,ym,ny);np=51;yp=linspace(0,a,np);for i=1:nysinphi=ys(i)/D;alpha=2*pi*yp*sinphi/lam;图1 单缝衍射的光强分布 sumcos=sum(cos(alpha));sumsin=sum(sin(alpha));B(i,:)=(sumcos^2+sumsin^2)/np^2;endN=255;Br=(B/max(B))*N;subplot(1,2,1) image(ym,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys); 2. 杨氏双缝干涉两相干光源到接收屏上P 点距离r 1=(D 2+(y-a/2)2)1/2, r 2=(D 2+(y+a/2)2)1/2,相位差Φ=2π(r 2-r 1)/λ,光强I=4I 0cos 2(Φ/2) 编写程序如下,得到图2 clear lam=500e-9 a=2e-3;D=1;ym=5*lam*D/a;xs=ym;n=101;ys=linspace(-ym,ym,n); for i=1:nr1=sqrt((ys(i)-a/2).^2+D^2); r2=sqrt((ys(i)+a/2).^2+D^2); phi=2*pi*(r2-r1)./lam;B(i,:)=sum(4*cos(phi/2).^2); end N=255;Br=(B/4.0)*Nsubplot(1,2,1) image(xs,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys) 3. 光栅衍射公式:I=I 0(sin α/α)2(sin(λβ)/sin β)2α=(πa/λ)sin Φ β=(πd/λ)sin Φ编写程序如下:得到图3clearlam=500e-9;N=2; a=2e-4;D=5;d=5*a; ym=2*lam*D/a;xs=ym; n=1001;ys=linspace(-ym,ym,n); for i=1:nsinphi=ys(i)/D;alpha=pi*a*sinphi/lam; beta=pi*d*sinphi/lam;B(i,:)=(sin(alpha)./alpha).^2.*(sin(N*beta)./sin(beta)).^2;B1=B/max(B);图2 杨氏双缝干涉的光强分布 图3 黑白光栅衍射光强分布end NC=255;Br=(B/max(B))*NC; subplot(1,2,1) image(xs,ys,Br); colormap(gray(NC)); subplot(1,2,2) plot(B1,ys);(二)傅立叶变换方法:在傅立叶变换光学中我们知道夫琅和费衍射场的强度分布就等于屏函数的功率谱。
基于Matlab的矩孔菲涅尔衍射仿真摘要光学试验中衍射实验是非常重要的实验. 光的衍射是指光在传播过程中遇到障碍物时能够绕过障碍物的边缘前进的现象, 光的衍射现象为光的波动说提供了有力的证据. 衍射系统一般有光源、衍射屏和接受屏组成, 按照它们相互距离的大小可将衍射分为两大类, 一类是衍射屏与光源和接受屏的距离都是无穷远时的衍射, 称为夫琅禾费衍射, 一类是衍射屏与光源或接受屏的距离为有限远时的衍射称为菲涅尔衍射。
本文用Matlab软件主要针对矩孔菲涅尔衍射现象建立了数学模型,对衍射光强分布进行了编程运算,对衍射实验进行了仿真。
关键字:Matlab;矩孔菲涅尔衍射;仿真;光学实验AbstractOptical diffraction experiment is a very important experiment. is the diffraction of light propagation of light in the obstacles encountered in the process to bypass the obstacles when the forward edge of the phenomenon of light diffraction phenomenon of the wave theory of light provides a strong Evidence. diffraction systems generally have light, diffraction screen and accept the screen composition, size according to their distance from each other diffraction can be divided into two categories, one is the diffraction screen and the light source and the receiving screen is infinity when the distance between the diffraction Known as Fraunhofer diffraction, one is diffraction screen and the light source or accept a limited away from the screen when the diffraction is called Fresnel diffraction.In this paper, Matlab software on a typical phenomenon of a mathematical model of single slit Fresnel diffraction, the diffraction intensity distribution of the programming operation, the diffraction experiment is simulated.Key word: matlab;single slit Fresnel diffraction; simulation; optical experiment一、菲涅尔衍射原理由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为exp(ikr)K(θ)dσ (1)Ẽ(P)=C∬Ẽ(Q)Σ其中Ẽ(Q)为衍射屏上的复振幅分布,K(θ)为倾斜因子。
矩孔和圆孔菲涅耳衍射的计算机模拟阿不都热苏力【期刊名称】《喀什师范学院学报》【年(卷),期】2011(032)006【摘要】由菲涅耳-基尔霍夫衍射理论得到单色点源照射衍射孔产生的衍射光场的积分表达式,然后用Matlab语言模拟了矩孔和圆孔菲涅耳衍射的光场分布情况,在PC上实现了菲涅耳衍射积分的计算机模拟演示,有利于对相关的衍射理论与技术的进一步研究.%The calculation expression for Fresnel diffraction field and its peculiar circumstance Fresnel diffraction field are deduced,then the paraxial area diffraction patterns of the corresponding light fields are simulated with the Matlab software from the calculation expressions,and the simulation test verifies the deduced formula are effective and reliable.These are conducive to further research related to diffraction theory and technology.【总页数】5页(P28-32)【作者】阿不都热苏力【作者单位】新疆大学物理科学与技术学院,乌鲁木齐830046【正文语种】中文【中图分类】O436.1【相关文献】1.圆孔、方孔和双矩孔夫琅和费衍射的MATLAB仿真 [J], 夏静;陈训毅;杨德君2.矩孔菲涅耳衍射的一种数值计算方法 [J], 侯红方;钟丽云3.单色点源矩孔菲涅耳衍射光场的计算与模拟 [J], 常山;桑志文;毛杰健;朱品珍4.多矩孔菲涅耳衍射的数值模拟 [J], 阿不都热苏力5.矩孔菲涅耳衍射的光强分布 [J], 王永祥因版权原因,仅展示原文概要,查看原文内容请购买。
工程光学综合练习-----圆孔、矩孔的菲涅尔衍射模拟
圆孔与矩孔的菲涅尔衍射模拟
一、原理
由惠更斯-菲涅尔原理可知接收屏上的P点的复振幅可以表示为
其中为衍射屏上的复振幅分布,为倾斜因子。
根据基尔霍夫对此公式的完善,有
设衍射屏上点的坐标为(x1, y1),接收屏上点的坐标为(x, y),衍射屏与接收屏间距离为z1,当满足菲涅尔近似条件时,即
此时可得到菲涅尔衍射的计算公式
把上式指数项中的二次项展开,并改写成傅里叶变换的形式,可以写成
上式为菲涅尔衍射的傅里叶变换表达式,它表明除了积分号前面的一个与x1、y1无关的振幅与相位因子外,菲涅尔衍射的复振幅分布就是孔径平面的复振幅分布与一个二次相位因子乘积的傅里叶变换。
相对于夫琅与费衍射而言,菲涅尔衍射的观察屏距衍射屏不太远。
在菲涅尔衍射中,输入变量与输出变量分别为衍射孔径平面的光场分布与观察平面的光场以及光强分布,考虑到这三个量都就是二维分布,而且Matlab主要应用于矩阵数值运算,所以本程序选择用二维矩阵来存储衍射孔径平面与观察平面的场分布,并分别以矩阵的列数与行数来对应平面的直角坐标值(x, y)以及(x1, y1)。
二、圆孔菲涅尔衍射
用MATLAB分别构造表示衍射屏与接收屏的二维矩阵。
注意使两矩阵阶次相同,考虑到运算量的要求,采样点数不能过多,所以每个屏的x与y方向各取200到300点进行运算。
根据式(4),选取合适的衍射屏与接收屏尺寸与相距的距离,模拟结果如下:
取典型的He-Ne激光器波长λ=632、8nm,固定衍射屏与接收屏尺寸与相距的距离,分别取不同的圆孔半径,得到以下三组衍射图样,其圆孔半径分别为
12mm,20mm,50mm
图1(r=12mm)
图2(r=20mm)
图3(r=50mm) 三、矩孔的菲涅尔衍射
步骤与上述相同,仅需改变与衍射屏形状对应的矩阵。
这里选择矩孔的长宽相等,分别为15mm,20mm,30mm,其衍射图样及强度分布如图4、5、6
图4(a=b=15mm)
图5(a=b=20mm)
图 6(a=b=30mm)
四、MATLAB 程序
%所有长度单位为毫米
lamda=632、8e-6; k=2*pi/lamda;
z=1000000;
%先确定衍射屏
N=300; %圆屏采样点数
a=15;
b=15;
[m,n]=meshgrid(linspace(-N/2,N/2-1,N));
I=rect(m/(2*a))、*rect(n/(2*b));
subplot(2,2,1); %圆孔图像画在2行2列的第一个位置 imagesc(I) %画衍射屏的形状
colormap([0 0 0; 1 1 1]) %颜色以黑白区分
axis image
title('衍射屏形状')
L=300;
M=300; %取相同点数用于矩阵运算
若为圆孔,方框内替换为以下程序 r=12;a=1;b=1; I=zeros(N,N); [m,n]=meshgrid(linspace(-N/2,N/2-1,N)); D=((m-a)、^2+(n-b)、^2)、^(1/2); i=find(D<=r); I(i)=1; %孔半径范围内透射系数为1
[x,y]=meshgrid(linspace(-L/2,L/2,M));
h=exp(j*k*z)*exp((j*k*(x、^2+y、^2))/(2*z))/(j*lamda*z);%接收屏
H =fftshift(fft2(h));
B=fftshift(fft2(I)); %圆孔频谱
G=H、*B; %公式中为卷积,空间域中相卷相当于频域中相乘U= fftshift(ifft2(G)); %求逆变换,得到复振幅分布矩阵
Br=(U/max(U)); %归一化
subplot(2,2,2);
imshow(abs(U));
axis image;
colormap(hot)
% figure,imshow(C);
title('衍射后的图样');
subplot(2,2,3);
mesh(x,y,abs(U)); %画三维图形
subplot(2,2,4);
plot(abs(Br))。