Matlab数字衍射光学实验讲义(一)

合集下载

光学衍射图样的MATLAB仿真

光学衍射图样的MATLAB仿真

1、建立几何模型:在Matlab中建立一个单缝衍射模型,包括一个光源、一 个单缝和一个观察点。
2、设置光源和观察条件:设置光源的波长为600纳米,强度为1瓦,方向为 垂直于缝的方向;观察点位于缝的右侧1米处,观察角度为45度。
3、进行仿真计算:利用Matlab中的相关函数进行仿真计算,得到观察点处 光的强度分布。
光学衍射图样的MATLAB仿真
目录
01 摘要
03 二、衍射的基本原理
02 一、引言 04 三、MATLAB在光学仿
真中的应用
目录
05 四、光学衍射图样的 MATLAB仿真
07 六、结论与展望
06 五、具体例子 08 参考内容
摘要
本次演示介绍了使用MATLAB进行光学衍射图样仿真的方法。首先介绍了衍射 的基本原理和MATLAB在光学仿真中的应用,然后详细阐述了如何使用MATLAB进行 衍射图样的仿真。通过具体的例子,展示了如何使用MATLAB模拟不同条件下的衍 射现象,并解释了仿真结果。最后,总结了本次演示的主要内容和贡献,并指出 了未来可能的研究方向。
参考内容
引言
光学衍射在许多领域中都具有重要应用,例如光学仪器设计、光谱分析、光 信息处理等。对光学衍射进行仿真可以帮助人们更好地理解光学系统的性能,预 测光的传播行为,优化光学设计。本次演示将介绍如何使用Matlab进行光学衍射 仿真。
准备工作
在进行光学衍射仿真之前,需要做好以下准备工作: 1、安装Matlab:首先需要安装Matlab软件,版本要求至少为R2018a或更高。
其中E(x,y)是电场强度,λ是光的波长,c是光速。通过求解这个方程,可 以得到衍射图样的电场分布。
三、MATLAB在光学仿真中的应 用

基于Matlab的光学实验仿真

基于Matlab的光学实验仿真

基于Matlab的光学实验仿真一、本文概述随着科技的快速发展,计算机仿真技术已成为科学研究、教学实验以及工程应用等领域中不可或缺的一部分。

在光学实验中,仿真技术能够模拟出真实的光学现象,帮助研究者深入理解光学原理,优化实验设计,提高实验效率。

本文旨在探讨基于Matlab的光学实验仿真方法,分析Matlab在光学实验仿真中的优势和应用,并通过具体案例展示其在光学实验仿真中的实际应用效果。

通过本文的阐述,读者将能够了解Matlab在光学实验仿真中的重要作用,掌握基于Matlab的光学实验仿真方法,从而更好地应用仿真技术服务于光学研究和实验。

二、Matlab基础知识Matlab,全称为Matrix Laboratory,是一款由美国MathWorks公司出品的商业数学软件,主要用于算法开发、数据可视化、数据分析以及数值计算等领域。

Matlab以其强大的矩阵计算能力和丰富的函数库,在光学实验仿真领域具有广泛的应用。

Matlab中的变量无需预先声明,可以直接使用。

变量的命名规则相对简单,以字母开头,后面可以跟字母、数字或下划线。

Matlab支持多种数据类型,包括数值型(整数和浮点数)、字符型、逻辑型、结构体、单元数组和元胞数组等。

Matlab的核心是矩阵运算,它支持多维数组和矩阵的创建和操作。

用户可以使用方括号 [] 来创建数组或矩阵,通过索引访问和修改数组元素。

Matlab还提供了大量用于矩阵运算的函数,如矩阵乘法、矩阵转置、矩阵求逆等。

Matlab具有强大的数据可视化功能,可以绘制各种二维和三维图形。

在光学实验仿真中,常用的图形包括曲线图、散点图、柱状图、表面图和体积图等。

用户可以使用plot、scatter、bar、surf和volume 等函数来创建这些图形。

Matlab支持多种控制流结构,如条件语句(if-else)、循环语句(for、while)和开关语句(switch)。

这些控制流结构可以帮助用户编写复杂的算法和程序。

