基于matlab gui设计的光学实验仿真
时间:2025-07-02
时间:2025-07-02
讲述应用Matlab来实现圆孔衍射的界面设计。
2007级计算机课程设计
测控与光电技术学院 电子科学与技术 专业
课程设计题目
学 生 姓 名 吴海
班 级 070832
指 导 教 师 钟可君
日 期 2010 年 6 月 28 日
南 昌 航 空 大 学
讲述应用Matlab来实现圆孔衍射的界面设计。
测试与光电工程学院
计算机课程设计任务书
系班 学生:吴海
课题名称: 圆孔衍射现象计算机仿真设计
课题内容:
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].通化师范学院学报,
讲述应用Matlab来实现圆孔衍射的界面设计。
2010,31(2):52-54.
系负责人: 指导教师: 钟可君 时间:2010年6月21日
单孔衍射上机试验
上机试验程序(1)
%圆孔衍射
clc
clear
lam=500e-9
a=1e-3
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
hh=(2*BESSELJ(1,x)).^2./x.^2;
b(:,i)=(hh)'.*5000;
end
subplot(1,2,1)
image(xs,ys,b)
colormap(gray(n))
subplot(1,2,2)
b(:,m/2)
plot(ys,b(:,m/2))
程序运行后的结果 单孔衍射图
讲述应用Matlab来实现圆孔衍射的界面设计。
光强分布图
[摘 要]运用MATLAB6的软件平台,编制演示程序,对圆孔衍射像分辨本领进行仿真分析.
[关键词]圆孔衍射;分辨本领; Airy斑;仿真分析
意义:圆孔作为光学仪器基本形状,其衍射现象在光学研究中占有重要地位.光学衍射现象的实验演示需要特定的实验仪器和实验所,给研究工作带来许多不便.另外,清晰的圆孔衍射图样,要求的圆孔 半径很小,在一般实验中难以实现.基于MATLAB6软件强大的计算
讲述应用Matlab来实现圆孔衍射的界面设计。
能力和可视化功能上的优势,利用计算机对圆孔衍射过程进行仿分析,可以使衍射现象直观地表现出来;通过调整实验参数,可以同步生成不同实验条件下的衍射图样,便于对衍射现象和像分辨本领进行比较分析;利用色图表现光强分布,使实验效果更为逼真,在实和研究中具有重要意义.
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来实现圆孔衍射的界面设计。
运用MATLAB编制运算程序circle_aperture
base01.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)
讲述应用Matlab来实现圆孔衍射的界面设计。
z=R*sin_theta/lambda; %%z=Rsin(theta)/lambda m=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; %%确定用的灰度等级为255
Imax=max(max(I));
Ir=I/Imax*NCLevers;
colormap(gray(NCLevers)); %%用灰度级颜色绘图
subplot(2,2,4),image(x(1,:),y(:,1),Ir) %%绘制强度的灰度图
axis square
讲述应用Matlab来实现圆孔衍射的界面设计。
axis([-2 2 -2 2]);
colorbar('vert')
程序运行后,在坐标区,生成强度分布曲线和色 图(如图2,图中的极值判断和文字标示命令在程序 中未列出).图中,上图表示强度沿x坐标(y =0)分 布,下图左侧表示强度随无量纲因子Rsinθ/λ的变 化规律,右侧则表示光强在xoy平面的变化规律,中 央的白色亮区为Airy斑.在光强曲线图 …… 此处隐藏:2473字,全部文档内容请下载后查看。喜欢就下载吧 ……