基于Matlab的夫琅禾费衍射光学仿真
基于MATLAB的夫琅和费衍射实验的计算机仿真

式 中 J x是 一 阶 贝塞 尔 函 数 , 拟 时 令 f l h 6 0m, ,) ( 模 = m,= 0 n
a 0O 1 利用 MAT A = .0 m, L B编程 , 程序运行完毕后 , 依次得到 以 下图形 7 。圆孔衍射和矩孔衍射的三维 图形基本相 同, 二维 图
平 面 上 会 聚 点 Q(,) xy 的和 振 动 的 相 对 强 度 为 : I I u) Sl ) ( Q) ds (lP m r
u
v
() 1
于学生的理解 。同时通过 多种元 件的夫琅和费衍射 计算机仿
真, 能够动态直观地呈现光学衍射 中各种物 理量之间 的关 系,
有利于大学物理实验中光学部分教学的开展 。因此 , 我们应 当 充分利用计算机软件功 能为教学增添活力 ,为 学生理解复杂
Z agZ i n S uig J n e gh n YagK n L ne g Yag njn h n hf g uY l i g n cu n u iu f n gu e n a F J n Ho
(】潘 柏 根 , 施群 , 志 建 . 于 V +的 夫 琅 和 费 衍 射 仿 真 [] 5 金 刘 基 c+ J.
仪 器 仪表 用 户 ,0 O4: 66 . 2 l()6 —9
[]夏 静 , 6 陆训 毅 , 德 君 . 杨 圆孔 、 方 孔 和 双 矩 孔 夫琅 和 赞 衍 射 的
I tr ̄inN nfr n e n nen o Co ee c o M e s rn Te h lg a d M e h to is a ui g c noo y n c ar nc
Au o a i n Co f r n e o I EE: 0 — 0 . t m to , n e e c f E 9 2 9 5
实验7 衍射的Matlab模拟

实验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源代码

源代码:N=512;disp('衍射孔径类型1.圆孔 2.单缝3.方孔')kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型while kind~=1&kind~=2&kind~=3disp('超出选择范围,请重新输入衍射孔径类型');kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型endswitch(kind)case 1r=input('please input 衍射圆孔半径(mm):');% 输入衍射圆孔的半径I=zeros(N,N);[m,n]=meshgrid(linspace(-N/16,N/16-1,N));D=(m.^2+n.^2).^(1/2);I(find(D<=r))=1;subplot(1,2,1),imshow(I);title('生成的衍射圆孔');case 2a=input('please input 衍射缝宽:');% 输入衍射单缝的宽度b=1000;% 单缝的长度I=zeros(N,N);[m,n]=meshgrid(linspace(-N/4,N/4,N));I(-a<m&m<a&-b<n&n<b)=1;subplot(1,2,1);imshow(I);title('生成的衍射单缝');case 3a=input('please input 方孔边长:');% 输入方孔边长I=zeros(N,N);[m,n]=meshgrid(linspace(-N/4,N/4,N));I(-a/2<m&m<a/2&-a/2<n&n<a/2)=1;subplot(1,2,1),imshow(I);title('生成的方孔');otherwise kind=input('please input 衍射孔径类型:');% 输入衍射孔径类型end% 夫琅禾费衍射的实现过程L=500;[x,y]=meshgrid(linspace(-L/2,L/2,N));lamda_1=input('please input 衍射波长(nm):');% 输入衍射波长;lamda=lamda_1/1e6k=2*pi/lamda;z=input('please input 衍射屏距离衍射孔的距离(mm):');% 衍射屏距离衍射孔的距离h=exp(1j*k*z)*exp((1j*k*(x.^2+y.^2))/(2*z))/(1j*lamda*z);%脉冲相应H =fftshift(fft2(h));%传递函数B=fftshift(fft2(I));%孔频谱G=fftshift(ifft2(H.*B));subplot(1,2,2),imshow(log(1+abs(G)),[]);title('衍射后的图样');figuremeshz(x,y,abs(G));title('夫琅禾费衍射强度分布')实验输入:衍射孔径类型1.圆孔 2.单缝3.方孔please input 衍射孔径类型:1please input 衍射圆孔半径(mm):3please input 衍射波长(nm):632lamda =6.3200e-04please input 衍射屏距离衍射孔的距离(mm):1000000实验结果:程序说明:本实验可以选择孔径类型、孔径半径、输入波长、衍射屏和衍射孔的距离等。
matlab实现夫朗和费矩形和圆孔衍射

2、用MATLAB仿真平行光束的衍射强度分布图样。
(夫朗和费矩形孔衍射、夫朗和费圆孔衍射、夫朗和费单缝和多缝衍射。
)理论推导部分2.(1)夫朗和费矩形孔衍射若衍射孔为矩形则在透镜焦平面上得到的衍射图样如图,衍射图样的主要特征为衍射亮斑集中分布在两个相互垂直的方向上,并且x轴上的亮斑宽度与y轴亮斑宽度之比,恰与矩形孔在两个轴上的宽度相反。
其中的θ为θx,同样的β中的θ为θy,利用θx=x/f,θy=y/f进行求解。
(2)夫朗和费圆形孔衍射夫朗和费圆孔衍射的讨论方法和矩形孔衍射的讨论方法相同,只是由于圆孔的几何对称性,采用极坐标更为方便。
Ф=kaθ2.(1)夫朗和费矩形孔衍射clear all;lamda=500e-9;a=1e-3;b=1e-3;f=1;m=500;ym=8000*lamda*f;ys=linspace(-ym,ym,m)xs=ys;n=255;for i=1:msinth2=ys./sqrt(ys.^2+f^2);%相当于x/fsinth1=xs(i)/sqrt(xs(i).^2+f^2);%xs(i)作用每给一个ys值,要遍历到所有的x值angleA=pi*a*sinth1/lamda;%相当于书上的alfa=kax/2f k=2*pi/lamdaangleB=pi*b*sinth2./lamda;B(:,i)=(sin(angleA).^2.*sin(angleB).^2.*5000./(angleA.^2.*a ngleB.^2));%光强度公式endsubplot(1,2,1)image(xs,ys,B)colormap(gray(n))subplot(1,2,2)plot(B(m/2,:),ys)(2)夫朗和费圆孔衍射clearlam=500e-9a=1e-3f=1m=300;ym=5*0.61*lam*f/a;%取爱里光斑半径的5倍ys=linspace(-ym,ym,m);xs=ys;n=200;for i=1:mr=xs(i)^2+ys.^2;%相当于r的平方sinth=sqrt(r./(r+f^2));%角度fai=2*pi*a*sinth./lam;%fai=k*a*sinthhh=(2*BESSELJ(1,fai)).^2./fai.^2;%贝塞尔函数 b(:,i)=hh.*5000;endsubplot(1,2,1)image(xs,ys,b)colormap(gray(n))subplot(1,2,2)b(:,m/2)plot(ys,b(:,m/2))。
多缝的夫琅和费衍射matlab仿真

4、多缝的夫琅和费衍射,使用平行光照明,观察衍射图样随点光源位置(光源上下移动)的变化 θθθ图4-1 图4-2多缝夫琅禾费衍射如图4-1所示。
由于相邻单缝在P 点产生的夫琅禾费衍射的幅值与中心单缝的相同,只是产生一个相位差θλπδsin 2d =,故,经证明,P 点处的光强为:220)2sin 2sin ()sin ()(δδααN I P I =, 其中θλπαsin a =,θλπδsin 2d =。
因而,程序代码如下:clear %清除原有变量Lambda=600*(1e-9); %设置波长为600nma=0.005*(1e-3); %设置衍射屏参数:缝宽为0.005mm , 缝距为0.02mmd=0.02*(1e-3);f=0.01; %汇聚透镜焦距设置为1cmN=20; %设置缝数为20ni=1000;x=linspace(-0.005,0.005,ni); %将衍射屏按照狭缝方向分为ni 个微元 for k=1:nisn=x(k)/sqrt(x(k).^2+f^2);alpha=pi*a*sn/Lambda; %算各微元对应的α和δ值delta=2*pi*d*sn/Lambda;I(k)=(sin(alpha)/alpha).^2*(sin(N*delta/2)/sin(delta/2)).^2; %求出各处的光强endfigure(gcf); %显示图像NCLevels=250;Br=I*NCLevels;image(0,x,Br);colormap(gray(NCLevels));title('二维强度分布');运行后结果如图4-2所示。
将光源上下移动的结果如图4-3所示:图4-3 图4-4点光源发出的光经过准直透镜后形成倾斜入射的平行光,倾斜角度为i 。
此时,P 点强度的公式为:220)sin ()sin ()(ββααN I P I =, 其中)sin (sin i a -=θλπα,)sin (sin i d -=θλπβ。
基于matlab gui设计的光学实验仿真

2007级计算机课程设计测控与光电技术学院电子科学与技术专业课程设计题目圆孔衍射现象计算机仿真设计学生姓名吴海班级070832指导教师钟可君日期2010 年6 月28 日南昌航空大学测试与光电工程学院计算机课程设计任务书电子科学与技术系070832 班学生:吴海课题名称:圆孔衍射现象计算机仿真设计课题内容:1、课题设计要求:(1)分析圆孔衍射的物理过程,建立数学模型;(2)设计算法流程图;(3)编写程序,并对仿真结果进行分析。
2、工作进度安排:查阅资料,设计算法流程图6月28日~7月4日第18周编写程序,撰写报告7月5日~7月9日第19周主要参考资料:[1]. 姚启钧.光学教程[M]. 北京:高等教育出版社[2]. 宋清,熊万杰.光学现象的计算机仿真[J].中山大学学报论丛,2005,25(3):24-29.[3].圆孔衍射与像分辨本领的MATLABF仿真分析[J].湖北工学院学报,2004,19(5):47-49.[4].MATLAB GUI在光学仿真中的应用[J].通化师范学院学报,2010,31(2):52-54.系负责人:指导教师:钟可君时间:2010年6月21日单孔衍射上机试验上机试验程序(1)%圆孔衍射clcclearlam=500e-9a=1e-3f=1m=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./lamhh=(2*BESSELJ(1,x)).^2./x.^2;b(:,i)=(hh)'.*5000;endsubplot(1,2,1)image(xs,ys,b)colormap(gray(n))subplot(1,2,2)b(:,m/2)plot(ys,b(:,m/2))程序运行后的结果单孔衍射图光强分布图[摘要]运用MATLAB6的软件平台,编制演示程序,对圆孔衍射像分辨本领进行仿真分析.[关键词]圆孔衍射;分辨本领; Airy斑;仿真分析意义:圆孔作为光学仪器基本形状,其衍射现象在光学研究中占有重要地位.光学衍射现象的实验演示需要特定的实验仪器和实验所,给研究工作带来许多不便.另外,清晰的圆孔衍射图样,要求的圆孔半径很小,在一般实验中难以实现.基于MATLAB6软件强大的计算能力和可视化功能上的优势,利用计算机对圆孔衍射过程进行仿分析,可以使衍射现象直观地表现出来;通过调整实验参数,可以同步生成不同实验条件下的衍射图样,便于对衍射现象和像分辨本领进行比较分析;利用色图表现光强分布,使实验效果更为逼真,在实和研究中具有重要意义.1圆孔衍射的实验装置与数学模型的、建立圆孔夫琅禾费衍射装置如图1所示,S为点光源,位于透镜L1的焦平面的主光轴上,光屏E置于焦距为D的透镜L2的焦平面上.圆孔P的半径为R.入射光波长为λ.射圆孔时,沿衍射角θ方向传播的次波在光屏Q(x,y)处的光强分布为[1]Iθ= I0(J1(2m)m)2.其中:m=πRλsinθ,sinθ=x2+y2x2+y2+D2;I0为分常数.2主程序编写与衍射图样的生成运用MATLAB编制运算程序circle_aperturebase01.m,程序运行后,在坐标区可以生成圆孔琅禾费衍射图样.为了满足程序的普遍性和通用性,主程序中共设置5个输入参数,分别为λ,D,R,θ0(入射光垂直入射为θ0=0),最大坐标范围xmax.长度以毫米为单位.主程序circle_aperture_base01.m如下:function circle_aperture_base01(lambda,D,R,theta0,xmax) %对参量赋值lambda=6.328*1e-4;D=64;R=0.02;xmax=pi;theta0=0%设定图像的范围,并把x分成401个点(根据程序需要,设为奇数点).x=linspace(-xmax,xmax,401);[x,y]=meshgrid(x); %%建立x,y网格%建立强度分布矩阵x0=D*tan(theta0);sin_theta=sqrt(((x-x0).^2+y.^2)./((x-x0).^2+y.^2+D^2)); %%sin(theta)z=R*sin_theta/lambda; %%z=Rsin(theta)/lambdam=pi*z;I=(bessel(1,2*m)./m).^2;%生成强度分布图%绘制相对光强与x坐标的关系曲线(沿y=0方向) subplot('position',[0.15 0.6 0.7 0.35]),plot(x(1,:),I((end+1)/ 2,:))%绘制相对光强与坐标(R*sin(theta)/lambda)的关系曲线(沿y=0方向)subplot(2,2,3),plot(z((end+1)/2,:),I((end+1)/2,:));%绘制强度分布的灰度图NCLevers=255; %%确定用的灰度等级为255Imax=max(max(I));Ir=I/Imax*NCLevers;colormap(gray(NCLevers)); %%用灰度级颜色绘图subplot(2,2,4),image(x(1,:),y(:,1),Ir) %%绘制强度的灰度图axis squareaxis([-2 2 -2 2]);colorbar('vert')程序运行后,在坐标区,生成强度分布曲线和色图(如图2,图中的极值判断和文字标示命令在程序中未列出).图中,上图表示强度沿x坐标(y =0)分布,下图左侧表示强度随无量纲因子Rsinθ/λ的变化规律,右侧则表示光强在xoy平面的变化规律,中央的白色亮区为Airy斑.在光强曲线图中,用红点和绿点表示极大值点和极小值点,对应坐标也在图2(c)中央明区中给出.3衍射图样分析3.1Airy斑与极小值由图2可知,当Rsinθ/λ≈0.61时,出现第一级极小值.定义在光屏上由两个第一级极小值之间所围圆形区间为Airy斑.Airy斑的中心位于坐标原点,其角半径为0.61λ/R,如图所示.3.2第一级次极大由图2可知,当Rsinθ/λ≈0.82时,出现第一级次极大值,其相对光强为1.7%.其余次极大的光强将更小.3.3参数对衍射图样的影响进一步调整参数R、D及λ,其Airy斑及各级衍射环的相对位置发生变化.如图3所示,Airy斑的角半径与R成反比,与λ成正比,其线半径与D成正比.5结论从上面的一系列讨论可以发现,通过计算机编程,对圆孔夫琅禾费衍射进行仿真分析,无需复杂的实验仪器和苛刻的实验环境,可在短时间内完成多种实验条件衍射图样的演示.运用MATLAB强大的数值计算功能和优越的可视化特征,可以同步求出衍射图样的一些重要物理量的数值,满足仿真实验的需要,为教学和研究工作提供了强有力的演示工具.利用计算机编程,仿真演示复杂的物理现象, 作为计算物理学的一个发展方向,具有广阔的发展前景.[参考文献][1]姚启钧.光学教程[M].北京:高等教育出版社, 2002.[2]赵凯华,钟锡华.光学(上册)[M].北京:北京大学出版社, 1984.摘要:采用matlab7.0强大的函数作图功能对圆孔、矩孔和双矩孔的夫琅和费衍射进行模拟,建立直观形象并且精确完整的理论模型,并附上程序代码,将干涉理论联系起来,分析衍射和干涉的本质。
基于matlab的光学衍射仿真

西安工业大学毕业设计(论文)开题报告题目:基于Matlab的光学衍射实验仿真系别光电信息系专业光电信息工程班级XXX姓名王XX学号X070104XX导师XX2010 年11 月27 日课题背景及研究意义衍射是光波的一种重要特征,对光波衍射现象的讨论是以惠更斯- 菲涅尔原理为基础的。
事实证明,在大多数光学问题中,可以采用光场的标量衍射理论来描述和计算。
光场的频率非常高,只能测量在一个比光的周期大得多的时间间隔内的平均值,在计算衍射光波场的光振动和光强分布时则利用菲涅尔- 基尔霍夫衍射积分公式[1,2,3]。
在物理光学的光的衍射教学过程中,光学实验内容比较抽象, 如不借助实验, 学生很难理解理论、实验原理和过程。
通常,学校的教学中,将光学理论教学与实验教学相分离,理论教学中需要实验现象来验证,而光学实验的进行一般要稳定的环境、高精密的仪器, 复杂的实验仪器以及光路的调试, 花费了技术人员相当多的时间,往往很难调试到理想的状态,搭建好的仪器和光路也会受到环境和温度的影响,有时实验结果将偏离理论预测。
为了在物理光学课程教学过程形象生动,需要现代化的教学手段,千方百计地为学生提供观察物理现象的机会,提高学生学习光学课程的兴趣,培养他们的思维水平和创新能力,应该充分利用计算机软件功能为教学增添活力,为学生理解复杂理论和实验做好铺垫,可以用MATLAB软件为平台,对光学实验进行计算机仿真,具有两个方面意义:一方面,利用仿真结果指导实际实验。
前期投资少,且可以减少贵重仪器的损伤等;另一方面,在教学上,将抽象难懂的概念、规律通过实验仿真生动、形象地表现出来,使学生更易于接受,具有明显的教学效果。
还可以鼓励学生自主探索,研究一些更深入的光学问题,这样可以拓宽知识面,提高能力[4,5,6]。
国内外研究情况在用计算机模拟[7]光学实验软件方面,国外的光学衍射模拟试验是在模拟设计和优化光学系统的过程中发展起来的。
在这方面,美国走在最前面,他们最具代表性的是劳伦斯利弗莫尔实验室光传输模拟计算软件Prop92[8,9]及大型总体优化设计软件CHAINOP 和PROPSUITE[10]。
光的干涉和衍射的matlab模拟

光的干涉和衍射的matlab模拟单缝夫琅和费衍射是光的衍射现象之一,如图2所示。
当单色光波通过一个狭缝时,光波会向周围扩散,形成一系列同心圆环。
这些圆环的亮度分布是由夫琅和费衍射公式描述的,即。
其中为入射光波长,为狭缝宽度,为衍射角。
夫琅和费衍射公式表明,随着衍射角的增大,圆环的半径会减小,而亮度则会逐渐减弱。
在MATLAB中,可以通过输入实验参数,如光波长和狭缝宽度,来观察圆环的亮度分布和半径随衍射角的变化情况。
同时,还可以探讨不同波长和狭缝宽度对圆环亮度和半径的影响。
4双缝衍射双缝衍射是光的干涉和衍射现象的结合,如图3所示。
当一束单色光波通过两个狭缝时,光波会在屏幕上形成一系列干涉条纹和衍射环。
干涉条纹的亮度分布与___双缝干涉相同,而衍射环的亮度分布则由夫琅和费衍射公式描述。
在MATLAB中,可以通过输入实验参数,如光波长、双缝间距和双缝宽度,来观察干涉条纹和衍射环的亮度分布和条纹间距、环半径随实验参数的变化情况。
同时,还可以探讨不同实验参数对干涉条纹和衍射环的影响。
5衍射光栅衍射光栅是一种利用衍射现象制成的光学元件,如图4所示。
当一束单色光波通过光栅时,光波会被分为多个衍射光束,形成一系列亮度不同的衍射条纹。
衍射条纹的亮度分布与夫琅和费衍射公式描述的圆环类似,但是条纹间距和亮度分布会受到光栅常数的影响。
在MATLAB中,可以通过输入实验参数,如光波长和光栅常数,来观察衍射条纹的亮度分布和条纹间距随实验参数的变化情况。
同时,还可以探讨不同实验参数对衍射条纹的影响。
总之,通过MATLAB模拟光的干涉和衍射现象,可以更加直观地理解和掌握这些重要的光学现象,同时也可以为实验设计和数据分析提供有力的工具和支持。
本文介绍了___双缝干涉、单缝夫琅禾费衍射和衍射光栅光谱的计算机模拟。
当一束单色平行光通过宽度可调的狭缝,射到其后的光屏上时,形成一系列亮暗相间的条纹。
单缝夫琅禾费衍射的光强分布可以通过惠更斯-费涅耳原理计算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Matlab的夫琅禾费衍射光学仿真
摘要计算机仿真技术是以多种学科和理论为基础,以计算机及其相应的软件为工具,通过虚拟试验的方法来分析和解决问题的一门综合性技术。
计算机仿真早期称为蒙特卡罗方法,是一门利用随机数实验求解随机问题的方法。
关键词:计算机仿真夫琅禾费衍射Matlab
Fraunhofer Diffraction Optical Simulation Based on
Matlab
Abstract The computer simulation technology is based on a variety of disciplines and theoretical, with the computer and the corresponding software tools, we can analyze the virtual experimentation and solve the problem of a comprehensive technology. Computer simulation of early known as the Monte Carlo method, is a random problem solved using the method of random number test.
Key words:Computer simulation Fraunhofer diffraction Matlab
一、引言
计算机仿真技术是以多种学科和理论为基础,以计算机及其相应的软件为工具,通过虚拟试验的方法来分析和解决问题的一门综合性技术。
计算机仿真早期称为蒙特卡罗方法,是一门利用随机数实验求解随机问题的方法。
根据仿真过程中所采用计算机类型的不同,计算机仿真大致经历了模拟机仿真、模拟-数字混合机仿真和数字机仿真三个大的阶段。
20世纪50年代计算机仿真主要采用模拟机;60年代后串行处理数字机逐渐应用到仿真之中。
到了70年代模拟-数字混合机曾一度应用于飞行仿真、卫星仿真和核反应堆仿真等众多高技术研究领域;80年代后由于并行处理技术的发展,数字机才最终成为计算机仿真的主流。
现在,计算机仿真技术已经在机械制造、航空航天、交通运输、船舶工程、经济管理、工程建设、军事模拟以及医疗卫生等领域得到了广泛的应用。
计算机仿真的三个基本活动:
1. 数学模型建立:实际上是一个模型辩识的过程。
所建模型常常是忽略了一些次要因素的简化模型。
2. 仿真模型建立:即是设计一种算法,以使系统模型能被计算机接受并能在计算机上运行。
显然,由于在算法设计上存在着误差,所以仿真模型对于实际系统将是一个二次简化模型。
3. 仿真实验:即是对模型的运算。
需要设计一个合理的、服务于系统研究的仿真软件。
二、本文的主要工作
本文主要使用matlab语言进行光学实验仿真,通过Matlab软
件编程,用衍射积分和傅里叶变换方法实现夫琅禾费衍射计算机模拟,在大量实验的基础上建立基于Matlab的光学实验仿真系统, 用傅里叶变换方法对不同形状的孔径进行夫琅禾费衍射的模拟。
三、夫琅禾费衍射的简介
把单色点光源放在透镜的焦点上,经过透镜后的单色平行光垂直照射衍射屏时,在屏后面不同距离上会观察到一些衍射现象,其中当屏远离到足够大的距离后,光斑中心出现一个较大的亮斑,外围是一些较弱的明暗相间的同心圆环,此后再往外移动,衍射花样出现稳定分布,中心处总是亮的,只是半径不断扩大而已,这种衍射称为夫琅禾费衍射,又称远场衍射。
对于夫琅禾费衍射,光源和观察幕离障碍物(孔或屏)均为无穷远的衍射现象。
实验装置如图,S为单色点光源,放置在透镜L1的物方焦点处,所得平行光垂直入射到障碍物,借助于透镜L2将无穷远处的衍射图样移至L2的像方焦面上观察。
根据惠更斯-菲涅耳原理,单缝后面空间任一点P的光振动是单缝处波阵面上所有子波波源发出的子波传到P点的振动的相干叠加。
夫琅禾费衍射振幅公式一般为
其中,
η
ξ
η
ξd
d)]
(
i
ex p[
)
,
(⎰⎰+
-
=
S
y
x
f
k
C
y
x
E
f
f
y
x
f
k
A
C
λi
]}
2/)
(
[
i
ex p{2
2+
+
=
λ
π2
=
k
观察屏上的光强表达式为: 四、Matlab 仿真
1.单缝夫琅禾费衍射
单缝夫琅禾费衍射的计算机仿真程序如下:
clc;
clear;
a=-2*pi:0.0001*pi:2*pi;
p1=(1-sinc(a)).^2;
p2=sinc(a).^2;
figure;
plot(a,p2);
xlabel('kasinθ');
ylabel('光强I/I0');
title('单缝衍射强度分布');
lgray=zeros(256,3);
for i=0:255
lgray(i+1,:)=(255-i)/255;
end
figure;
imagesc(p1)
title('单缝衍射模拟图');
colormap(lgray)
),(),(y x E y x E I *
⋅=
计算机仿真,得到的单缝衍射的图样如下:
2.矩形孔夫琅禾费衍射
当矩形孔边长a=0.00003时,矩形孔夫琅禾费衍射的计算机仿真程序如下:
clear all
a=0.00003;
lmda=500e-9;
f=6;
k=lmda*lmda*f*f/(4*pi*pi);
h=pi*a*tan(pi/3)/(lmda*f);
x=-1:0.005:1;
y=-1:0.005:1;
for i=1:1:401
for j=1:1:401
A(i)=pi*a*x(i)/(lmda*f);
B(j)=pi*a*y(j)/(lmda*f);
I(i,j)=((sin(A(i)))/(A(i)+eps))^2*((sin(B(j)))/(B(j)+eps))^2;
end
end
figure(1)
imshow(I)
figure(2)
mesh(I)
计算机仿真得到的衍射图样如下:
3.正三角形夫琅禾费衍射
当正三角孔边长a=0.00003时,正三角孔夫琅禾费衍射仿真程序如下:
clear all
a=0.00003;
lmda=500e-9;
f=10;
k=lmda*lmda*f*f/(4*pi*pi);
h=pi*a*tan(pi/3)/(lmda*f);
x=-1:0.004:1;
y=-1:0.004:1;
for i=1:1:501
for j=1:1:501
E1(i,j)=2*x(i)*sin(h*x(i))*sin(h*y(j)*tan(pi/6))/((x(i)*x(i)-y(j)*y(j)/3)*y(j)+eps); E2(i,j)=-2*tan(pi/6)*(cos(h*x(i))*cos(h*y(j)*tan(pi/6))-cos(2*tan(pi/6)*h*y(j )))/(x(i)*x(i)-y(j)*y(j)/3+eps);
E(i,j)=E1(i,j)+E2(i,j);
I(i,j)=E(i,j)*E(i,j);
end
end
figure(1)
imshow(I)
figure(2)
mesh(I)
计算机仿真得到的衍射图样如下:
4.圆孔夫琅禾费衍射
当圆孔孔径r=0.001,透镜焦距f=1时,圆孔夫琅禾费衍射仿真程序如下:
lmda=500e-9;
r=1e-3;
f=1;
xm=2000*lmda*f;xs=[-xm:1e-6:xm];
ys=xs;
[x,y]=meshgrid(xs);
s=2*pi*r*sqrt(x.^2+y.^2)./(lmda*f);
z=4*((besselj(1,s))./(s+eps)).^2;
figure
imshow(z*255);
xlabel(-x.);
ylabel(-y.);
figure
mesh(x,y,z);
xlabel(-x.);
ylabel(-y.);
zlabel(-z.);
圆孔夫琅禾费衍射的图样如下:
五、结论
计算机的运算能力正在飞速发展,无论在工程设计领域还是在科学教研领域,计算机仿真正受到越来越多科学工作者的青睐。
我国实行了科教兴国战略,随着科学技术的发展,教育事业也将蓬勃发展,科学与教育事业是相辅相成的。
光学仿真技术作为计算机模拟的一个重要分支,有着强大的生命力,不但在科研项目上有巨大的贡献,在对学生的教学上也起到了很大的推进作用。
.
航空航天大学
高等光学期末报告
题目:基于Matlab的夫琅禾费衍射光学仿真
学院
专业
姓名
学号
.
2014 年12 月30 日Word 资料。