Matlab数字衍射光学实验(一)

Matlab数字衍射光学实验(一)

phi = 0:pi/10:2*pi; % x的范围从0到2πz = exp(i * phi);u = real(z);%取实部v = image(z);%取虚部figure(1);%画图plot(phi,u);%画实部的变化曲线figure(2);plot(phi,v)%画虚部的变化曲线clear;%清除内存close all;%关闭所有窗口x=linspace(0,2*pi,100);%设置横坐标范围及网格y1=sqrt(x);%开根号figure(1);plot(x,y1,'r')%做出y1的曲线,'r'代表图线为红色clear;%清除内存close all;%关闭所有窗口x=linspace(-2*pi,2*pi,100);%100个数横坐标从-2pi到2pi y1=besselj(1,x);%第一类贝塞尔函数,一阶y2=besselj(0,x);%第一类贝塞尔函数,0阶figure(1);plot(x,y1,'r');figure(2);plot(x,y2,'b');clear;close all;[x,y]=meshgrid(-2:.05:2,-2:.05:2);%设置二维网格z=sinc(x).*sinc(y);figure(1);imshow(z);%二维灰度图figure(2);imagesc(z);%二维彩图figure(3);mesh(z);%三维图像clear;close all;a=5;x=linspace(-5,5,100);y1=exp(-pi.*(x/a).^2);%第一类贝塞尔函数,一阶b=2;y2=exp(-pi.*(x/b).^2);%第一类贝塞尔函数,一阶figure(1);plot(x,y1,'r');figure(2);plot(x,y2,'b');clear;close all;a=1;b=1;[x,y]=meshgrid(-2:.05:2,-2:.05:2);%设置二维网格z=exp(-pi.*((x/a).^2+(y/b).^2));%高斯函数figure(1);imagesc(z);figure(2);mesh(z);clear;close all;M=100;%x方向抽样点数N=100;%y方向抽样点数w=10;%缝的宽度d=10;%缝偏离中心的位置obj1=zeros(M,N);%赋值为0的一个二维矩阵,大小为M*N obj1(:,(N/2-w/2):N/2+w/2)=1.0;%设置缝在y向中心,且缝的宽度为wfigure(1);imshow(obj1);obj2=zeros(M,N);obj2(:,(N/2-d)-w/2:(N/2-d)+w/2)=1.0;%缝偏离中心位置d个像素figure(2);imshow(obj2);clear;close all;M=100;%x方向抽样点数N=100;%y方向抽样点数w=10;%缝的宽度d=10;%缝偏离中心的位置obj1=zeros(M,N);%赋值为0的一个二维矩阵,大小为M*N obj1(:,(N/2+d)-w/2:(N/2+d)+w/2)=1.0;%设置缝在y向中心,且缝的宽度为wobj2=zeros(M,N);obj2(:,(N/2-d)-w/2:(N/2-d)+w/2)=1.0;%缝偏离中心位置d个像素obj3=obj1+obj2;figure(1);imshow(obj3);clear;close all;M=100;N=100;w=10;%缝宽obj=zeros(M,N);obj((M/2-w/2):(M/2+w/2),(N/2-w/2):(N/2+w/2))=1.0;%缝处于中心位置figure(1);imshow(obj);figure(2);imagesc(obj);figure(3);mesh(obj);。

理想透镜衍射matlab

理想透镜衍射matlab

理想透镜衍射matlab
在MATLAB中,可以使用物理光学工具箱来模拟理想透镜的衍射
效应。

衍射是光通过边缘或孔径时发生的偏折现象,理想透镜的衍
射模拟可以帮助我们理解光的传播规律和光学系统的性能。

首先,我们需要定义理想透镜的参数,包括透镜的曲率半径、
折射率等。

然后,我们可以使用MATLAB中的衍射函数(例如fft2)来模拟透镜的衍射效应。

具体步骤如下:
1. 定义透镜参数,包括透镜的孔径大小、曲率半径、折射率等
参数。

2. 生成输入光场,可以使用MATLAB中的函数生成一个表示入
射光场的二维矩阵,可以是单色光或者白光。

