基于Matlab的夫琅禾费衍射光学仿真

合集下载

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

基于MATLAB的夫琅和费衍射实验的计算机仿真
学 物 理 实 验 .0 2r)6 —6 2 0 : 46 . 4
式 中 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


() 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模拟

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

模拟夫琅禾费衍射的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实现夫朗和费矩形和圆孔衍射

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仿真

多缝的夫琅和费衍射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设计的光学实验仿真

基于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的光学衍射仿真

西安工业大学毕业设计(论文)开题报告题目:基于Matlab的光学衍射实验仿真系别光电信息系专业光电信息工程班级XXX姓名王XX学号X070104XX导师XX2010 年11 月27 日课题背景及研究意义衍射是光波的一种重要特征,对光波衍射现象的讨论是以惠更斯- 菲涅尔原理为基础的。

事实证明,在大多数光学问题中,可以采用光场的标量衍射理论来描述和计算。

光场的频率非常高,只能测量在一个比光的周期大得多的时间间隔内的平均值,在计算衍射光波场的光振动和光强分布时则利用菲涅尔- 基尔霍夫衍射积分公式[1,2,3]。

在物理光学的光的衍射教学过程中,光学实验内容比较抽象, 如不借助实验, 学生很难理解理论、实验原理和过程。

通常,学校的教学中,将光学理论教学与实验教学相分离,理论教学中需要实验现象来验证,而光学实验的进行一般要稳定的环境、高精密的仪器, 复杂的实验仪器以及光路的调试, 花费了技术人员相当多的时间,往往很难调试到理想的状态,搭建好的仪器和光路也会受到环境和温度的影响,有时实验结果将偏离理论预测。

为了在物理光学课程教学过程形象生动,需要现代化的教学手段,千方百计地为学生提供观察物理现象的机会,提高学生学习光学课程的兴趣,培养他们的思维水平和创新能力,应该充分利用计算机软件功能为教学增添活力,为学生理解复杂理论和实验做好铺垫,可以用MATLAB软件为平台,对光学实验进行计算机仿真,具有两个方面意义:一方面,利用仿真结果指导实际实验。

前期投资少,且可以减少贵重仪器的损伤等;另一方面,在教学上,将抽象难懂的概念、规律通过实验仿真生动、形象地表现出来,使学生更易于接受,具有明显的教学效果。

还可以鼓励学生自主探索,研究一些更深入的光学问题,这样可以拓宽知识面,提高能力[4,5,6]。

国内外研究情况在用计算机模拟[7]光学实验软件方面,国外的光学衍射模拟试验是在模拟设计和优化光学系统的过程中发展起来的。

在这方面,美国走在最前面,他们最具代表性的是劳伦斯利弗莫尔实验室光传输模拟计算软件Prop92[8,9]及大型总体优化设计软件CHAINOP 和PROPSUITE[10]。

光的干涉和衍射的matlab模拟

光的干涉和衍射的matlab模拟

光的干涉和衍射的matlab模拟单缝夫琅和费衍射是光的衍射现象之一,如图2所示。

当单色光波通过一个狭缝时,光波会向周围扩散,形成一系列同心圆环。

这些圆环的亮度分布是由夫琅和费衍射公式描述的,即。

其中为入射光波长,为狭缝宽度,为衍射角。

夫琅和费衍射公式表明,随着衍射角的增大,圆环的半径会减小,而亮度则会逐渐减弱。

在MATLAB中,可以通过输入实验参数,如光波长和狭缝宽度,来观察圆环的亮度分布和半径随衍射角的变化情况。

同时,还可以探讨不同波长和狭缝宽度对圆环亮度和半径的影响。

4双缝衍射双缝衍射是光的干涉和衍射现象的结合,如图3所示。

当一束单色光波通过两个狭缝时,光波会在屏幕上形成一系列干涉条纹和衍射环。

干涉条纹的亮度分布与___双缝干涉相同,而衍射环的亮度分布则由夫琅和费衍射公式描述。

在MATLAB中,可以通过输入实验参数,如光波长、双缝间距和双缝宽度,来观察干涉条纹和衍射环的亮度分布和条纹间距、环半径随实验参数的变化情况。

同时,还可以探讨不同实验参数对干涉条纹和衍射环的影响。

5衍射光栅衍射光栅是一种利用衍射现象制成的光学元件,如图4所示。

