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

合集下载

基于Matlab的光学实验仿真

基于Matlab的光学实验仿真

基于Matlab的光学实验仿真基于Matlab的光学实验仿真一、引言光学是研究光的传播、反射、折射和干涉等现象的学科,广泛应用于光学器件、光通信等领域。

在光学实验中,通过搭建实验装置来观察和研究光的行为,以验证光学理论并深入理解光的特性。

然而,传统的光学实验不仅设备复杂,成本高昂,而且需要大量的实验时间和实验设计。

因此,基于计算机仿真的方法成为了一种重要的补充和替代。

Matlab作为一种强大的数值计算和仿真工具,具有强大的数学运算能力和友好的图形界面,被广泛应用于科学研究和工程设计。

在光学实验中,Matlab可以模拟光的传播、折射、干涉等各种光学现象,使得研究人员可以在计算机上进行光学实验,加速实验过程并提高实验效率。

二、光的传播仿真在光学实验中,光的传播是一项重要的研究内容。

通过Matlab的计算能力,我们可以模拟光线在不同介质中的传播情况,并观察其光程差、折射等现象。

光的传播可以用波动光学的理论来描述,其中最经典的是亥姆霍兹方程。

在Matlab中,我们可以利用波动光学的相关工具箱,通过求解亥姆霍兹方程来模拟光的传播。

例如,我们可以模拟光在一特定系统中的衍射效应。

在Matlab中,衍射效应可以通过菲涅尔衍射和弗雷涅尔衍射来模拟。

我们可以设定特定的光源和障碍物,通过Matlab的计算能力计算光的传播、衍射和干涉等现象,得到不同条件下的衍射效应,并可视化展示。

三、光的折射仿真光的折射是光学领域中的另一个重要现象,研究光的折射对于理解光在不同介质中的传播行为至关重要。

通过Matlab的仿真,我们可以模拟光的折射行为,并研究不同介质对光的影响。

在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)。

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

《2024年基于Matlab的光学实验仿真》范文

《2024年基于Matlab的光学实验仿真》范文

《基于Matlab的光学实验仿真》篇一一、引言光学实验是物理学、光学工程和光学科学等领域中重要的研究手段。

然而,实际的光学实验通常涉及到复杂的光路设计和精密的仪器设备,实验成本高、周期长。

因此,通过基于Matlab的光学实验仿真来模拟光学实验,不仅能够为研究提供更方便的实验条件,而且还可以帮助科研人员更深入地理解和掌握光学原理。

本文将介绍基于Matlab的光学实验仿真的实现方法和应用实例。

二、Matlab在光学实验仿真中的应用Matlab作为一种强大的数学计算软件,在光学实验仿真中具有广泛的应用。

其强大的矩阵运算能力、图像处理能力和数值模拟能力为光学仿真提供了坚实的数学基础。

1. 矩阵运算与光线传播Matlab的矩阵运算功能可用于模拟光线传播过程。

例如,光线在空间中的传播可以通过矩阵的变换实现,包括偏振、折射、反射等过程。

通过构建相应的矩阵模型,可以实现对光线传播过程的精确模拟。

2. 图像处理与光场分布Matlab的图像处理功能可用于模拟光场分布和光束传播。

例如,通过傅里叶变换和波前重建等方法,可以模拟出光束在空间中的传播过程和光场分布情况,从而为光学设计提供参考。

3. 数值模拟与实验设计Matlab的数值模拟功能可用于设计光学实验方案和优化实验参数。

通过构建光学系统的数学模型,可以模拟出实验过程中的各种现象和结果,从而为实验设计提供依据。

此外,Matlab还可以用于分析实验数据和优化实验参数,提高实验的准确性和效率。

三、基于Matlab的光学实验仿真实现方法基于Matlab的光学实验仿真实现方法主要包括以下几个步骤:1. 建立光学系统的数学模型根据实际的光学系统,建立相应的数学模型。

这包括光路设计、光学元件的参数、光束的传播等。

2. 编写仿真程序根据建立的数学模型,编写Matlab仿真程序。

这包括矩阵运算、图像处理和数值模拟等步骤。

在编写程序时,需要注意程序的精度和效率,确保仿真的准确性。

3. 运行仿真程序并分析结果运行仿真程序后,可以得到光束传播的模拟结果和光场分布等信息。

《2024年基于Matlab的光学实验仿真》范文

《2024年基于Matlab的光学实验仿真》范文