3. 衍射计算,使用MATLAB中的快速傅里叶变换函数fft2对输
入光场进行衍射计算,得到透镜后的光场分布。

4. 显示结果,可以使用MATLAB中的图像显示函数imshow来显
示衍射后的光场分布,观察衍射效应。

在模拟理想透镜的衍射过程中,需要考虑透镜的孔径大小、入射光波长、透镜的焦距等因素,这些参数都会影响衍射效应的模拟结果。

此外,还可以通过调整透镜参数、入射光场的波前形状等来进一步探究理想透镜的衍射特性。

总的来说,通过MATLAB中物理光学工具箱提供的函数和工具,我们可以比较直观地模拟理想透镜的衍射效应,从而更好地理解光学系统的行为。

希望这个回答能够帮到你,如果你有更多关于理想透镜衍射模拟的问题,欢迎继续提问。

matlab计算衍射

matlab计算衍射

matlab计算衍射衍射是一种波传播时遇到障碍物或开口时发生的现象,对于光学、声学等领域具有重要意义。

本文将介绍MATLAB在衍射计算中的基本原理、常用方法以及实际应用,旨在为研究者提供一个全面的MATLAB衍射计算指南。

一、引言衍射是波在传播过程中遇到障碍物或开口时发生的波动现象,广泛应用于光学、声学、天文学等领域。

MATLAB作为一种高效的数学建模和计算工具,在衍射计算中有着广泛的应用。

本文将深入探讨MATLAB在衍射计算中的基本原理、方法和实际应用。

二、MATLAB中的衍射基本原理赫姆霍兹方程:衍射计算的基础是赫姆霍兹方程,描述了波场的传播和衍射现象。

MATLAB通过数值方法求解赫姆霍兹方程,实现波场的模拟。

傅里叶光学:利用傅里叶光学原理,将衍射问题转化为频域中的问题。

MATLAB提供了强大的傅里叶变换工具,可以对衍射场景进行频谱分析。

三、MATLAB中的衍射计算方法傅里叶衍射公式:利用傅里叶变换和逆变换,可以在频域中高效计算衍射场景。

MATLAB的fft和ifft函数可用于实现这一计算过程。

衍射积分公式:利用衍射积分公式,通过对波场的积分来计算衍射图样。

MATLAB的数值积分函数可以方便地应用于这一过程。

四、MATLAB中的衍射实际应用光学衍射模拟:MATLAB可用于模拟各种光学衍射现象,如单缝衍射、双缝衍射、光栅衍射等。

通过调整参数,可以实时观察衍射图样的变化。

声学衍射计算:在声学领域,MATLAB可以用于计算声波在不同环境中的衍射效应,对声学设备的设计和优化提供支持。

天文学应用:对于射电天文学等领域,MATLAB可用于计算射电波在宇宙中的传播和衍射,帮助天文学家理解观测数据。

五、MATLAB衍射计算的优势与挑战优势:MATLAB提供了丰富的数学函数和工具箱,使得衍射计算更加简便高效。

其图形用户界面(GUI)也有助于直观地展示计算结果。

挑战:随着衍射计算问题的复杂化,需要更高级的数值方法和算法,这对MATLAB的计算性能提出了一定的挑战。

matlab作业(衍射实验)

matlab作业(衍射实验)

基于MATLAB 模拟演示衍射实验阚亮亮 李宗景 吴小龙 尹岩 将matlab 应用与以前学习过的课程是学习该课程的最重要的意义,通过matlab 演示衍射实验效果好,简洁,直观。

下图是单缝衍射是matlab 所得到的图像-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025附上MATLAB 程序:lamda=500e-9; %波长N=1; %缝数 ,可以随意更改变换a=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: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(hot(NC)); %色调处理subplot(1,2,2)plot(B1,ys,'k');衍射现象的模拟结果与讨论在实验时改变N的值可以得到单缝以及多缝衍射的输出结果,并可以得到这样的结论:(1)当入射光波长一定时,单缝宽度a越小,衍射条纹越宽,衍射现象越显著;(2)单缝越宽,衍射越不明显,单缝宽度逐渐增大,衍射条纹越来越窄;(3)当缝宽a>>λ时,各级衍射条纹向中央明纹靠拢,而无法分辨,这时衍射现象消失。