当一束单色光波通过光栅时,光波会被分为多个衍射光束,形成一系列亮度不同的衍射条纹。

衍射条纹的亮度分布与夫琅和费衍射公式描述的圆环类似,但是条纹间距和亮度分布会受到光栅常数的影响。

在MATLAB中,可以通过输入实验参数,如光波长和光栅常数,来观察衍射条纹的亮度分布和条纹间距随实验参数的变化情况。

同时,还可以探讨不同实验参数对衍射条纹的影响。

总之,通过MATLAB模拟光的干涉和衍射现象,可以更加直观地理解和掌握这些重要的光学现象,同时也可以为实验设计和数据分析提供有力的工具和支持。

本文介绍了___双缝干涉、单缝夫琅禾费衍射和衍射光栅光谱的计算机模拟。

当一束单色平行光通过宽度可调的狭缝,射到其后的光屏上时,形成一系列亮暗相间的条纹。

单缝夫琅禾费衍射的光强分布可以通过惠更斯-费涅耳原理计算。

应用Matlab模拟光的夫琅禾费衍射的研究

应用Matlab模拟光的夫琅禾费衍射的研究

应用Matlab模拟光的夫琅禾费衍射的研究摘要:光的衍射是一种非常重要的光的物理现象。

它指的是:光将障碍物绕过,偏离直线传播路径,然后进入阴影区里的现象。

它也是光的波动表现的一种现象。

衍射系统的组成有三个部分,它们分别是:光源、衍射屏、接收屏(用来接收衍射图样的屏幕)。

通常情况下,我们根据衍射系统当中三个组成部分之间相互距离的大小,将衍射现象分为两类:一类叫做菲涅耳(Fresnel)衍射,剩下的一类叫做夫琅禾费(Fraunhofer,)衍射。

此文通过Matlab软件,进行编程,进而对夫琅禾费衍射过程进行模拟。

然后给出衍射光强分布图形,又通过对光的波长、焦距、缝宽等因素的改变,得到了衍射光强的分布和它的变化规律,并在理论上作出了合理的解释。

从而帮助我们更深刻的理解光的波动性原理。

关键词:Matlab;衍射;光学实验目录1 绪论 (1)1.1光的衍射现象 (1)1.2 Matlab模拟的意义 (1)2 光的衍射理论 (3)2.1 惠更斯原理 (3)2.2 惠更斯——菲涅耳原理 (3)3夫琅禾费衍射原理 (4)3.1 夫琅禾费单缝衍射 (4)3.2 夫琅禾费双缝衍射 (5)4 夫琅禾费衍射模拟 (6)4.1 单缝 (6)4.2 矩孔 (12)5 总结 (15)参考文献 (15)1 绪论1.1光的衍射现象自然界之中有一些光的现象,它们与人们已经发现的光的直线传播现象并不是百分百符合。

这些现象相继在17世纪之后被科学家们发现。

这就是由光的波动性表现出来的。

在这些现象之中,人们第一个发现的光的现象便是衍射现象,而且还在发现的同时做了些实验与理论的研究和探讨。

第一次成功发现衍射现象的科学家是意大利的物理学者格里马第。

在他的一部著作里描写了这样一个实验:让光通过很小的一个孔后射入到一个暗室里面,利用这种方法来形成点光源,然后在光路上面放置根直杆。

这时发现了两个特殊的现象:一个是影子,它投在白色的屏幕之上,以光的直线传播理论假定的影子要比它的宽度要小;另一个就是在这个影子的边缘还呈现出大约2、3个条带,条带是彩色的,随着光的增强,增强到很强的时候,这些条带甚至进入影子里。

基于Matlab的光学衍射实验仿真

基于Matlab的光学衍射实验仿真

基于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分别是孔径平面和观察平面的坐标。

基于Matlab的夫琅和费单缝衍射的仿真分析

基于Matlab的夫琅和费单缝衍射的仿真分析

