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

合集下载

Matlab数字衍射光学实验(二).

Matlab数字衍射光学实验(二).

clear;close all;lamda=0.6328;%入射光波长,单位umz=200.0e3;%传播距离,单位umh=2e3;w=2e3;%模拟光波的大小,单位umdx=10.0;dy=10.0;%抽样间隔,单位umM=h/dx;N=w/dy;%抽样点数a0=1;%初始振幅大小为 1x0=0;y0=0;%模拟光源位于坐标原点k=2*pi/lamda;%波数%---------球面波表示-------%[x,y]=meshgrid(-M/2*dx:(M-1)/2*dx,-N/2*dy:(N-1)/2*dy);%M个点,两点之间的距离为dxSphFunct=a0/z.*exp(i*k*z).*exp(i*pi/(lamda*z).*((x-x0).^2+(y-y 0).^2));%球面波I=abs(SphFunct).^2;%光强度I1=I./max(max(I));%归一化强度,二维所以求两次max()Ph=angle(SphFunct);%相位,函数angle()表示取相位figure(1);imagesc(I1);%做出球面波的强度分布图,没有强度变化,均匀光斑,这里做了彩图figure(2);P=(Ph+pi)/(2*pi);%归一化相位imshow(P);%画出球面波的相位分布图figure(3);imagesc(P);%画出球面波相位分布的彩图clear;close all;lamda=0.6328;%入射光波长umh=2e3;w=2e3;%模拟光波的大小um dx=10.0;dy=10.0;%抽样间隔umM=h/dx;N=w/dy;%抽样点数A=1;%振幅为 1k=2*pi/lamda;%波数theta=pi/6;%设定theta为30度a=pi/2-theta;%波矢与x轴夹角b=pi/2;%波矢与y轴夹角c=theta;%波矢与z轴夹角z=0;%-----------平面波----------%[x,y]=meshgrid(-M/2*dx:(M-1)/2*dx,-N/2*dy:(N-1)/2*dy);%抽样网格pingmianbo=A.*exp(i*k.*(x.*cos(a)+y.*cos(b)+z.*cos(c)));%平面波公式I=abs(pingmianbo).^2;%光强度I1=I./max(max(I));%归一化强度Ph=angle(pingmianbo);%相位figure(1);imshow(I1)%做出强度分布图,没有强度变化,均匀光斑figure(2);imagesc(I1);%画出强度分布彩图figure(3);P=(Ph+pi)/(2*pi);%归一化相位imshow(P);%画出相位分布图像figure(4);imagesc(P);%做出相位分布彩图clear;close all;lamda=0.6328;%入射光波长umz=100.0e3;%传播距离umh=2e3;w=2e3;%模拟光波的大小umdx=10.0;dy=10.0;%抽样间隔umM=h/dx;N=w/dy;%抽样点数a0=1;%设定振幅x1=-0.2e3;y1=0;%相当于将上图逆时针旋转90度后的S1,距原点0.2mmx2=0.2e3;y2=0;%相当于将上图逆时针旋转90度后的S2,距原点0.2mmk=2*pi/lamda;%波数%---------球面波---------%[x,y]=meshgrid(-M/2*dx:(M-1)/2*dx,-N/2*dy:(N-1)/2*dy);%抽样网格wave1=a0/z.*exp(i*k*z).*exp(i*pi/(lamda*z).*((x-x1).^2+(y-y1).^2));%第一束球面波wave2=a0/z.*exp(i*k*z).*exp(i*pi/(lamda*z).*((x-x2).^2+(y-y2).^2));%第二束球面波wave=wave1+wave2;%两束球面波相遇,即为两者复振幅之和I=abs(wave).^2;%光强度I1=I./max(max(I));%归一化强度Ph=angle(wave);%相位函数angle()表示取相位figure(1);imshow(I1);%画出球面波的强度分布图,没有强度变化,均匀光斑figure(2);P=(Ph+pi)/(2*pi);%归一化相位imshow(P);%画出球面波的相位分布图figure(3);imagesc(P);%画出球面波的相位分布彩图clear;close all;lamda=0.6328;%入射光波长umh=2e3;w=2e3;%模拟光波的大小umdx=10.0;dy=10.0;%抽样间隔umM=h/dx;N=w/dy;%抽样点数A=1;%设定振幅为 1k=2*pi/lamda;%波数theta1=-0.25*pi/180;%第一束平面波与z轴夹角theta2=0.25*pi/180;%第二束平面波与z轴夹角a1=pi/2-theta1;%波矢与x轴夹角b1=pi/2;%波矢与y轴夹角c1=theta1;%波矢与z轴夹角a2=pi/2-theta2;%波矢与x轴夹角b2=pi/2;%波矢与y轴夹角c2=theta2;%波矢与z轴夹角z=0e3;%----------平面波表示----------%[x,y]=meshgrid(-M/2*dx:(M-1)/2*dx,-N/2*dy:(N-1)/2*dy);%二维抽样网格wave1=A.*exp(i*k.*(x.*cos(a1)+y.*cos(b1)+z.*cos(c1)));%第一束平面波wave2=A.*exp(i*k.*(x.*cos(a2)+y.*cos(b2)+z.*cos(c2)));%第二束平面波wave=wave1+wave2;%两束光相遇I=abs(wave).^2;%光强度I1=I./max(max(I));%归一化强度Ph=angle(wave);%相位figure(1);imshow(I1);%画出强度分布图figure(2);imagesc(I1);%画出强度分布彩图figure(3);P=(Ph+pi)/(2*pi);%归一化强度imshow(P);%做出相位分布图figure(4);imagesc(P);%做出相位分布彩图。