结束语利用MATLAB对抽象物理现象进行计算机仿真时,首先必须对物理过程进行数学抽象,建立适合程序实现的数学模型,其次利用MATLAB软件包中的有关工具编制m文件,最后对物理过程和物理现象进行模拟,从而可以把抽象的物理问题进行简明、直观的动态展现。

衍射的Matlab模拟

衍射的Matlab模拟

p
?
x
f'
z1
23
二、夫琅合费衍射公式的意义
加有透镜之后,有两个因子与透镜有关:
(1)复数因子
C?
1
i? f
?exp
? ??ik
(
f
??
x2 ? y2 ? 2 f ? )??
? ? 其中 r ? CP ?
f ?2 ? x2 ? y2
?
f ??
x2 ? y2 2f?
结论:若孔径很靠近透镜,r 是孔径原点O处发出的子
y
1、强度分布计算
1
(Intensity distribution calculation )
b
设矩形孔的长和宽分别为 a
x1
和 b,用单位平面波照射,即
E~ ?x1 ,
y1 ??
?1 ? ?0
在矩孔以内 在矩孔以外
ba
27
将矩孔的复振幅分布代入下式:
?? E~?x, y?? C
? -?
E~?x1
?
E0
2
? ?Cab ?2
先讨论沿y轴方向的分布。 I/I0
在Y轴上,? ?
0,
??sin ? ??2 ?
1.0
1
?? ?
0.8
故:
I
y=I
0
????
sin
?
?
????2
0.6 0.4
0.2
(1)主极大值的位置:
0.0
-10
当? =0时,I有主极大值 Imax=I0,
-2-p5
-p
0
p
25p
10
?
30
波到P点的光程,而 kr 则是O点到P点的位相延迟。

Matlab数字衍射光学实验讲义(一)

Matlab数字衍射光学实验讲义(一)
5
2015 级光电工程专业综合实验-信息光学专题实验
imagesc(z) figure(2) mesh(z) %%---------------------matlab 代码-------------------------
改变参数 a,b 的取值,观察模拟结果变化。 4)第一类贝塞尔函数 besselj(v,z)
1. 实验目的:
掌握基本的 Matlab 编程语言,了解其编程特点;模拟几种常用函数,了解其编 程过程及图像显示命令函数,掌握 Matlab 画图方法;通过设计制作一系列光学 研究物体掌握其编程方法; 掌握光波的 matlab 编程原理及方法, 初步了解 Matlab
2
2015 级光电工程专业综合实验-信息光学专题实验
4

2015 级光电工程专业综合实验-信息光学专题实验
figure(4) surfl(x,y,z)%三维 %%---------------------matlab 代码-------------------------
改变变量 a,b 观察模拟图像变化。
x 2 x 3)高斯函数:一维高斯函数 Gauss exp a a
二维高斯函数: sinc
x y x y , sinc sinc ,a,b 为正数。 a b a b
2 2 x y x y x y Gauss , Gauss Gauss exp a b a b a b
二维 sinc 函数: sinc
x y x y , sinc sinc ,a,b 为正数。 a b a b
%%---------------------matlab 代码------------------------clear %清除内存 close all %关闭所有窗口 [x,y] = meshgrid(-2:.05:2, -2:.05:2); %设置二维网格 z=sinc(x).*sinc(y); %sinc 函数 figure(1) imshow(z) %二维灰度图 figure(2) imagesc(z) %二维彩色 figure(3) mesh(z)%三维
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验注意事项(必读)1.没有弄清楚实验内容者,禁止接触实验仪器。

2.注意激光安全。

绝对不可用眼直视激光束,或借助有聚光性的光学组件观察激光束,以免损伤眼睛。

3.注意用电安全。

He-Ne激光器电源有高压输出,严禁接触电源输出和激光头的输入端,避免触电。

4.注意保持卫生。

严禁用手或其他物品接触所有光学元件(透镜、反射镜、分光镜等)的光学表面;特别是在调整光路中,要避免手指碰到光学表面。