《基于Matlab的光学实验仿真》篇一一、引言光学实验是物理学中重要的实验之一,通过实验可以探究光的基本性质、光的传播规律以及光与物质的相互作用等。

然而,在实际的实验过程中,由于各种因素的影响,如设备精度、环境条件等,实验结果可能存在一定的误差。

为了更好地研究光学现象,提高实验的准确性和可靠性,基于Matlab的光学实验仿真被广泛应用于科研和教学中。

本文将介绍基于Matlab的光学实验仿真的相关内容。

二、Matlab在光学实验仿真中的应用Matlab是一款强大的数学软件,具有丰富的函数库和强大的计算能力,可以用于光学实验的建模、分析和仿真。

在光学实验中,Matlab可以模拟光的传播、光的干涉、衍射等现象,从而帮助研究人员更好地理解光学现象。

此外,Matlab还可以对实验数据进行处理和分析,提高实验的准确性和可靠性。

三、基于Matlab的光学实验仿真流程基于Matlab的光学实验仿真流程主要包括以下几个步骤:1. 建立光学模型:根据实验需求,建立光学模型,包括光源、光路、光学元件等。

2. 设置仿真参数:根据实验要求,设置仿真参数,如光的波长、光路长度、光学元件的参数等。

3. 运行仿真程序:运行仿真程序,模拟光的传播和光学现象。

4. 处理和分析数据:对仿真结果进行处理和分析,提取有用的信息,如光强分布、光斑形状等。

5. 绘制图表:根据需要,绘制相应的图表,如光强分布图、光路图等。

四、具体实验案例:双缝干涉实验仿真双缝干涉实验是光学中经典的实验之一,通过该实验可以探究光的波动性质。

下面将介绍基于Matlab的双缝干涉实验仿真。

1. 建立光学模型:在Matlab中建立双缝干涉实验的模型,包括光源、双缝、屏幕等。

2. 设置仿真参数:设置光的波长、双缝的宽度和间距、屏幕的距离等参数。

3. 运行仿真程序:运行仿真程序,模拟光的传播和双缝干涉现象。

4. 处理和分析数据:对仿真结果进行处理和分析,提取干涉条纹的光强分布和形状等信息。

《2024年基于Matlab的光学实验仿真》范文

《2024年基于Matlab的光学实验仿真》范文

《基于Matlab的光学实验仿真》篇一一、引言光学实验是研究光学现象和规律的重要手段,但在实际操作中往往受到诸多因素的限制,如实验设备的精度、实验环境的稳定性等。

因此,通过计算机仿真进行光学实验具有很大的实际意义。

本文将介绍一种基于Matlab的光学实验仿真方法,以期为光学研究提供一定的参考。

二、仿真原理及模型建立1. 仿真原理基于Matlab的光学实验仿真主要利用了光学的基本原理和数学模型。

通过建立光学系统的数学模型,模拟光在介质中的传播、反射、折射等过程,从而实现对光学实验的仿真。

2. 模型建立在建立光学实验仿真模型时,需要根据具体的实验内容和目的,选择合适的数学模型。

例如,对于透镜成像实验,可以建立光学系统的几何模型和物理模型,通过计算光线的传播路径和透镜的焦距等参数,模拟透镜成像的过程。

三、Matlab仿真实现1. 环境准备在Matlab中,需要安装相应的光学仿真工具箱,如Optic Toolbox等。

此外,还需要准备相关的仿真参数和初始数据。

2. 仿真代码实现根据建立的数学模型,编写Matlab仿真代码。

在代码中,需要定义光学系统的各个组成部分(如光源、透镜、光屏等),并设置相应的参数(如光源的发光强度、透镜的焦距等)。

然后,通过计算光线的传播路径和光强分布等参数,模拟光学实验的过程。

3. 结果分析仿真完成后,可以通过Matlab的图形处理功能,将仿真结果以图像或图表的形式展示出来。

通过对仿真结果的分析,可以得出实验结论和规律。

四、实验案例分析以透镜成像实验为例,介绍基于Matlab的光学实验仿真方法。

首先,建立透镜成像的数学模型,包括光线的传播路径和透镜的焦距等参数。

然后,编写Matlab仿真代码,模拟透镜成像的过程。

最后,通过分析仿真结果,得出透镜成像的规律和特点。

五、结论与展望基于Matlab的光学实验仿真方法具有操作简便、精度高等优点,可以有效地弥补实际实验中的不足。

通过仿真实验,可以更加深入地了解光学现象和规律,为光学研究提供一定的参考。

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

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

