matlab仿真光束地传输特性
- 格式:doc
- 大小:366.50 KB
- 文档页数:28
在MATLAB中进行光纤光学仿真可以通过数值模拟和解方程组来模拟光的传播、衍射、衰减等光学现象。
以下是一个简单的光纤光学仿真的一般步骤:
1. 建立光纤模型:
首先,确定光纤的基本参数,例如折射率、直径、长度等。
这些参数将决定光在光纤中的传播特性。
2. 定义入射光源:
在仿真中,定义光源的参数,例如波长、功率、入射角等。
这可以通过定义入射光的波函数来实现。
3. 求解传播方程:
光在光纤中的传播可以通过解相应的偏微分方程(PDE)来模拟。
根据光的波动性质,一般可以使用薛定谔方程或亥姆霍兹方程来描述。
4. 数值求解:
使用MATLAB的数值求解工具箱,例如pdepe函数,对求解的光学方程进行数值模拟。
5. 绘制仿真结果:
使用MATLAB的绘图工具,例如plot函数,可视化仿真结果。
6. 考虑衍射和衰减:
根据光纤的特性,考虑衍射和衰减等现象,更新光学方程。
7. 优化和分析:
通过调整光纤参数,观察光的传播特性,进行性能分析和优化。
注意事项:
•要考虑光在光纤中的多模式传播,可以引入模式耦合的描述。
•对于三维传播,可以将方程扩展到三维,并使用相应的求解方法。
•使用合适的数值方法,例如有限元法、有限差分法等。
以上是一个简单的光纤光学仿真的概要步骤。
具体仿真的复杂性取决于问题的具体情况和所需的精度。
MATLAB提供了强大的工具箱,包括数值求解、绘图、优化等,可用于实现高度复杂的光学仿真。
matlab 光纤sbs仿真程序光纤SBS(Stimulated Brillouin Scattering,受激布里渊散射)是一种重要的非线性光学效应,在光通信系统中具有广泛的应用。
为了更好地理解和研究光纤SBS的特性和影响因素,我们可以使用MATLAB进行光纤SBS的仿真。
在进行光纤SBS仿真之前,我们首先需要了解光纤SBS的基本原理。
光纤SBS是一种非线性光学过程,当一束高功率的激光光束通过光纤时,会与光纤中的声子模式发生相互作用,从而产生新的光学波长。
这种相互作用过程中,激光光束中的光子会被散射成为新的频率和波矢的声子,从而产生散射光。
光纤SBS的效应会导致光信号的失真和损耗,因此在光通信系统设计中需要进行充分的考虑。
在MATLAB中进行光纤SBS仿真可以通过建立合适的数学模型和参数设置来实现。
首先,我们需要定义光纤的基本参数,如长度、折射率、光纤的非线性系数等。
然后,我们可以通过输入光信号的频率、功率和波形等信息来模拟光纤中的光场传输过程。
在仿真过程中,我们可以考虑光纤的非线性效应和声子模式的影响,从而得到光纤中的散射光信号。
为了更好地理解光纤SBS的影响,我们可以通过改变光纤的参数和输入光信号的特性来进行不同情况下的仿真实验。
例如,我们可以改变光纤的长度、直径和折射率等参数,观察散射光的频率和强度的变化。
此外,我们还可以改变输入光信号的频率、功率和波形等特性,研究它们对光纤SBS效应的影响。
通过光纤SBS的仿真实验,我们可以得到光纤SBS效应的一些重要特性和参数。
例如,我们可以得到光纤SBS的阈值功率和阈值频率,即当输入光功率或频率超过一定的阈值时,光纤SBS效应会变得明显。
此外,我们还可以得到光纤SBS的增益谱和散射光的功率谱密度等信息,从而更好地了解光纤SBS的特性和应用。
在进行光纤SBS仿真时,我们还可以结合其他光纤效应和系统参数进行综合分析。
例如,我们可以考虑光纤的色散效应、非线性效应和衰减等因素,从而研究它们与光纤SBS效应的相互作用。
matlab高斯光束在自由传输过程中的强度变化。
文章标题:深度解析:matlab高斯光束在自由传输过程中的强度变化导言:在现代光学和通信领域,高斯光束一直是一个备受关注的研究对象。
其理论模型和实际应用广泛存在于激光技术、光通信、光学成像等众多领域。
本文将深入探讨matlab中高斯光束在自由传输过程中的强度变化规律,通过理论分析和数值模拟,为读者提供全面、深入的理解和应用指导。
一、高斯光束的基本概念我们需要了解高斯光束的基本概念。
高斯光束是一种特殊的光束模式,其幅度和相位分布呈现出高斯函数的特征。
在实际应用中,我们通常通过高斯光束来描述光束的传输特性和聚焦特性。
1. 高斯光束的数学表达高斯光束的数学表达是关于位置和时间的二维高斯函数。
它通常由振幅和相位两部分构成,可以用复数表示。
在matlab中,我们可以使用一系列函数来描述和模拟高斯光束的传播和变化。
2. 高斯光束的特性高斯光束具有许多独特的特性,比如其在自由传输过程中的强度变化规律、焦距、散焦等。
这些特性对于理解光束的传输和调控至关重要。
二、matlab中高斯光束的建模与仿真接下来,我们将重点介绍matlab中对高斯光束的建模和仿真。
matlab作为一种强大的科学计算软件,拥有丰富的工具和函数库,可以有效地模拟和分析光学系统中的高斯光束的传播和强度变化。
1. 高斯光束的建模在matlab中,我们可以使用GaussBeam类或者自定义函数来建立高斯光束的模型。
通过设定光束的初始参数、波长、焦距等,我们可以快速地建立起高斯光束的数学模型。
2. 高斯光束的传输仿真通过matlab的光学传输仿真工具包,我们可以对高斯光束在自由传输过程中的强度变化进行模拟和分析。
在仿真过程中,我们可以观察到光束的膨胀、散焦、衍射等现象,从而深入理解其传播规律。
三、高斯光束在自由传输过程中的强度变化规律现在,让我们来重点分析高斯光束在自由传输过程中的强度变化规律。
通过理论分析和数值模拟,我们可以得出一些重要结论。
目录一、高斯光束 (1)1简介: (1)2. 命名 (1)二、高斯定律的传播 (2)1.振幅分布特性 (2)2.等相位面特性 (2)3.高斯光束的瑞利长度 (3)4.高斯光束的远场发散角 (4)三、用MATLAB仿真高斯光束的优势 (4)四、提出高斯光束的问题 (4)五、问题的求解 (5)六、问题的MATLAB程序 (7)1、程序如下: (7)2.最终运行 (10)七、结束语 (17)八、参考文献 (17)九、成绩评定 (18)一、高斯光束1简介:通常情形,激光谐振腔发出的基模辐射场,其横截面的振幅分布遵守高斯函数,故称高斯光束。
2.命名关于光斑大小的查询,其实问的就是光斑的束腰直径或束腰半径。
束腰,是指高斯光绝对平行传输的地方。
半径,是指在高斯光的横截面考察,以最大振幅处为原点,振幅下降到原点处的0.36788倍,也就是1/e倍的地方,由于高斯光关于原点对称,所以1/e的地方形成一个圆,该圆的半径,就是光斑在此横截面的半径;如果取束腰处的横截面来考察,此时的半径,即是束腰半径。
沿着光斑前进,各处的半径的包络线是一个双曲面,该双曲面有渐近线。
高斯光束的传输特性,是在远处沿传播方向成特定角度扩散,该角度即是光束的远场发散角,也就是一对渐近线的夹角,它与波长成正比,与其束腰半径成反比,故而,束腰半径越小,光斑发散越快;束腰半径越大,光斑发散越慢。
我们用感光片可以看到,在近距离时,准直器发出的光在一定范围内近似成平行光,距离稍远,光斑逐渐发散,亮点变弱变大;可是从光纤出来的光,很快就发散;这是因为,准直器的光斑直径大约有400微米,而光纤的光斑直径不到10微米。
同时,对于准直器最大工作距离的定义,往往可理解为该准直器输出光斑的共焦参数,该参数与光斑束腰半径平方成正比,与波长成反比,计算式是:3.1415926*束腰半径*束腰半径/波长。
所以要做成长工作距离(意味着在更长的传输距离里高斯光束仍近似成平行光)的准直器,必然要把光斑做大,透镜相应要加长加粗。
《基于Matlab的光学实验仿真》篇一一、引言光学实验是物理学、光学工程和光学科学等领域中重要的研究手段。
然而,实际的光学实验通常涉及到复杂的光路设计和精密的仪器设备,实验成本高、周期长。
因此,通过基于Matlab的光学实验仿真来模拟光学实验,不仅能够为研究提供更方便的实验条件,而且还可以帮助科研人员更深入地理解和掌握光学原理。
本文将介绍基于Matlab的光学实验仿真的实现方法和应用实例。
二、Matlab在光学实验仿真中的应用Matlab作为一种强大的数学计算软件,在光学实验仿真中具有广泛的应用。
其强大的矩阵运算能力、图像处理能力和数值模拟能力为光学仿真提供了坚实的数学基础。
1. 矩阵运算与光线传播Matlab的矩阵运算功能可用于模拟光线传播过程。
例如,光线在空间中的传播可以通过矩阵的变换实现,包括偏振、折射、反射等过程。
通过构建相应的矩阵模型,可以实现对光线传播过程的精确模拟。
2. 图像处理与光场分布Matlab的图像处理功能可用于模拟光场分布和光束传播。
例如,通过傅里叶变换和波前重建等方法,可以模拟出光束在空间中的传播过程和光场分布情况,从而为光学设计提供参考。
3. 数值模拟与实验设计Matlab的数值模拟功能可用于设计光学实验方案和优化实验参数。
通过构建光学系统的数学模型,可以模拟出实验过程中的各种现象和结果,从而为实验设计提供依据。
此外,Matlab还可以用于分析实验数据和优化实验参数,提高实验的准确性和效率。
三、基于Matlab的光学实验仿真实现方法基于Matlab的光学实验仿真实现方法主要包括以下几个步骤:1. 建立光学系统的数学模型根据实际的光学系统,建立相应的数学模型。
这包括光路设计、光学元件的参数、光束的传播等。
2. 编写仿真程序根据建立的数学模型,编写Matlab仿真程序。
这包括矩阵运算、图像处理和数值模拟等步骤。
在编写程序时,需要注意程序的精度和效率,确保仿真的准确性。
3. 运行仿真程序并分析结果运行仿真程序后,可以得到光束传播的模拟结果和光场分布等信息。
MATLAB仿真在光学原理中的应用1. 简介光学是研究光的产生、传播、照明及检测等现象和规律的科学,它在物理学、医学、通信等领域有着重要的应用。
随着计算机科学和数值计算的发展,MATLAB作为一种强大的科学计算软件,被广泛应用于光学原理的仿真和分析中,为光学研究提供了有力的工具和方法。
本文将介绍MATLAB仿真在光学原理中的应用,并通过列举几个典型例子来说明MATLAB在解决光学问题上的优势。
2. 光的传播仿真光的传播是光学研究中的重要内容,MATLAB可以通过数值模拟的方法来进行光的传播仿真。
以下是一些常见的光传播仿真的应用:•光线传播仿真:通过计算光线在不同介质中的折射、反射和衍射等规律,可以模拟光在复杂光学系统中的传播过程。
•光束传输仿真:通过建立传输矩阵或使用波前传输函数等方法,可以模拟光束在光学元件中的传输过程,如透镜、棱镜等。
•光纤传输仿真:通过数值模拟光在光纤中的传播过程,可以分析光纤的传输损耗、模式耦合和色散等问题。
MATLAB提供了许多函数和工具箱,如光学工具箱、光纤工具箱等,可以方便地进行光传播仿真和分析。
3. 光学成像仿真光学成像是光学研究中的重要应用之一,MATLAB可以用于模拟和分析光学成像过程。
以下是一些常见的光学成像仿真的应用:•几何光学成像仿真:根据几何光学理论,可以通过模拟光线的传播和聚焦过程来分析光学成像的特性,如像差、焦距和倍率等。
•衍射光学成像仿真:通过衍射理论和数值计算,可以模拟光的衍射和干涉效应对光学成像的影响,如衍射限制和分辨率等。
•光学投影仿真:通过模拟光束、透镜和光阑等光学元件的组合和调节,可以分析光学投影系统的成像质量和变换特性。
MATLAB提供了丰富的函数和工具箱,如图像处理工具箱、计算光学工具箱等,可以方便地进行光学成像仿真和分析。
4. 激光光学仿真激光是光学研究中的一个重要分支,MATLAB可以用于模拟和分析激光的特性和应用。
以下是一些常见的激光光学仿真的应用:•激光器仿真:通过建立激光器的数学模型和模拟激光的发射过程,可以分析激光器的输出特性和光束质量等。
拉盖尔高斯光束matlab【最新版】目录1.拉盖尔高斯光束概述2.MATLAB 在拉盖尔高斯光束分析中的应用3.拉盖尔高斯光束的 MATLAB 模拟实例4.总结正文一、拉盖尔高斯光束概述拉盖尔高斯光束(Laguerre-Gaussian beam)是一种具有特殊性质的光束,其理论基础可以追溯到拉盖尔 - 高斯(Laguerre-Gaussian)函数。
拉盖尔高斯光束在光学系统中具有广泛的应用,例如光通信、光学成像和光学跟踪等。
这种光束的一个显著特性是其能量集中在一个特定的平面上,这使得它在很多实际应用中具有优势。
二、MATLAB 在拉盖尔高斯光束分析中的应用MATLAB 是一种强大的科学计算软件,它可以用于解决各种光学问题。
在拉盖尔高斯光束分析中,MATLAB 可以辅助我们进行理论推导、模拟计算和图像绘制等。
利用 MATLAB,我们可以更直观地理解拉盖尔高斯光束的性质,也可以更方便地对其进行工程应用。
三、拉盖尔高斯光束的 MATLAB 模拟实例为了进一步说明 MATLAB 在拉盖尔高斯光束分析中的应用,这里我们提供一个简单的模拟实例。
假设我们希望建立一个拉盖尔高斯光束模型,并研究其传播过程中的性质变化。
我们可以通过以下步骤来实现:1.在 MATLAB 中定义拉盖尔高斯光束的初始参数,例如光束的半径、波长和传播距离等。
2.使用 MATLAB 的光学公式计算光束的传播特性,例如光束宽度、强度分布等。
3.使用 MATLAB 绘制光束的传播特性图像,便于直观地观察和分析。
通过以上步骤,我们可以在 MATLAB 中实现对拉盖尔高斯光束的模拟分析。
这种模拟可以帮助我们更好地理解光束的传播特性,并为实际应用提供理论依据。
四、总结拉盖尔高斯光束是一种具有特殊性质的光束,其在光学系统中具有广泛的应用。
MATLAB 作为一种科学计算软件,可以辅助我们进行拉盖尔高斯光束的分析和模拟。
目录1 基本原理 (1)1.1耦合波理论 (1)1.2高斯光波的基本理论 (9)2 建立模型描述 (10)3仿真结果及分析 (10)3.1角度选择性的模拟 (10)3.2波长选择性的模拟 (13)3.3单色发散光束经透射型布拉格体光栅的特性 (15)3.4多色平面波经透射型布拉格体光栅的特性 (17)4 调试过程及结论 (18)5 心得体会 (20)6 思考题 (20)7 参考文献 (20)8 附录 (21)高斯光束经透射型体光栅后的光束传输特性分析1 基本原理1.1耦合波理论耦合波理论分析方法基于厚全息光栅产生的布拉格衍射光。
当入射波被削弱且产生强衍射效率时,耦合波理论分析方法适用耦合波理论分析方法适用于透射光栅。
1.1.1耦合波理论研究的假设条件及模型耦合波理论研究的假设条件:(1) 单色波入射体布拉格光栅;(2) 入射波以布拉格角度或近布拉格角度入射;(3)入射波垂直偏振与入射平面;(4)在体光栅中只有两个光波:入射光波 R 和衍射光波 S;(5)仅有入射光波 R 和衍射光波 S 遵守布拉格条件,其余的衍射能级违背布拉格条件,可被忽略;(6)其余的衍射能级仅对入射光波 R 和衍射光波 S 的能量交换有微小影响;(7)将耦合波理论限定于厚布拉格光栅中;图1为用于耦合波理论分析的布拉格光栅模型。
z 轴垂直于介质平面,x 轴在介质平面内,平行于介质边界,y 轴垂直于纸面。
边界面垂直于入射面,与介质边界成Φ角。
光栅矢量K垂直于边界平面,其大小为2/=Λ,Λ为光栅周期,θ为入射角。
Kπ图1布拉格光栅模型R —入射波,S —信号波,Φ—光栅的倾斜角,0θ—再现光满足布拉格条件时的入射角(与z 轴所夹的角),K —光栅矢量的大学,d —光栅的厚度,r θ和s θ—再现光波和衍射光波与z 轴所夹的角度,Λ—光栅周期。
光波在光栅中的传播由标量波动方程描述:220E k E ∇+= (1)公式(2)中(),E xz 是y 方向的电磁波的复振幅,假设为与y 无关,其角频率为ω。
高斯光束在晶体中的传输研究+Matlab仿真本课题重点要解决的问题是研究高斯光束通过晶体的传输特性,得到光束的传输和变换特性,并进行相应的理论仿真,为其在实践中的应用提供理论基础。
:矢量光束传输方法(VBPM)。
该方法基于矢量波动方程,采用适当的傍轴近似,在不考虑反射场的情况下很好的描述了光在各向异性介质中的传输问题。
傍轴矢量理论近年来Ciattoni A等人基于平面波角谱表示方法建立一种傍轴传输的矢量理论,并用电场矢量描述了光在单轴各向异性晶体中的传输方程,解决了光束在单轴各向异性晶体中传输的边值问题[8-14]。
实际上, Ciattoni等人提出的这一方法其基本物理思想是:光在单轴各向异性晶体中的场分布可表示为寻常光(o光)和非常光(e光)的场分布的叠加,而o光和e光在单轴各向异性晶体中的传输分别类似于光在折射率分别 (o 光的折射率)和 ( 为e光的折射率)的各向同性介质中的独立传输。
本章重点介绍本论文中将主要应用的傍轴矢量理论方法[15]。
研究发现,激光光束在非均匀介质中传输时,出现了在均匀材料介质中所不具有的光学性能。
在研究中人们发现,梯度折射率介质在材料制备、器件制造等方面具有很独特的应用。
因此,系统地研究高斯光束在晶体中的传播成为了重要的研究课题。
Dajun Liu等人提出的平顶高斯光束在单轴晶体中的传播中给出了典型的计算算例[16-23]。
对于本研究中所要进行的公式推导,具有指导意义,在激光在晶体中的传输发展中,不少学者对于其问题进行了大量的研究及实验,取得了不同的结论,对以后的发展奠定了基础与根据。
1.3 研究方法本文以各向异性单轴晶体光轴垂直方向光束的傍轴矢量传播理论为基础,推导出了各向异性单轴晶体中垂直于光轴方向上多种高斯光束传输的解析表达式,并通过对数值的分析与计算,研究了多种高斯光束在单轴晶体中光轴垂直方向上的传输特性。
1.4 论文內容概述本论文各章节安排如下:第一章,绪论。
一、课程设计题目:用matlab 仿真光束的传输特性。
二、任务和要求用matlab 仿真光束通过光学元件的变换。
① 设透镜材料为k9玻璃,对1064nm 波长的折射率为1.5062,镜片中心厚度为3mm ,凸面曲率半径,设为100mm ,初始光线距离透镜平面20mm 。
用matlab 仿真近轴光线(至少10条)经过平凸透镜的焦距,与理论焦距值进行对比,得出误差大小。
② 已知透镜的结构参数为101=r ,0.11=n ,51=d ,5163.121=='n n (K9玻璃),502-=r ,0.12='n ,物点A 距第一面顶点的距离为100,由A 点计算三条沿光轴夹角分别为10、20、30的光线的成像。
试用Matlab 对以上三条光线光路和近轴光线光路进行仿真,并得出实际光线的球差大小。
③ 设半径为1mm 的平面波经凸面曲率半径为25mm ,中心厚度3mm 的平凸透镜。
用matlab 仿真平面波在透镜几何焦平面上的聚焦光斑强度分布,计算光斑半径。
并与理论光斑半径值进行对比,得出误差大小。
(方法:采用波动理论,利用基尔霍夫—菲涅尔衍射积分公式。
)2、用MATLAB 仿真平行光束的衍射强度分布图样。
(夫朗和费矩形孔衍射、夫朗和费圆孔衍射、夫朗和费单缝和多缝衍射。
)3、用MATLAB仿真厄米—高斯光束在真空中的传输过程。
(包括三维强度分布和平面的灰度图。
)4、(补充题)查找文献,掌握各类空心光束的表达式,采用费更斯-菲涅尔原理推导各类空心光束在真空中传输的光强表达式。
用matlab 对不同传输距离处的光强进行仿真。
三、理论推导部分将坐标原点选在透镜中心处,θ1=arcsin(y1/r),由n1*sinθ1=n2*sinθ2可得出θ2=arcsin(n1/n2)*(y1/r),由几何关系可得到θ=θ2-θ1,则出射光线的斜率k=tan(θ2-θ1),当入射直线y=y1时,x1=d-(r-)2^1(yr ),并设出射直线为y=k*x+b;由直线经过^2(x1,y1)即可求出b值,从而就可以求出射直线。
由单透镜焦点计算公式1/f=-(n-1)*(1/r1-1/r2)可求得f=193.6858。
利用近轴光学公式i1=(l1-r1)*u1/r1,i11=n1*i/n11,u11=u1+i1-i11 l11=r1+r1*i11/u11和转面公式u2=u11,l2=l11-d1可以求得u11、u22、l22、h2等。
入射光线的夹角为u1,设入射光线为y1=k1*x1+b1其中的斜率k1=-u1又由于入射光线经过经过(-100,0)就可以求出b1。
由h1=l1*u1即为y1,当y1为定值时就可以得到第一个横坐标x0,再利用最后的出射光线公式y3=k3*x3+b3,k3=-u22,又因为最终出射经过(d+l22,0)可求出b3,利用转面公式h2=h1-d*u11,即为y3可求出第二个横坐标x00。
再求在透镜中的直线斜率k2=((h2-h1)/(x00-x0)),y2=k2*x2+b2经过(x0,h1)即可求得b2值,从而即可求得三条直线。
实际光束求法同理。
利用菲涅耳近似公式11])2^122)^1(2)^1(1[1ex p()1,1(1),(dy dx z y y x x ikz y x E z i y x E ⎰⎰-+-+-=λ 求衍射面上的光强要对孔径上的点求积分可以转换成对其x1,y1的微分求和,其中公式中的z1=f 。
2.(1)夫朗和费矩形孔衍射若衍射孔为矩形则在透镜焦平面上得到的衍射图样如图,衍射图样的主要特征为衍射亮斑集中分布在两个相互垂直的方向上,并且x 轴上的亮斑宽度与y 轴亮斑宽度之比,恰与矩形孔在两个轴上的宽度相反。
其中的θ为θx,同样的β中的θ为θy,利用θx=x/f,θy=y/f进行求解。
(2)夫朗和费圆形孔衍射夫朗和费圆孔衍射的讨论方法和矩形孔衍射的讨论方法相同,只是由于圆孔的几何对称性,采用极坐标更为方便。
Ф=kaθ(3)夫朗和费单缝衍射对于前面讨论的夫朗和费矩形孔衍射,如果矩形的一个方向的尺寸比另一个方向大得多,则该矩形孔衍射就变成单缝衍射(如图),这时沿y方向的衍射效应不明显,只在x方向有亮暗变化的衍射图样。
实验中通过利用θ=x/f进行求解(4)夫朗和费多缝衍射夫朗和费多缝衍射装置如图,其每条狭缝均平行于y1方向,沿x1方向的缝宽为a,相邻狭缝的间距为d,在研究多缝衍射时,由于后透镜的存在使衍射屏上每个单缝的衍射条纹位置与位置无关。
因此,用平行光照射多缝时,其每一个单缝都要产生自己的衍射,形成各自一套衍射条纹。
当每个单缝等宽时,各套衍射条纹在透镜焦平面上完全重叠,其总光强分布为它们的干涉叠加。
四、Matlab仿真部分clear allr=100;n1=1.5163;n2=1;%透镜的曲率半径为100mm,透镜的折射率n1=1.5,空气的折射率n2=1d=3;%x=77:0.1:320;figure(1)for n=-5:5y1=0.1*n;%hold on;%plot(x1,y1);a1=asin(y1/r);%入射角a2=asin(n1/n2*(y1/r));%折射角a=a2-a1;k=tan(a);%出射光线的斜率x1=sqrt(r^2-y1^2);x2=x1-r+d;b=y1+k*x2;%出射光线经过(x2,y1)x=-20:0.01:x2;%零坐标选在透镜中心,入射光线距透镜20mm,故x=-20hold onplot(x,y1);%平行光束x3=x2:0.01:300;y=-k*x3+b;%出射光线h old onplot(x3,y);Endclear all%透镜的结构参数r1=10;r2=-50;l1=-100;L1=-100;n1=1.0;d1=5;n11=1.563n2=1.563;n22=1.0;figure(1)for n=-3:-1%沿光轴分别为1、2、3度的光线进行入射 %近轴光学成像公式第一个面u1=n;i1=(l1-r1)*u1/r1i11=n1*i/n11;u11=u1+i1-i11;l11=r1+r1*i11/u11;%转面公式u2=u11;l2=l11-d1;%近轴光学成像公式第二个面i2=(l2-r2)*u2/r2;i22= n2*i2/n22;u22=u2+i2-i22;l22=r2+r2*i22/u22;%入射光线与第一个透镜交点的纵坐标,坐标原点选在第一个透镜的顶点处h1=l1*(u1*pi/180);k1=-u1*pi/180;%入射光线的斜率b1=100*k1;%因为入射光线经过(-100,0)点x0=(h1-b1)/k1;%入射光线与第一个透镜交点的横坐标x1=-100:0.01:x0;y1=k1*x1+b1;hold onplot(x1,y1);%输出入射光线k3=-u22*pi/180;%第二次折射后出射光线的斜率b3=-k3*(d1+l22);%因为第二次折射后出射光线经过(d1+l22,0)点h2=h1-d1*(u11*pi/180);%第一次折射后入射到第二个透镜的纵坐标x00=(h2-b3)/k3;%第一次折射后入射到第二个透镜的横坐标k2=(h2-h1)/(x00-x0);%第一次折射后光线的斜率b2=h1-k2*x0;%因为第一次折射后光线经过(x0,h1)点x2=x0:0.01:x00;y2=k2*x2+b2;hold onplot(x2,y2);%输出第一次折射在两个透镜中的光线x3=x00:0.01:30;%选在30是为了将输出图形看得更清晰些y3=k3*x3+b3;hold onplot(x3,y3);%输出经过第二个透镜后的输出光线%实际光路U1=n*pi/180;I1=asin((L1-r1)*sin(U1)/r1);I11=asin(n1*sin(I1)/n11);U11=U1+I1-I11;L11=r1+r1*sin(I11)/sin(U11);%转面公式U2=U11;L2=L11-d1;%实际光学成像公式第二个面I2=asin((L2-r2)*sin(U2)/r2);I22=asin(n2*sin(I2)/n22);U22=U2+I2-I22;L22=r2+r2*sin(I22)/sin(U22);%入射光线与第一个透镜交点的纵坐标,坐标原点选在第一个透镜的顶点处h3=L1*tan(U1);k4=-tan(U1);%入射光线的斜率b4=100*k4;%因为入射光线经过(-100,0)点x01=(h3-b4)/k4;%入射光线与第一个透镜交点的横坐标x4=-100:0.01:x01;y4=k4*x4+b4;hold onplot(x4,y4,'r');%输出入射光线k6=-tan(U22);b6=-k6*(d1+L22);%因为第二次折射后出射光线经过(d1+L22,0)点h4=h3-d1*tan(U11);%第一次折射后入射到第二个透镜的纵坐标x02=(h4-b6)/k6;%第一次折射后入射到第二个透镜的横坐标k5=(h4-h3)/(x02-x01);%第一次折射后光线的斜率b5=h4-k5*x02;%因为第一次折射后光线经过(x02,h4)点x5=x01:0.01:x02y5=k5*x5+b5;hold onplot(x5,y5,'r');%输出第一次折射在两个透镜中的光线x6=x02:0.01:30;%选在30是为了将输出图形看得更清晰些x6=x02:0.01:30;y6=k6*x6+b6;hold onplot(x6,y6,'r');%输出经过第二个透镜后的输出光线%球差m=(L22+d1)-(l22+d1);endclear alln=1.5062;%K9玻璃的折射率d=3;%透镜的中心厚度R=25;%透镜凸面曲率半径f=R/(n-1);%透镜焦距R0=1;%入射光束半径lambda=1.064e-3;%波长k=2*pi/lambda;phy=lambda*0.61/R0;%角半径w0=sqrt(f*lambda/pi);%实际光斑半径data=w0-f*phy; %误差z=f;rmax=3*f*phy;%艾利斑半径r=linspace(0,rmax,100);%产生从0到rmax之间的100点行矢量将衍射半径100等分eta=linspace(0,2*pi,100);%将0到2*pi100等分[rho,theta]=meshgrid(r,eta);%生成绘制3D图形所需的网格数据[x,y]=pol2cart(theta,rho);%衍射斑某点的坐标转换极坐标到直角坐标r0=linspace(0,R0,100);%将入射光束半径100等分eta0=linspace(0,2*pi,100);[rho0,theta0]=meshgrid(r0,eta0);[x0,y0]=pol2cart(theta0,rho0);for dx=1:100%都是为了建立网格for dy=1:100Ep=-i/(lambda*z)*exp(i*k*z)*exp(i*k*((x-x0(dx,dy)).^2+(y-y0 (dx,dy)).^2)/(2*z));E2(dx,dy)=sum(Ep(:));%积分公式的求和表达endendIe=conj(E2).*E2;%光强表达式figure(1);surf(x,y,Ie);figure(2)plot(x(50,:),Ie(50,:));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))(3)夫朗和费单缝衍射clear alllam=500e-9;a=3;f=1;xm=3*lam*f/a;nx=50;x=linspace(-xm,xm,nx);ny=50;y=linspace(0,a,ny);for i=1:nysinphi=x/f;%角af=(pi*a*sin(sinphi))/lam; I(i,:)=5*(sin(af)./af).^2; endN=255;%确定灰度等级Br=(I/max(I(1,:)))*N;subplot(1,2,1)image(x,y,Br);colormap(gray(N));%颜色subplot(1,2,2)plot(x,I(1,:));(4)夫朗和费多缝衍射clear all;lamda=500e-9; %波长N=2; %缝数,可以随意更改变换a=2e-4;f=5;d=5*a;ym=2*lamda*f/a;%选择坐标范围xs=ym;n=1001;ys=linspace(-ym,ym,n);for i=1:nsinphi=ys(i)/f;alpha=pi*a*sinphi/lamda;fai=2*pi*d*sinphi/lamda;I1=(sin(alpha)./alpha).^2;%单缝衍射因子B(i,:)=I1*(sin(N*fai/2)./sin(fai/2)).^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');五、画出仿真图形(2)夫朗和费圆孔衍射(4)夫朗和费多缝衍射六、仿真过程中发生的问题及解决的方法1.在用matlab写程序时一定要保证是在英文状态下输入标点符号的不然程序运行时会报错。