5.光学支架上的调整螺丝,只可微量调整。

过度的调整,不仅损坏器材,且使防震功能大减。

6.实验完成后,将实验所用仪器摆放整齐,清理一下卫生。

Matlab数字衍射光学实验一计算机仿真过程是以仿真程序的运行来实现的。

仿真程序运行时,首先要对描述系统特性的模型设置一定的参数值,并让模型中的某些变量在指定的范围内变化,通过计算可以求得这种变量在不断变化的过程中,系统运动的具体情况及结果。

仿真程序在运行过程中具有以下多种功能:1)计算机可以显示出系统运动时的整个过程和在这个过程中所产生的各种现象和状态。

具有观测方便,过程可控制等优点;2)可减少系统外界条件对实验本身的限制,方便地设置不同的系统参数,便于研究和发现系统运动的特性;3)借助计算机的高速运算能力,可以反复改变输入的实验条件、系统参数,大大提高实验效率。

因此.计算机仿真具有良好的可控制性(参数可根据需要调整)、无破坏性(不会因为设计上的不合理导致器件的损坏或事故的发生)、可复现性(排除多种随机因素的影响,如温度、湿度等)、易观察性(能够观察某些在实际实验当中无法或者难以观察的现象和难以实现的测量,捕捉稍纵即逝的物理现象,可以记录物理过程的每一个细节)和经济性(不需要贵重的仪器设备)等特点。

Matlab是MathWorks公司于1982年推出的一套高性能的数值计算和可视化软件。

它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便、界面友好的用户环境。

它还包括了ToolBox(工具箱)的各类问题的求解工具,可用来求解特定学科的问题。

Matlab的长处在于数值计算,能处理大量的数据,而且效率比较高。

MathWorths公司在此基础上开拓了符号计算、文字处理、可视化建模和实时控制能力,增强了Matlab的市场竞争力,使Matlab成为市场主流的数值计算软件。

Matlab产品族支持概念设计、算法开发、建模仿真、实时实现的理想的集成环境。

其主要功能有:数据分析、数值和符号计算、工程与科学绘图、控制系统设计、数字图像信号处理、财务工程,建模、仿真、原型开发,应用开发,图形用户界面。

在光学仪器设计和优化过程中,计算机的数值仿真已经成为不可缺少的手段。

通过仿真计算,可以大幅度节省实验所耗费的人力物力,特别是在一些重复实验工作强度较大且对实验器材、实验环境等要求较苛刻的情况下。

如在大型激光仪器的建造过程中,结合基准实验的仿真计算结果可为大型激光器的设计和优化提供依据。

仿真光学实验也可应用于基础光学教学。

光学内容比较抽象,如不借助实验,很难理解,如光的干涉、菲涅耳衍射、夫琅禾费衍射等。

传统的光学实验需要专门的实验仪器和实验环境。

其操作比较烦琐,误差大现象也不明显,对改变参数多次观察现象也多有不便。

MATLAB是当今国际上公认的在科技领域方面最为优秀的应用软件和开发环境。

利用它对光学实验仿真可避免传统实验中的缺点,强大的功能使光学实验变得简便准确。

基于MATLAB的科学可视化功能对光学仿真实验现象进行计算机模拟的效果更加准确明显。

1.实验目的:掌握基本的Matlab编程语言,了解其编程特点;模拟几种常用函数,了解其编程过程及图像显示命令函数,掌握Matlab画图方法;通过设计制作一系列光学研究物体掌握其编程方法;掌握光波的matlab编程原理及方法,初步了解Matlab语言在光学中的应用。

2.实验原理请先熟悉Matlab 程序的编程界面。

一.特殊函数的Matlab 模拟1) 复指数函数()()e cos sin i i ϕϕϕ=+,实部cos(φ), 虚部sin(φ), %%%--matlab 代码-------------------------------------------phi=0:pi/10:2*pi; %赋值z=exp(i*phi);%指数函数exp( );u=real(z);%取实部v=imag(z); %取虚部figure(1) %画图plot(phi,u) %画实部随变量的变化曲线figure(2)plot(phi ,v) %画虚部随变量的变化曲线%%%----------------------------------------------------------------改变变量phi 观察曲线变化。

