基于matlab gui设计的光学实验仿真

时间: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字,全部文档内容请下载后查看。喜欢就下载吧 ……

基于matlab gui设计的光学实验仿真.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219