MATLAB编程用两种方法模拟光学实验摘要:利用MATLAB软件编程实现了用衍射积分的方法对单缝衍射、杨氏双缝干涉、黑白光栅衍射的计算机模拟;以及用傅立叶变换方法对简单孔径衍射、黑白光栅及正弦光栅夫琅和费衍射的模拟。

关键词:MATLAB;衍射积分;傅立叶变换;计算机模拟引言:美国Mathworks公司推出的MA TLAB,是一种集数值计算、符号预算、可视化建模、仿真和图形处理等多种功能于一体的优秀图形化软件。

本文介绍了通过MA TLAB软件编程实现用衍射积分和傅立叶变换实现夫琅和费衍射计算机模拟的方法。

计算机模拟为衍射实验的验证提供一条简捷、直观的途径。

从而加深了对物理原理、概念和图像的理解。

正文:大学教学课程中引入计算机模拟技术正日益受到重视,与Basic、C和Fortran相比,用MA TLAB软件做光学试验的模拟,只需要用数学方式表达和描述,省去了大量繁琐的编程过程。

下面来介绍利用MATLAB进行光学模拟的两种方法。

(一)衍射积分方法:该方法首先是由衍射积分算出接收屏上的光强分布,然后根据该分布调制色彩作图,从而得到衍射图案。

1.单缝衍射。

把单缝看作是np个分立的相干光源,屏幕上任意一点复振幅为np个光源照射结果的合成,对每个光源,光程差Δ=ypsinΦ,sinΦ=ys/D,光强I=I0(Σcosα)2+(Σsinα)2,其中α=2Δ/λ=πypys/λD编写程序如下,得到图1lam=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:nysinphi=ys(i)/D;alpha=2*pi*yp*sinphi/lam;图1 单缝衍射的光强分布 sumcos=sum(cos(alpha));sumsin=sum(sin(alpha));B(i,:)=(sumcos^2+sumsin^2)/np^2;endN=255;Br=(B/max(B))*N;subplot(1,2,1)image(ym,ys,Br);colormap(gray(N));subplot(1,2,2)plot(B,ys);2. 杨氏双缝干涉两相干光源到接收屏上P 点距离r 1=(D 2+(y-a/2)2)1/2, r 2=(D 2+(y+a/2)2)1/2,相位差Φ=2π(r 2-r 1)/λ,光强I=4I 0cos 2(Φ/2)编写程序如下,得到图2clearlam=500e-9a=2e-3;D=1;ym=5*lam*D/a;xs=ym;n=101;ys=linspace(-ym,ym,n);for i=1:nr1=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);endN=255;Br=(B/4.0)*Nsubplot(1,2,1)image(xs,ys,Br);colormap(gray(N));subplot(1,2,2)plot(B,ys)3. 光栅衍射公式:I=I 0(sin α/α)2(sin(λβ)/sin β)2α=(πa/λ)sin Φβ=(πd/λ)sin Φ编写程序如下:得到图3clearlam=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:nsinphi=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);endNC=255;图2 杨氏双缝干涉的光强分布 图3 黑白光栅衍射光强分布Br=(B/max(B))*NC;subplot(1,2,1)image(xs,ys,Br);colormap(gray(NC));subplot(1,2,2)plot(B1,ys);(二)傅立叶变换方法:在傅立叶变换光学中我们知道夫琅和费衍射场的强度分布就等于屏函数的功率谱。

《2024年基于Matlab的光学实验仿真》范文

《2024年基于Matlab的光学实验仿真》范文

《基于Matlab的光学实验仿真》篇一一、引言光学实验是物理学、光学工程和光学科学等领域中重要的研究手段。

然而,由于实验条件的限制和复杂性,有时难以进行精确的实验。

因此,基于计算机的光学实验仿真技术应运而生。

本文将介绍一种基于Matlab的光学实验仿真方法,通过对光路的建模、光线传播的模拟和光强分布的计算,实现光学实验的精确仿真。

二、仿真原理及建模基于Matlab的光学实验仿真主要包括以下步骤:1. 建立光路模型。

根据实际光学实验的需求,建立光路模型,包括光源、透镜、反射镜等光学元件的参数和位置关系。

2. 光线传播模拟。

根据光路模型,模拟光线在光学元件之间的传播过程,包括光线的折射、反射等物理过程。

3. 光强分布计算。

根据光线传播模拟的结果,计算光强分布,包括光强的空间分布和光谱分布等。