2)开根号:sqrt(x),%%--------------------------clear %清除内存close all %关闭所有窗口x=linspace(0,2*pi,100);%设置横坐标范围及网格y1=sqrt(x); %开根号figure% 图plot(x,y1,'r')%画函数1的曲线,‘r ’代表图像颜色,红色%%------------------------------------------------3)函数:一维sinc(x)函数,sin(/)sinc /x x a a x a ππ⎛⎫= ⎪⎝⎭%%---------------------matlab 代码-------------------------clear %清除内存close all %关闭所有窗口x=linspace(-2*pi,2*pi,100);%设置横坐标范围及网格y1=besselj(1,x);%第一类贝塞尔函数,一阶y2=besselj(0,x);%第一类贝塞尔函数,0阶figure(1)% 图1plot(x,y1,'r')%画函数1的曲线,‘r ’代表图像颜色,红色figure(2) % 图2plot(x,y2,'b') %画函数2的曲线,‘b ’代表图像颜色,蓝色%%%%%%%%%%---------------------------------------二维sinc 函数:sinc ,sinc sinc x y x y a b a b ⎛⎫⎛⎫⎛⎫=⋅ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭,a ,b 为正数。

%%---------------------matlab 代码-------------------------clear %清除内存close all %关闭所有窗口[x,y] = meshgrid(-2:.05:2, -2:.05:2); %设置二维网格z=sinc(x).*sinc(y); %sinc 函数figure(1)imshow(z) %二维灰度图figure(2)imagesc(z) %二维彩色figure(3)mesh(z)%三维surfl(x,y,z)%三维%%---------------------matlab 代码-------------------------改变变量a ,b 观察模拟图像变化。

3)高斯函数:一维高斯函数 2Gauss exp x x a a π⎡⎤⎛⎫⎛⎫=-⎢⎥ ⎪ ⎪⎝⎭⎝⎭⎢⎥⎣⎦%%---------------------matlab 代码-------------------------clear %清除内存close all %关闭所有窗口a=5;%常数x=linspace(-5,5,100);%设置一维横坐标范围及网格y1=exp(-pi.*(x/a).^2);%第一类贝塞尔函数,一阶figure(1)% 图1b=2;%常数y2=exp(-pi.*(x/b).^2);%第一类贝塞尔函数,一阶figure(1)% 图1plot(x,y1,'r')%画函数1的曲线,‘r ’代表图像颜色,红色figure(2) % 图2plot(x,y2,'b') %画函数2的曲线,‘b ’代表图像颜色,蓝色%%-------------------------------------------------------- 二维高斯函数:sinc ,sinc sinc x y x y a b a b ⎛⎫⎛⎫⎛⎫=⋅ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭,a ,b 为正数。

Gauss ,Gauss Gauss x y x y a b a b ⎛⎫⎛⎫⎛⎫=⋅ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭22exp x y a b π⎧⎫⎡⎤⎪⎪⎛⎫⎛⎫=-+⎢⎥⎨⎬ ⎪ ⎪⎝⎭⎝⎭⎢⎥⎪⎪⎣⎦⎩⎭ 当中a、b 为1时,()22Gauss ,exp ()x y x y π⎡⎤=-+⎣⎦%%---------------------matlab 代码-------------------------clear %清除内存close all %关闭所有窗口a=1;b=1;[x,y] = meshgrid(-2:.05:2, -2:.05:2); %设置二维网格z=exp(-pi.*((x/a).^2+(y/b).^2)); %高斯函数figure(1)figure(2)mesh(z)%%---------------------matlab代码-------------------------改变参数a,b的取值,观察模拟结果变化。

4)第一类贝塞尔函数besselj(v,z)%%---------------------matlab代码-------------------------clear %清除内存close all %关闭所有已打开的窗口x=linspace(-2*pi,2*pi,100);%设置一维横坐标范围及网格,pi为常数πy1=besselj(1,x);%第一类贝塞尔函数,一阶y2=besselj(0,x);%第一类贝塞尔函数,0阶figure(1)% 图1plot(x,y1,'r')%画函数1的曲线,‘r’代表图像颜色,红色figure(2) % 图2plot(x,y2,'b') %画函数2的曲线,‘b’代表图像颜色,蓝色%%%-------------------------------------------------注意******,matlab编程中的编码输入必须在英文输入法下,否则程序将不被识别。