光学衍射图样的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

光学与MATLAB光学与MATLAB 的结合是现代光学研究和工程中的常见应用。

光学是研究光的行为和性质的学科,而MATLAB 是一个强大的数学计算和编程工具。

将两者结合起来,可以实现复杂的光学模拟、分析和设计。

以下是一些关于光学和MATLAB 结合的深入探讨:1.光波的数学描述:光波在空间中传播时,可以视为一个电场和磁场的波动。

在直角坐标系中,这可以用麦克斯韦方程组来描述。

MATLAB 中提供了用于解决这些方程的工具,如`pdepe` 或`fvm`。

使用这些工具,可以模拟光波在各种介质中的传播。

2.干涉和衍射:干涉是当两束或多束相干光波相遇时,它们的光程差会导致光强分布发生变化的现象。

衍射是光波绕过障碍物边缘时的传播行为。

MATLAB 的`optics` 工具箱提供了多种函数,可以模拟和分析干涉和衍射现象。

3.光学系统设计:光学系统设计涉及透镜、反射镜、棱镜等的光学性能的优化。

使用MATLAB 的`optics` 工具箱,可以模拟和分析这些系统的性能,并进行优化设计。

4.光谱分析:光谱分析涉及从光谱数据中提取信息,如物质成分、温度等。

MATLAB 中有专门用于光谱分析的工具箱,如`spectrum`,可以用于分析光谱数据。

5.图像处理:在光学中,图像处理是一个重要的分支,涉及对图像的增强、恢复和识别等操作。

MATLAB 的`image processing` 工具箱提供了各种算法,可以用于图像处理中的各种任务。

6.光子晶体和光子器件:光子晶体是具有周期性折射率变化的介质,可以控制光的传播。

光子器件是利用光子晶体和其他结构实现的特定功能的光学器件。

MATLAB 可以模拟和分析这些复杂系统的性能和行为。

7.光通信:光通信利用光波作为信息载体,通过光纤进行传输。

MATLAB 可以模拟和分析光通信系统中的各种效应,如色散、损耗和噪声等。

8.应用实例:假设我们需要模拟一个简单的干涉现象。