在Matlab中,可以使用矩阵运算和数值计算等方法实现上述步骤。

例如,可以使用矩阵表示光路模型中的光学元件和光线传播路径,通过矩阵运算实现光线的传播和光强分布的计算。

三、仿真实现以一个简单的光学实验为例,介绍基于Matlab的光学实验仿真的实现过程。

1. 定义光源和光学元件参数。

在Matlab中定义光源的发光强度、波长等参数,以及透镜、反射镜等光学元件的参数和位置关系。

2. 建立光路模型。

根据定义的光源和光学元件参数,建立光路模型,包括光线传播路径和光学元件之间的相互作用。

3. 模拟光线传播。

使用Matlab中的矩阵运算和数值计算方法,模拟光线在光学元件之间的传播过程,包括光线的折射、反射等物理过程。

4. 计算光强分布。

根据光线传播模拟的结果,计算光强分布,包括光强的空间分布和光谱分布等。

5. 绘制仿真结果。

将计算得到的光强分布结果绘制成图像或图表,以便于观察和分析。

四、仿真结果分析通过对仿真结果的分析,可以得出以下结论:1. 基于Matlab的光学实验仿真可以实现对光学实验的精确模拟,具有较高的精度和可靠性。

2. 通过仿真可以方便地观察和分析光路中光线传播的过程和光强分布的情况,有助于深入理解光学原理和光学元件的相互作用。

《2024年基于Matlab的光学实验仿真》范文

《2024年基于Matlab的光学实验仿真》范文

《基于Matlab的光学实验仿真》篇一一、引言光学实验是物理学中重要的实验领域之一,其研究范围涵盖了光的传播、干涉、衍射、偏振等基本现象。

然而,在实际的光学实验中,由于各种因素的影响,如设备精度、环境噪声等,往往难以得到理想的实验结果。

为了更好地理解和研究光学现象,提高实验的准确性和效率,基于Matlab的光学实验仿真成为了一种有效的手段。

本文将介绍基于Matlab的光学实验仿真的基本原理、方法及其实验结果分析。

二、Matlab光学实验仿真的基本原理和方法1. 基本原理Matlab是一种强大的数学计算软件,其强大的数值计算和图像处理功能为光学实验仿真提供了可能。

在光学实验仿真中,我们可以通过建立数学模型,模拟光的传播、干涉、衍射等过程,从而得到光场分布、光强分布等光学参数。

2. 方法(1)建立数学模型:根据光学实验的实际情况,建立光的传播、干涉、衍射等过程的数学模型。

(2)设置参数:根据实验需求,设置模拟参数,如光波长、光束尺寸、光学元件参数等。

(3)运行仿真:在Matlab中运行仿真程序,得到光场分布、光强分布等光学参数。

(4)结果分析:对仿真结果进行分析,如绘制光强分布图、计算光程差等。

三、基于Matlab的光学实验仿真实例以光学干涉实验为例,介绍基于Matlab的光学实验仿真方法。

1. 建立数学模型:根据干涉实验的实际情况,建立双缝干涉的数学模型。

该模型包括双缝的结构参数、光的波长、干涉场的空间分布等。

2. 设置参数:根据实验需求,设置双缝间距、缝宽、光波长等参数。

3. 运行仿真:在Matlab中运行仿真程序,得到双缝干涉的光强分布。

4. 结果分析:对仿真结果进行分析,如绘制光强分布图、计算干涉条纹的可见度等。

通过仿真结果与实际实验结果的对比,验证了仿真方法的准确性和可靠性。

四、实验结果分析基于Matlab的光学实验仿真可以得到准确的光场分布、光强分布等光学参数,为光学实验提供了有效的手段。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB编程用两种方法模拟光学实验
摘要:
利用MATLAB软件编程实现了用衍射积分的方法对单缝衍射、杨氏双缝干涉、黑白
光栅衍射的计算机模拟;以及用傅立叶变换方法对简单孔径衍射、黑白光栅及正弦光栅夫
琅和费衍射的模拟。

关键词:
MATLAB;衍射积分;傅立叶变换;计算机模拟
引言:
美国Mathworks公司推出的MA TLAB,是一种集数值计算、符号预算、可视化建模、
仿真和图形处理等多种功能于一体的优秀图形化软件。

本文介绍了通过MA TLAB软件编
程实现用衍射积分和傅立叶变换实现夫琅和费衍射计算机模拟的方法。

计算机模拟为衍射实验的验证提供一条简捷、直观的途径。