( a g h uU i ri o tnCo e eG a g h u 5 7 , ia Gu n z o nv syS na l g , u n z o 1 0Ch ) e t o 1 3 n
Ab t a tF e n l n e r l meh d t d r e s ge si F a n o e if ci n itn i it b t n f r ls n i a sr c : r s e itg a to o e v i l-l r u h fr d f a to n e s y d s i ui o mu a , d vs l i n t r t r o a u
衍 射 分为 菲涅 尔衍射 与 夫琅禾 费 衍射 。一 般将 满足 远场 近似 鱼 P 椭 f 条 件 的衍射 称 为夫 琅禾 费衍射 ,满 足 近场 近似 条件 的衍 射称 为 菲 b 涅 耳衍 射 。研 究夫 琅禾 费单缝 衍射 的方法 用传 统 的半波 带理 论及 所 以 由惠一 菲原理 可得 沿 0 向传 播 的所 有 次波 在 P点叠 加 方 振 幅矢 量 叠加 法 , 只 能给 出某些 特 定平 面上光 场 的近似 分 布 。 但 的合 振 幅为 本 文用 菲 涅尔积 分 法得 出衍射 屏 上 的光强 分布 公式 并 结合计 算机 仿 真技 术研 究 夫琅和 费衍 射 的光 强分 布 问题 ,给 出 了衍 射光 场 复 4 d E 振 幅及 强度 在任 意 平面上 的详 细分 布 , 并用 M ta 拟 出光学 成 alb模 像 过程 ,给 出指定 光学元 件 的衍射 特性 或成 像特 性 。 鱼8 令ux / =-2 b 山 b 。 单缝衍 射理 论 推导 单 缝衍 射 如示 意 图 1 所示 ,平 行光 束垂 直入射 ,光强 均匀 。 r 鱼P ( 8 f 啪 等 设 在缝 平 面时初 相 为 0 ,整个 缝所 发此 波在 0=0 向上 的总振 幅 方 tn b b 为 。 惠更 斯一 涅耳 原理 , 们把 缝 内的波 前 B 分割 为许 多 按 菲 我 B。 等 宽 的窄 条 , 们 是振 幅相 等 的次波源 , 多个 方 向发 出次 波 。 它 朝 接 收屏 位 于透镜 厶的 后方 ,角度 0 相 同 的衍 射 光线 会聚 于观 察

基于MATLAB光学衍射之矩形孔的夫琅禾费衍射

基于MATLAB光学衍射之矩形孔的夫琅禾费衍射

MATLAB的课程报告项目名称:基于MATLAB光学衍射之矩型孔的夫琅和费衍射一,MATLAB 基础:MatlaB是功能强大的科学及工程计算软件,它不但表现具有以矩阵计算为基础的强大数学计算和分析功能,而且还具有丰富的可视化图形表现功能和方便的程序设计能力。

Matlab是一款集数值分析、符号运算、图形处理、系统仿真等功能于一体的科学与工程计算软件,它具有编程效率高、简单易学、人机交互好、可视化功能、拓展性强等优点。

MatlAB是面向21世纪的计算机程序设计及科学计算语言。

MatlAB系统包括5个部分:开发环境,MAtlAB数学函数库,MAtlAB语言,图形功能,应用程序接口。

二,光的衍射的原理:光的衍射是光波在物质或空间里传播的基本发式,实际上,光波在传播的过程中,只要光波波面受到某种限制,光波会绕过障碍物偏离直线传播而进入几何阴影,并在屏幕上出现光强分布不均匀的现象,称为光的衍射。

根据障碍物到光源和考察点的距离,把衍射现象分为两类:菲涅尔衍射和夫琅和费衍射。

此次课程报告主要是围绕夫琅和费衍射展开的。

在光学上,夫琅和费衍射在场波通过圆孔或狭缝时发生,导致观测到的成像大小有所改变,成因是观测点的远场位置,及通过圆孔向外的衍射波有渐趋平面波的性质。

1,惠更斯原理:根据惠更斯-菲涅耳原理,单缝后面空间任一点P 的光振动是单缝处波阵面上所有子波波源发出的子波传到P 点的振动的相干叠加。

2. 菲涅耳-基尔霍夫衍射公式:由于菲涅耳理论本身的缺陷,所以从波动微分方程出发,利用场论中的Green 定理及电磁场的边值条件,其中倾斜因子为()k θ和常数C 均在下面所设。

~exp()exp()cos(,)cos(,)()[]2A ikl ikr n r n l E P d i l r σλ-=∑⎰⎰ 若设 1C i λ=; ~exp()()A ikl E Q l= ;cos(,)cos(,)()2n r n l K θ-= 则上式可化为:~~exp ikr E()()()P C E Q K d θσ=∑⎰⎰()r3. 基尔霍夫衍射公式的近似 菲涅耳衍射近似满足:2222221111111121111()()11[]222x x y y xx yy x y x y r z z z z z z ⎧⎫-+-+++=+=+-+⎨⎬⎩⎭ 当上式中1z 很大而使得第四项相对相位的贡献远小于π时,即满足:221()2x y k z π+<< 随着1z 的逐渐增大,从而可推得夫琅和费衍射公式如下: ~~2211,1111111exp()(,)exp[()]()exp[()]2ikz ik ik E x y x y E x y xx yy dx dy i z z z λ=+-+∑⎰⎰以上是矩孔的矩孔夫琅和费衍射复振幅计算公式的推导过程。

夫琅禾费衍射的Matlab仿真

夫琅禾费衍射的Matlab仿真

夫琅禾费衍射的Matlab仿真110512班 11051057 李陟凌夫琅禾费衍射,是认为光源和观察屏离衍射屏(孔处于无穷远处的衍射现象。

实验装置如图:S为单色点光源,放置在透镜L1的物方焦点处,所得平行光垂直入射到障碍物,借助于透镜L2将无穷远处的衍射图样移至L2的像方焦面上观察。

若障碍物为单缝,设缝宽度为a ,观察屏上点P与透镜L2光心连线的方位角为θ,由几何成像理论,此角正好也是相应平面波分量的方位角。

若取入射光波长为λ,透镜L2的焦距为f,根据惠更斯- 菲涅耳原理,可得单缝夫琅禾费衍射强度分布公式为:I=I0sin2α2(公式1式中I0为接收屏中央的强度,α=θ2=πasinθλ。

阿贝成像原理的演示实验中提及到夫琅禾费衍射,然而没有相应的演示实验装置,由此我产生了用数学软件模拟其衍射图样的想法。

根据公式1,代入λ、a、θ等值,就可以得到接收屏每一点的光强度值,调用imagesc(函数就可以得到干涉条纹样。

但这种方法只适用于单缝等简单情况。

为了模拟较复杂的二维孔洞产生的衍射图样,我查阅了资料,得到如下的方法:设衍射屏的振幅透射系数为t(x,y,根据菲涅耳——基尔霍夫衍射积分,若观察平面到衍射屏的距离z 满足如下近似条件:则在单位振幅的相干平面光波照射下,可得衍射屏的夫琅禾费衍射光场复振幅及强度分布分别为:式中T = F[t(x,y]表示衍射屏振幅透射系数t(x,y的傅里叶变换。

上式表明,在单位振幅的相干平面光波照射下,夫琅禾费衍射光场的复振幅分布正比于衍射屏振幅透射系数的傅里叶交换;衍射光场复振幅表达式中的相位因子并不影响观察屏上衍射图样的强度分布,若略去常系数,则衍射图样的强度分布直接等于衍射屏透射光场复振幅的傅里叶变换的模值平方。

将衍射屏制作成输入图像,用imread(函数读入,然后利用傅里叶变换函数fft2(对其进行傅里叶变换,得到其傅里叶频谱。

由函数fft2(实现的傅里叶变换频谱的直流分量位于图像的左上角,而由透镜实现的光学傅里叶变换的直流分量位于图像中心。

基于Matlab的夫琅禾费衍射光学仿真

基于Matlab的夫琅禾费衍射光学仿真

基于Matlab的夫琅禾费衍射光学仿真摘要计算机仿真技术是以多种学科和理论为基础,以计算机及其相应的软件为工具,通过虚拟试验的方法来分析和解决问题的一门综合性技术。

计算机仿真早期称为蒙特卡罗方法,是一门利用随机数实验求解随机问题的方法。

关键词:计算机仿真夫琅禾费衍射MatlabFraunhofer Diffraction Optical Simulation Based onMatlabAbstract 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年代后串行处理数字机逐渐应用到仿真之中。

基于Matlab的光学衍射仿真

基于Matlab的光学衍射仿真

基于Matlab的光学衍射实验仿真摘要光学试验中衍射实验是非常重要的实验. 光的衍射是指光在传播过程中遇到障碍物时能够绕过障碍物的边缘前进的现象, 光的衍射现象为光的波动说提供了有力的证据. 衍射系统一般有光源、衍射屏和接受屏组成,按照它们相互距离的大小可将衍射分为两大类,一类是衍射屏与光源和接受屏的距离都是无穷远时的衍射,称为夫琅禾费衍射,一类是衍射屏与光源或接受屏的距离为有限远时的衍射称为菲涅尔衍射.本文用Matlab软件对典型的衍射现象建立了数学模型,对衍射光强分布进行了编程运算,对衍射实验进行了仿真。

最后创建了交互式GUI界面,用户可以通过改变输入参数模拟不同条件下的衍射条纹.本文对于衍射概念、区别、原理及光强分布编程做了详细全面的介绍关键字:Matlab;衍射;仿真;GUI界面;光学实验Matlab-based Simulation of Optical Diffraction ExperimentAbstractOptical 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 diffraction, the diffraction intensity distribution of the programming operation,the diffraction experiment is simulated. Finally, create an interactive GUI interface, users can change the input parameters to simulate different conditions of the diffraction pattern.This concept of the diffraction, difference, intensity distribution of programming principles and a detailed comprehensive descriptionKey word:matlab;diffraction; simulation;gui interface;optical experiment目录1 绪论 (1)1.1光学仿真的研究意义 (1)1.2国内外研究现状 (2)1。

模拟夫琅禾费衍射和菲涅耳衍射实验matlab程序

模拟夫琅禾费衍射和菲涅耳衍射实验matlab程序

模拟夫琅禾费衍射实验程序说明:本实验可以选择孔径类型、孔径半径、输入波长、衍射屏和衍射孔的距离等。

当衍射屏和衍射孔的距离相对较小时,此衍射为菲涅耳衍射,当距离相对较大时满足夫琅禾费衍射的条件,两者的程序一样,只是距离Z的大小不一致。

又由于夫琅禾费衍射与傅里叶变换成正比,只差一个系数关系。

所以程序中的衍射既是直接对物光进行傅里叶变换即可。

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进行夫琅和费衍射程序分享

利用MATLAB进行夫琅和费衍射程序分享

利用MATLAB进行夫琅和费衍射我已经发过相关的帖子,是我以前做过的课程论文。

近来看见有很多人回帖说需要程序,故而总结一下方法和共享程序:通过MATLAB软件编程实现夫琅和费衍射的方法:(1)用衍射积分(2)傅立叶变换一、衍射积分相关程序如下:1.单缝衍射clearlamba=500e-9;%波长a=1e-3;D=1;ym=3*lamba*D/a;%屏幕上y的范围n=51;%屏幕上的点数ys=linspace(-ym,ym,n);n=51;%屏幕上的点数yp=linspace(0,a,n);for i=1:nsinphi=ys(i)/D;alpha=pi*yp*sinphi/lamba;sumcos=sum(cos(alpha));sumsin=sum(sin(alpha));B(i,:)=(sumcos^2+sumsin^2)/n^2;endN=256;%确定灰度的等级Br=(B/max(B))*N;subplot(1,2,1)image(ym,ys,Br);colormap(gray(N));%色调处理subplot(1,2,2)plot(B,ys,'k');2.多缝衍射clearlamda=500e-9; %波长N=2; %缝数,可以随意更改变换a=2e-4;D=5;d=5*a;ym=2*lamda*D/a;xs=ym;n=1001;ys=linspace(-ym,ym,n);for i=1:nsinphi=ys(i)/D;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;subplot(1,2,1)image(xs,ys,Br);colormap(gray(NC)); %色调处理subplot(1,2,2)plot(B1,ys,'k');3.矩孔衍射clearlamda=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:msinth1=xs(i)/sqrt(xs(i)^2+f^2);sinth2=ys./sqrt(ys.^2+f^2);angleA=pi*a*sinth1/lamda;angleB=pi*b*sinth2./lamda;B(:,i)=(sin(angleA).^2.*sin(angleB).^2.*5000./(angleA.^2.*angleB.^2));endsubplot(1,2,1)image(xs,ys,B)colormap(gray(n))subplot(1,2,2)plot(B(m/2,:),ys,'k')4.正弦光栅clear allxm=10*pi;ys=xm;xs=linspace(-xm,xm,500);B=cos(xs)+1;N=255;Br=B/2*N;image(xs,ys,Br);colormap(gray(N));二、傅里叶变换(1)基本思想:在傅立叶变换光学中夫琅和费衍射场的强度分布就等于屏函数的功率谱。

夫琅禾费衍射matlab

夫琅禾费衍射matlab

夫琅禾费衍射matlab引言夫琅禾费衍射(Fraunhofer diffraction)是指波在通过孔径或物体边缘时发生衍射的现象。

这一现象在光学领域得到广泛应用,并在科学研究中发挥重要作用。

而Matlab作为一种强大的计算工具,可以用来模拟和分析夫琅禾费衍射现象。

本文将介绍夫琅禾费衍射的基本原理,并展示如何使用Matlab来模拟和分析这一现象。

夫琅禾费衍射的基本原理夫琅禾费衍射是一种光的衍射现象,当光通过孔径时,光的传播符合亚耳伯特衍射原理,即光波在传播过程中会发生衍射。

夫琅禾费衍射的特点是衍射波前是平行的,远离光源的点光源成为衍射光的源点。

夫琅禾费衍射可以通过光的干涉和衍射来解释。

Matlab模拟夫琅禾费衍射的基本步骤在Matlab中模拟夫琅禾费衍射的基本步骤如下:1.定义衍射光的波长和孔径的尺寸。

2.计算衍射光的传播距离和传播方向。

3.使用夫琅禾费衍射公式计算衍射场的幅度和相位分布。

4.计算衍射光的强度分布。

5.可视化衍射光的强度分布。

下面将详细介绍每个步骤的实现方法。

定义衍射光的波长和孔径的尺寸在Matlab中,可以通过定义变量来表示衍射光的波长和孔径的尺寸。

例如,可以使用lambda表示波长,使用D表示孔径的尺寸。

计算衍射光的传播距离和传播方向对于夫琅禾费衍射,衍射光的传播距离和传播方向与孔径的尺寸有关。

通常情况下,可以假设衍射光从孔径的中心点向外传播。

在Matlab中,可以使用向量来表示衍射光的传播距离和传播方向。

使用夫琅禾费衍射公式计算衍射场的幅度和相位分布夫琅禾费衍射公式可用于计算衍射场的幅度和相位分布。

幅度和相位分布可以通过求衍射光场的傅里叶变换来获得。

在Matlab中,可以使用傅里叶变换函数来计算衍射场的幅度和相位分布。

计算衍射光的强度分布夫琅禾费衍射的强度分布可以通过幅度和相位分布的平方来计算得到。

在Matlab 中,可以通过对幅度和相位分布进行平方运算来计算衍射光的强度分布。

大学物理-Matlab模拟夫琅禾费衍射

大学物理-Matlab模拟夫琅禾费衍射

Matlab 模拟夫琅禾费衍射
一、原理
衍射是光波动性的表现,当光波在遇到一定尺寸障碍物时不沿直线传播,偏离原来直线传播。

夫琅禾费衍射,是波动衍射的一种,通过圆孔或狭缝时发生,导致观测到的成像大小有所改变。

夫琅禾费衍射的原理如图1所示,一束平行光照射到衍射屏上,衍射屏开口处AB 的波前向各个方向发出次波,方向彼此相同的衍射次波经透镜L 汇聚到其像方焦平面的同一点P 上。

满足相长干涉条件的位置为亮条纹,满足相消干涉条件的位置为暗条纹,明暗条纹构成了该衍射屏的夫琅禾费衍射图样。

图1 夫琅禾费衍射原理图
1.白光单缝衍射
θ=arctan (x
f
)
光强分布 I (x )=I 0[sin (
πasin(arctan(x f
))
λ
)]2
2.白光圆孔衍射
θ=arctan (r
f
)
光强分布 I (r )=I 0[ J 1(
2πasin(arctan(r
f
))
λ
)πasin(arctan(r f
))
λ]
2
Matlab 模拟中采用等量红(700nm 绿(546.1nm )蓝(435.8nm )混合模拟,把红绿蓝三基色的衍射图样存储在m x n x 3矩阵中,按RGB 图显示产生白光的衍射。

二、代码
设透镜焦距f=800mm, a=0.04mm
图2 白光单缝衍射Matlab模拟代码图3 白光圆孔衍射Matlab模拟代码三、结果
图4 白光单缝衍射Matlab模拟结果
图5 白光圆孔衍射Matlab模拟结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 资料。

相关文档
最新文档