我们可以使用MATLAB 的`control` 工具箱中的`fftinterf` 函数来模拟干涉条纹的形成:首先,我们需要生成两个相干的正弦波:(1)% 定义参数(2)wavelength = 500e-9; % 波长(m)(3)angle = pi/4; % 入射角(rad)(4)k = 2*pi/wavelength; % 波数(1/m)(5)d = 1; % 双缝间距(m)(6)x0 = 0; % 双缝中心x 坐标(m)(7)y0 = 0; % 双缝中心y 坐标(m)(8)sigma = wavelength/(2*pi); % 单缝线宽(m)(9)L = 10; % 屏幕到双缝的距离(m)(10)x = -L:L; % x 坐标范围(m)(11)% 计算双缝的透过率函数(12)t1 = exp(-(x-x0).^2/(2*sigma^2)); % 单缝透过率函数(1/m^2)(13)t2 = exp(-(x-x0-d).^2/(2*sigma^2)); % 双缝透过率函数(1/m^2)(14)% 生成双缝透过率函数的时间序列(15)t = t1.*t2; % 双缝总透过率函数(1/m^2)(16)% 计算相干光的振幅和相位分布(17)E = t.*exp(1i*2*pi*k*(x.^2)/(2*(L^2))); % 双缝产生的电场分布(V/m)接下来,我们可以使用MATLAB 的`fftinterf` 函数来模拟干涉条纹的形成:(1)% 计算干涉条纹的强度分布(2)I = abs(fftshift(fft(E).*conj(fft(E)))); % 干涉条纹的强度分布(V^2/m^2)(3)% 显示干涉条纹的强度分布(4)imagesc(x, y, I);(5)axis square;(6)colorbar;(7)title('干涉条纹的强度分布');这只是一个简单的例子,实际上MATLAB 可以进行更复杂的模拟和分析,包括光的传输、光与物质的相互作用等。

衍射标量设计方法 matlab

衍射标量设计方法 matlab

一、介绍衍射标量设计方法在光学领域中,衍射标量设计方法是一种用于设计光学系统的重要手段。

这种方法主要基于波动理论,通过计算光波的传播过程来确定光学系统的参数和结构,从而实现特定的光学功能。

衍射标量设计方法在光学成像、激光器设计、光学通信等领域都有着广泛的应用。

二、衍射标量设计方法的基本原理衍射标量设计方法的基本原理是利用衍射理论来描述光波的传播过程。

在衍射理论中,光波的传播可以用衍射积分来表达,根据衍射积分表达式,可以求解出某一特定的光学系统对输入光场的响应。

通过对这一响应进行分析和优化,可以确定光学系统的参数和结构,从而实现特定的光学功能。

三、衍射标量设计方法的建模与分析1.建立光学系统的数学模型在衍射标量设计方法中,首先需要建立光学系统的数学模型。

这一模型通常是一个线性的传递函数,描述了光学系统对输入光场的响应。

通过这一传递函数,可以将输入光场和输出光场之间的关系用数学方程表达出来。

2.分析光学系统的参数和结构在建立了数学模型之后,需要对光学系统的参数和结构进行详细的分析。

这一分析通常包括对光学元件的性能参数、尺寸和位置等进行考虑,以确定最佳的设计方案。

四、matlab在衍射标量设计方法中的应用1.光学系统的仿真与优化matlab是一种强大的数学建模与仿真软件,可以帮助工程师和科研人员对光学系统进行仿真和优化。

通过matlab的光学仿真工具箱,可以方便地建立光学系统的数学模型,并对其进行优化,以实现更好的光学性能。

2.光学系统的快速原型设计除了仿真和优化,matlab还可以用于快速原型设计。

借助matlab的可视化编程环境和丰富的函数库,可以快速地建立光学系统的原型,并进行实时的调试和优化,大大提高了光学系统的设计效率。

五、总结衍射标量设计方法是一种重要的光学系统设计方法,通过对光波的传播过程进行建模和分析,可以实现对光学系统的快速优化和设计。

而matlab作为一种强大的数学建模与仿真工具,为光学系统的设计提供了便利的评台,帮助工程师和科研人员实现光学系统的快速原型设计和优化。

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中物理光学工具箱提供的函数和工具,我们可以比较直观地模拟理想透镜的衍射效应,从而更好地理解光学系统的行为。

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

