MATLAB编程用两方法模拟光学实验MATLAB编程用两种方法模拟光学实验.doc

MATLAB编程用两方法模拟光学实验MATLAB编程用两种方法模拟光学实验.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB编程用两方法模拟光学实验MATLAB编程用两种方法模拟光学实验

MATLAB编程用两种方法模拟光学实验 摘要: 利用MATLAB软件编程实现了用衍射积分的方法对单缝衍射、杨氏双缝干涉、黑白光栅衍射的计算机模拟;以及用傅立叶变换方法对简单孔径衍射、黑白光栅及正弦光栅夫琅和费衍射的模拟。 关键词: MATLAB;衍射积分;傅立叶变换;计算机模拟 引言: 美国Mathworks公司推出的MATLAB,是一种集数值计算、符号预算、可视化建模、仿真和图形处理等多种功能于一体的优秀图形化软件。本文介绍了通过MATLAB软件编程实现用衍射积分和傅立叶变换实现夫琅和费衍射计算机模拟的方法。 计算机模拟为衍射实验的验证提供一条简捷、直观的途径。从而加深了对物理原理、概念和图像的理解。 正文: 大学教学课程中引入计算机模拟技术正日益受到重视,与Basic、C和Fortran相比,用MATLAB软件做光学试验的模拟,只需要用数学方式表达和描述,省去了大量繁琐的编程过程。下面来介绍利用MATLAB进行光学模拟的两种方法。 (一)衍射积分方法: 该方法首先是由衍射积分算出接收屏上的光强分布,然后根据该分布调制色彩作图,从而得到衍射图案。 单缝衍射。 把单缝看作是np个分立的相干光源,屏幕上任意一点复振幅为np个光源照射结果的合成,对每个光源,光程差Δ=ypsinΦ,sinΦ=ys/D,光强I=I0(Σcosα)2+(Σsinα)2,其中α=2Δ/λ=πypys/λD 编写程序如下,得到图1 clear lam=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:ny sinphi=ys(i)/D; alpha=2*pi*yp*sinphi/lam; sumcos=sum(cos(alpha)); sumsin=sum(sin(alpha)); B(i,:)=(sumcos^2+sumsin^2)/np^2; end N=255; Br=(B/max(B))*N; subplot(1,2,1) image(ym,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys); 杨氏双缝干涉 两相干光源到接收屏上P点距离r1=(D2+(y-a/2)2)1/2, r2=(D2+(y+a/2)2)1/2,相位差 Φ=2π(r2-r1)/λ,光强I=4I0cos2(Φ/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:n r1=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)*N subplot(1,2,1) image(xs,ys,Br); colormap(gray(N)); subplot(1,2,2) plot(B,ys) 光栅衍射 公式:I=I0(sinα/α)2(sin(λβ)/sinβ)clear lam=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:n sinphi=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); 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); (二)傅立叶变换方法: 在傅立叶变换光学中我们知道夫琅和费衍射场的强度分布就等于屏函数的功率谱。因此我们可以直接将光屏进行傅立叶变换,再处理得到衍射图样。 物体图像的生成可以直接由矩阵运算生成,也可利用Windows下的画图工具,生成一幅黑白图像,并调用命令函数imread()输入图像,输入的图像是一个巨大的二维矩阵,利用MATLAB函数库中的fft2()命令对该矩阵进行二位离散傅立叶变

您可能关注的文档

文档评论(0)

ganqludp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档