二.常用物体的Matlab模拟1)单缝%%%%%%%%%%%%-------------------------------clearclose all%%%%%%%%%%%---------------参数设定----------------L=2;%物体总长度(mm)M=100;%x方向抽样点数dx=L/M;%抽样间隔(mm)N=M;%y方向抽样点数w=10; % 单缝的宽度,单位像素个数d=10;% 缝偏离中心位置%%%%%%%%%%----------单缝------------obj1=zeros(M,N);%赋值为0的一个二维矩阵,大小为M*N;obj1(:,(N/2-w/2):N/2+w/2)=1.0; %缝宽范围内赋值为1,缝处于中心位置figure(1);imshow(obj1);%%%%----------改变单缝所处位置-----------------obj2=zeros(M,N);%赋值为0的一个二维矩阵,大小为M*N;obj2(:,(N/2-d)-w/2:(N/2-d)+w/2)=1.0; %缝宽范围内赋值为1,缝偏离中心位置10个像素figure(2);imshow(obj2);%%%%%--------------------------------------------------------------------------2)双缝在单缝的基础上,编程两个不同位置的单缝,然后相加,即可得出双缝clearclose all%%%%%%%%%%%---------------参数设定----------------L=2;%物体总长度(mm)M=100;%x方向抽样点数dx=L/M;%抽样间隔(mm)N=M;%y方向抽样点数w=10; % 单缝的宽度,单位像素个数d=10;% 缝偏离位置, 单位像素个数%%%%%%%%%%----------单缝1------------obj1=zeros(M,N);%赋值为0的一个二维矩阵,大小为M*N;obj1(:,(N/2+d)-w/2:(N/2+d)+w/2)=1.0; %缝宽范围内赋值为1,缝处于中心右边10位置%%%%----------单缝2-----------------obj2=zeros(M,N);%赋值为0的一个二维矩阵,大小为M*N;obj2(:,(N/2-d)-w/2:(N/2-d)+w/2)=1.0; %缝宽范围内赋值为1,缝偏离中心位置左边10个像素%%%%%-----------------双缝------------obj3=obj1+obj2;%双缝%%%%-----------------------------------------figure(1);imshow(obj1);figure(2);imshow(obj2);figure(3);imshow(obj3);%%%%%--------------------------------------------------------------------------3)矩形孔%%%%%--------------------------------------------------------------------------clearclose all%%%%%%%%%%%---------------参数设定----------------L=2;%物体总长度(mm)M=100;%x方向抽样点数dx=L/M;%抽样间隔(mm)N=M;%y方向抽样点数w=20; % 单缝的宽度,单位像素个数%%%%%%%%%%----------单缝------------obj=zeros(M,N);%赋值为0的一个二维矩阵,大小为M*N;obj((M/2-w/2):M/2+w/2,(N/2-w/2):N/2+w/2)=1.0; %缝宽范围内赋值为1,缝处于中心位置figure(1);imshow(obj);%%%%%--------------------------------------------------------------------------4)十字孔%%%%%%%%%%%%-------------------------------clearclose all%%%%%%%%%%%---------------参数设定----------------L=2;%物体总长度(mm)M=100;%x方向抽样点数dx=L/M;%抽样间隔(mm)N=M;%y方向抽样点数w=10; % 单缝的宽度,单位像素个数d=10;% 缝偏离中心位置%%%%%%%%%%----------单缝------------obj1=zeros(M,N);%赋值为0的一个二维矩阵,大小为M*N;obj1(:,(N/2-w/2):N/2+w/2)=1.0; %缝宽范围内赋值为1,缝处于中心位置obj1((M/2-w/2):M/2+w/2,:)=1.0; %缝宽范围内赋值为1,缝处于中心位置figure(1);imshow(obj1);3.实验内容,(1)阅读实验讲义和有关参考文献,熟悉Matlab编程语言。

相关文档
最新文档