从而加深了对物理原理、
概念和图像的理解。

正文:
大学教学课程中引入计算机模拟技术正日益受到重视,与Basic、C和Fortran相比,用MA TLAB软件做光学试验的模拟,只需要用数学方式表达和描述,省去了大量繁琐的编
程过程。

下面来介绍利用MATLAB进行光学模拟的两种方法。

(一)衍射积分方法:
该方法首先是由衍射积分算出接收屏上的光强分布,然后根据该分布调制色彩作图,从而得到衍射图案。

1.单缝衍射。

把单缝看作是np个分立的相干光源,屏幕上任意一点复振幅为np个光源照射结果
的合成,对每个光源,光程差Δ=ypsinΦ,sinΦ=ys/D,光强I=I0(Σcosα)2+(Σsinα)2,其中α=2Δ/λ=πypys/λD
编写程序如下,得到图1
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;
图1 单缝衍射的光强分布 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); 2. 杨氏双缝干涉
两相干光源到接收屏上P 点距离r 1=(D 2+(y-a/2)2)1/2, r 2=(D 2+(y+a/2)2)1/2,相位差
Φ=2π(r 2-r 1)/λ,光强I=4I 0cos 2
(Φ/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) 3. 光栅衍射
公式:I=I 0(sin α/α)2(sin(λβ)/sin β)2
α=(πa/λ)sin Φ β=(πd/λ)sin Φ
编写程序如下:得到图3
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
图2 杨氏双缝干涉的光强分布 图3 黑白光栅衍射光强分布
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()命令对该矩阵进行二位离散傅立叶变换,得到图像的频谱,该频谱是一个复数矩阵,然后用取模函数abs ()对该复数矩阵取模,得到振幅谱矩阵,利用函数fftshift ()对取模后的矩阵进行频谱位移,这是因为变换后的二维矩阵的直流分量位于图像的周边角,该函数交换矩阵的1、3象限和2、4象限,使直流分量移到频谱中心,从而使FFT 频谱可视效果与实际图像相吻合。

最后利用imshow ()函数将图像显示出来。

编写程序如下: clear a=imread('E:\1.bmp'); grid on figure(1) imshow(a,[]) afft=fft2(a); aabs=abs(afft); aabss=fftshift(aabs); figure(2) imshow(aabss,[]) colormap(gray); colorbar figure(3) plot(aabss) colormap(gray); figure(4) meshc(aabss) maxx1=max(max(aabss)); 输入黑白或灰度的衍射屏图像,得到输出的衍射图样和光强分布。

1. 简单孔径的衍射
(a)圆孔衍射:可以看到光强分布随孔径大小的变化
图4 圆孔的光强分布
(b)矩孔衍射:
(c )三角孔衍射:
2.单缝衍射:
3.黑白光栅衍射:
图7 单缝衍射的光强分布
图5 矩孔衍射的光强分布
图6 三角孔衍射的光强分布
缝宽不变,光栅常数变大:
缝宽变小,光栅常数不变:
可以明显地观察到干涉条纹受衍射因子的调制,以及缺级现象 4.正弦光栅衍射:
我们先设计程序制得一张正弦光栅,用正(余)弦函数作图如下: clear all
xm=10*pi;ys=xm;
xs=linspace(-xm,xm,500); B=cos(xs)+1; N=255; Br=B/2*N
image(xs,ys,Br); colormap(gray(N));
将该图片保存成灰度BMP 文件。

调用程序得到衍射图样,只有三个衍射斑,与理论一致。

(三)利用傅立叶方法还可以得到其他有趣的衍射花样,并研究其规律性
图8 黑白光栅衍射的光强分布 图9 正弦光栅衍射的光强分布
每个方孔几何尺寸相同
可以看出,基本衍射图样还是
方孔衍射但是在任意两个方
孔连线的中垂线方向会出现
等间距暗纹,三角形摆放则会
出现类似蜂巢的结构。

两个方向上的光栅衍射叠加,
如果线条不平行则会在每个
中垂线方向都向外发展。

可以看到,
圆孔衍射的图样受到
椭圆孔衍射因子的调制
一些字母和符号也可以
产生很有趣的衍射图样:
----------------------------------------------------------------------------- 参考文献:
[1]:胡守信、李柏年,《基于MATLAB的数学实验》,科学出版社
[2]:张铮、杨文平、石博强、李海鹏,《MATLAB程序设计与实例应用》,中国铁道出版社。

相关文档
最新文档