实验7 衍射的Matlab模拟

实验7 衍射的Matlab模拟

实验7衍射的Matlab模拟一、实验目的:掌握衍射的matlab模拟。

二、实验内容:1)单个圆孔夫朗和费衍射的matlab模拟2)双圆孔夫朗和费衍射的matlab模拟3)同一波长,狭缝数量分别为1、2、3、6、9、10时候的夫朗和费衍射的matlab模拟4)对4个不同波长的光照射时,狭缝数量分别为1、3时候的夫朗和费衍射的matlab 模拟5)单个圆孔菲涅尔衍射的matlab模拟6)模拟圆孔(或者单缝)衍射时,衍射屏到接收屏距离不同的时候衍射的图样1)clearclclam=632.8e-9;a=0.0005;f=1;m=300;ym=4000*lam*f;ys=linspace(-ym,ym,m);xs=ys;n=200;for i=1:mr=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;B=b/max(b);endimage(xs,ys,b);colormap(gray(n));figure;plot(xs,B);colormap(green);-2.5-2-1.5-1-0.500.51 1.52 2.5x 10-3-2.5-2-1.5-1-0.50.511.522.5x 10-3-3-2-10123x 10-300.10.20.30.40.50.60.70.80.912)%双圆孔夫琅禾费衍射clear all close all clc %lam=632.8e-9;a=0.0005;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;h=(2*BESSELJ(1,x)).^2./x.^2;d=10*a;deltaphi=2*pi*d*xs(i)/lam;hh=4*h*(cos(deltaphi/2))^2;b(:,i)=(hh)'.*5000;end image(xs,ys,b);colormap(gray(n));-2.5-2-1.5-1-0.500.51 1.52 2.5x 10-3-2.5-2-1.5-1-0.50.511.522.5x 10-33)lamda=500e-9;%波长N=[1236910];for j=1:6a=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:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lamda;beta=pi*d*sinphi/lamda;B(i,:)=(sin(alpha)./alpha).^2.*(sin(N(j)*beta)./sin(beta)).^2;B1=B/max(B);end NC=256;%确定灰度的等级Br=(B/max(B))*NC;figure(j);subplot(1,2,1);image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2);plot(B1,ys,'k');end-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为1-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为2-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为3-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025狭缝数为9狭缝数为6-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.0254)lamda=400e-9:100e-9:700e-9;%波长N=[13];a=2e-4;D=5;d=5*a;for j=1:4ym=2*lamda(j)*D/a;xs=ym;%屏幕上y 的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for k=1:2for i=1:n sinphi=ys(i)/D;alpha=pi*a*sinphi/lamda(j);beta=pi*d*sinphi/lamda(j);B(i,:)=(sin(alpha)./alpha).^2.*(sin(N(k)*beta)./sin(beta)).^2;B1=B/max(B);end NC=256;%确定灰度的等级Br=(B/max(B))*NC;figure();subplot(1,2,1);image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2);狭缝数为10plot(B1,ys,'k');end end-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02Lamda=400nm,N=1-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025Lamda=400nm,N=3Lamda=500nm,N=1-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03Lamda=500nm,N=3Lamda=600nm,N=1-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.04Lamda=600nm,N=3Lamda=700nm,N=1-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.045)clearclcN=300;r=15;a=1;b=1;I=zeros(N,N);[m,n]=meshgrid(linspace(-N/2,N/2-1,N));D=((m-a).^2+(n-b).^2).^(1/2);i=find(D<=r);I(i)=1;subplot(2,2,1);imagesc(I)colormap([000;111])axis imagetitle('衍射前的图样')L=300;M=300;[x,y]=meshgrid(linspace(-L/2,L/2,M));lamda=632.8e-6;k=2*pi/lamda;z=1000000;Lamda=700nm,N=3h=exp(j*k*z)*exp((j*k*(x.^2+y.^2))/(2*z))/(j*lamda*z); H=fftshift(fft2(h));%传递函数B=fftshift(fft2(I));%圆孔频谱G=H.*B;U=fftshift(ifft2(G));Br=(U/max(U));subplot(2,2,2);imshow(abs(U));axis image;colormap(hot)%figure,imshow(C);title('衍射后的图样');subplot(2,2,3);mesh(x,y,abs(U));subplot(2,2,4);plot(abs(Br))6)lamda=500e-9;%波长N=1;%缝数,可以随意更改变换a=2e-4;D=3:7;d=5*a;for j=1:5ym=2*lamda*D(j)/a;xs=ym;%屏幕上y的范围n=1001;%屏幕上的点数ys=linspace(-ym,ym,n);%定义区域for i=1:nsinphi=ys(i)/D(j);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;figure();subplot(1,2,1)image(xs,ys,Br);colormap(hot(NC));%色调处理subplot(1,2,2)plot(B1,ys,'k');end-0.4-0.200.20.4-0.015-0.01-0.00500.0050.010.01500.51-0.015-0.01-0.0050.0050.010.015D=3m-0.4-0.200.20.4-0.02-0.015-0.01-0.00500.0050.010.0150.0200.51-0.02-0.015-0.01-0.0050.0050.010.0150.02-0.4-0.200.20.4-0.025-0.02-0.015-0.01-0.00500.0050.010.0150.020.02500.51-0.025-0.02-0.015-0.01-0.0050.0050.010.0150.020.025D=5m D=4m-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.03-0.02-0.010.010.020.03-0.4-0.200.20.4-0.03-0.02-0.0100.010.020.0300.51-0.04-0.03-0.02-0.010.010.020.030.04D=7m D=6m。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)%三维
%%---------------------matlab 代码------------------------clear %清除内存 close all %关闭所有窗口 a=5;%常数 x=linspace(-5,5,100);%设置一维横坐标范围及网格 y1=exp(-pi.*(x/a).^2);%第一类贝塞尔函数,一阶 figure(1)% 图 1 b=2;%常数 y2=exp(-pi.*(x/b).^2);%第一类贝塞尔函数,一阶 figure(1)% 图 1 plot(x,y1,'r')%画函数 1 的曲线,‘r’代表图像颜色,红色 figure(2) % 图 2 plot(x,y2,'b') %画函数 2 的曲线,‘b’代表图像颜色,蓝色 %%--------------------------------------------------------
注意******,matlab 编程中的编码输入必须在英文输入法下,否则程序将不被 识别。 二.常用物体的 Matlab 模拟 1)单缝
%%%%%%%%%%%%------------------------------clear close 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);
当中 a、b 为 1 时,
2 2 Gauss x, y exp ( 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)
3
2015 级光电工程专业综合实验-信息光学专题实验
%%%---------------------------------------------------------------改变变量 phi 观察曲线变化。 2)开根号:sqrt(x) ,
%%-------------------------clear %清除内存 close all %关闭所有窗口 x=linspace(0,2*pi,100);%设置横坐标范围及网格 y1=sqrt(x); %开根号 figure% 图 plot(x,y1,'r')%画函数 1 的曲线,‘r’代表图像颜色,红色 %%------------------------------------------------
2015 级光电工程专业综合实验-信息光学专题实验
实验注意事项(必读)
1. 没有弄清楚实验内容者,禁止接触实验仪器。 2. 注意激光安全。绝对不可用眼直视激光束,或借助有 聚光性的光学组件观察激光束,以免损伤眼睛。 3. 注意用电安全。He-Ne 激光器电源有高压输出,严禁 接触电源输出和激光头的输入端,避免触电。 4. 注意保持卫生。严禁用手或其他物品接触所有光学元 件(透镜、反射镜、分光镜等)的光学表面;特别是 在调整光路中,要避免手指碰到光学表面。 5. 光学支架上的调整螺丝, 只可微量调整。 过度的调整, 不仅损坏器材,且使防震功能大减。 6. 实验完成后,将实验所用仪器摆放整齐,清理一下卫 生。
实验过程中要切记以上注意事项。如 有违犯,将严重影响你的实验成绩!
1
2015 级光电工程专业综合实验-信息光学专题实验
Matlab 数字衍射光学实验一
计算机仿真过程是以仿真程序的运行来实现的。仿真程序运行时,首先要对 描述系统特性的模型设置一定的参数值, 并让模型中的某些变量在指定的范围内 变化,通过计算可以求得这种变量在不断变化的过程中,系统运动的具体情况及 结果。仿真程序在运行过程中具有以下多种功能: 1)计算机可以显示出系统运动时的整个过程和在这个过程中所产生的各种现象 和状态。具有观测方便,过程可控制等优点; 2)可减少系统外界条件对实验本身的限制,方便地设置不同的系统参数,便于 研究和发现系统运动的特性; 3)借助计算机的高速运算能力,可以反复改变输入的实验条件、系统参数,大 大提高实验效率。 因此. 计算机仿真具有良好的可控制性(参数可根据需要调整)、 无破坏性(不会因为设计上的不合理导致器件的损坏或事故的发生)、 可复现性(排 除多种随机因素的影响,如温度、湿度等)、易观察性(能够观察某些在实际实验 当中无法或者难以观察的现象和难以实现的测量,捕捉稍纵即逝的物理现象,可 以记录物理过程的每一个细节)和经济性(不需要贵重的仪器设备)等特点。 Matlab 是 MathWorks 公司于 1982 年推出的一套高性能的数值计算和可视化 软件。 它集数值分析、 矩阵运算、 信号处理和图形显示于一体, 构成了一个方便、 界面友好的用户环境。它还包括了 ToolBox(工具箱)的各类问题的求解工具,可 用来求解特定学科的问题。Matlab 的长处在于数值计算,能处理大量的数据,而 且效率比较高。MathWorths 公司在此基础上开拓了符号计算、文字处理、可视 化建模和实时控制能力,增强了 Matlab 的市场竞争力,使 Matlab 成为市场主流 的数值计算软件。Matlab 产品族支持概念设计、算法开发、建模仿真、实时实现 的理想的集成环境。其主要功能有:数据分析、数值和符号计算、工程与科学绘 图、控制系统设计、数字图像信号处理、财务工程,建模、仿真、原型开发,应 用开发,图形用户界面。 在光学仪器设计和优化过程中,计算机的数值仿真已经成为不可缺少的手 段。通过仿真计算,可以大幅度节省实验所耗费的人力物力,特别是在一些重复 实验工作强度较大且对实验器材、实验环境等要求较苛刻的情况下。如在大型激 光仪器的建造过程中, 结合基准实验的仿真计算结果可为大型激光器的设计和优 化提供依据。仿真光学实验也可应用于基础光学教学。光学内容比较抽象,如不 借助实验,很难理解,如光的干涉、菲涅耳衍射、夫琅禾费衍射等。传统的光学 实验需要专门的实验仪器和实验环境。其操作比较烦琐,误差大现象也不明显, 对改变参数多次观察现象也多有不便。MATLAB 是当今国际上公认的在科技领 域方面最为优秀的应用软件和开发环境。 利用它对光学实验仿真可避免传统实验 中的缺点,强大的功能使光学实验变得简便准确。基于 MATLAB 的科学可视化 功能对光学仿真实验现象进行计算机模拟的效果更加准确明显。
%%---------------------matlab 代码------------------------clear %清除内存 close all %关闭所有已打开的窗口 x=linspace(-2*pi,2*pi,100);%设置一维横坐标范围及网格,pi为常数π y1=besselj(1,x);%第一类贝塞尔函数,一阶 y2=besselj(0,x);%第一类贝塞尔函数,0 阶 figure(1)% 图 1 plot(x,y1,'r')%画函数 1 的曲线,‘r’代表图像颜色,红色 figure(2) % 图 2 plot(x,y2,'b') %画函数 2 的曲线,‘b’代表图像颜色,蓝色 %%%-------------------------------------------------
相关文档
最新文档