MATLAB实验牛顿环实验的MATLAB仿真
更新时间:2023-09-22 23:58:01 阅读量: 经管营销 文档下载
- matlab推荐度:
- 相关推荐
实验三 牛顿环实验的MATLAB仿真
一、实验目的
MATLAB在光学实验的计算机仿真方面有着重要的应用。使用MATLAB可以仿真大多数光学实验,例如杨氏双缝干涉实验、牛顿环实验、夫琅和费衍射等,使得原本抽象的必须借助实验仪器才能感知的光学现象可以直观而且动态的显示在计算机上,从而获得对某一特定光学现象充分的感性认知,加深我们对抽象光学现象的理解和认识。这里将以牛顿环实验的MATLAB仿真为例,向大家介绍光学实验的MATLAB动态仿真的基本方法并通过上机练习以达到如下几个目的:
1. 掌握用imshow实现光强度二维分布的可视化显示方法; 2. 掌握MATLAB动态仿真技术—影片动画技术;
二、实验原理
1. 牛顿环干涉原理
右图所示为牛顿环装置的示意图。R为牛顿环透镜的曲率半径,d为空气膜的厚度(R??d)。垂直入射光经空气膜的上下两表面反射后产生干涉,干涉后的光强
I?I1?I2?2I1I2cos(??) (1)
其中I1和I2是两束相干光的光强,可近似认为 I1 = I2 = I0。??为两束光相遇时的位相差
???2?(2d?) (2)
?2?由图中的几何关系以及R??d条件可得
r2d? (3)
2R(2)、(3)式代入(1)式后有
图1
I?2I0sin2(?r?r)?sin2() (4) R?R?22上式中为了方便取系数2I0 =1。在直角坐标系中r2?x2?y2,(x,y)代表光强的二维分布
点的坐标。(4)式是实验仿真的基础,对于任意给定点(x,y),如果该点的光强I取最大值1,则该点为明条纹所在;若光强I取最小值0,则是暗纹所在;其他值则介于两者之间。
(4)式给出了牛顿环干涉光强的二维平面分布,那么如何将光强的平面分布(数值)可视化显示出来?下面介绍一种简单的实现方法。
2. 光强分布的可视化实现
对于数据的可视化,MATLAB提供了很多实现方法,比如前面介绍的plot、plot3、surf函数等。对于牛顿环实验来说,虽可以使用surf函数将光强I在xy平面上的分布表现出来,但是得到的是3维曲面图,和实验观察到的2维环状的干涉条纹图形不一致,达不到仿真的目的。所谓仿真,也就是把实验观察屏上二维的干涉条纹图像通过计算机再现出来,这就是图像显示技术。图像显示是一种特殊的图形绘制,MATLAB提供了一系列创建和显示图像对象的命令,例如image, pcolor,imshow等。考虑到干涉条纹的明与暗可用白与黑来显示,而强度介于两者之间的条纹则可用不同层次的灰度来显示,因此选择灰度图像来显示牛顿环的干涉条纹比用彩色图像显示效果更逼真;此外,相对来说用imshow创建灰度图像比用image和pcolor在语句上要简单些,所以这里我们选择imshow指令来进行光强的可视化操作(即干涉图像的再现),至于image和pcolor指令亦可实现不过语句稍复杂些,感兴趣的同学可以参考有关的资料。
使用imshow建立灰度图像的使用格式:imshow(I,N)
其中参数N为正整数,指定灰度的层次,当缺省该参数时,系统默认为256级的灰度级;参数I为数值矩阵,imshow的作用就是将数值矩阵I的元素值用N个灰度级的黑白图像可视化显示出来。实际上是在数值矩阵I和N个灰色调之间建立了一种颜色映射关系:I当中元素值最大者映射为白色(将该元素值作为白色显示),元素值最小者映射为黑色(将该元素值作为黑色显示),元素值介于最大和最小之间的则按照某种约定的规则映射到其它的灰度级(显示为不同灰度的灰色)。
为了方便叙述,假定再现的图像尺寸2mm×2mm,使用上述指令可以很方便的将牛顿环干涉条纹在该区域内再现:
? 首先,利用(4)式获取干涉光强I在该区域(?0.001?x?0.001, ?0.001?y?0.001,
假定观察屏是xy平面)的数值分布 x=linspace(-0.001,0.001,200); y=linspace(-0.001,0.001,200);
[X,Y]=meshgrid(x,y); %将xy平面2mm×2mm的区域分割为200×200的网
%格(像素),矩阵X、Y分别输出格点的x和y坐标
r2=X.^2+Y.^2 ;
I=abs(sin(pi*r2/R/?)).^2;
% 200×200的数值矩阵;计算格点上光强I,得到光强的数值分布
? 接下来使用imshow指令将数值矩阵I可视化
imshow(I) 3. 动态仿真技术
牛顿环实验(也包括其他光学实验)的仿真有2个环节,其一是将观察屏(xy平面)上
干涉光强的分布可视化显示;其二是动态仿真,比如当空气薄膜的厚度连续改变时(通过向上移动牛顿环中的透镜),干涉条纹也会随之移动,采用动态仿真可以再现这一过程。前者我们在第2小节中做了介绍,下面介绍一种MATLAB动态仿真技术—影片动画技术。
顾名思义,影片动画技术类似于电影的制作,其原理是首先对仿真的过程按时间次序进行“拍照”,获得一帧一帧的画面(称为帧),并将之存档,然后再按时间顺序以高于视觉暂留的帧频率播放帧,即可获得类似于电影的动画效果。这种动画技术适用于难以实时快速绘制的复杂画面,但计算量大,占用内存较多。在MATLAB中实现影片动画依次要用到下列几个函数:
① moviein函数 该函数将产生一个结构体数组(structure,以下称帧结构体)来存放动画的帧(即所拍摄的一幅幅画面),每帧画面作为结构体的一个元素保存。调用格式 fmat = moviein (N)
作用是创建一个能存放N个帧的(1×N)结构体数组fmat。该结构体包含两个域cdata和colormap,前者用于存放帧的图像数据,后者存放帧使用到的颜色表。
② getframe函数 该函数作用是对当前的图像进行快照(“抓拍”),通常有两种使用格式: A. getframe 该格式不带参数,“抓拍”当前坐标轴里的内容;
B. getframe(h) “抓拍”某个图形窗口或坐标轴里的内容,该图形窗口或坐标轴以句柄h标识(图形窗口和坐标轴都是一种图形对象,每一种图形对象都有自己特有的句柄handle,即标识,类似于“身份证”)。例如
>> fmat(1) = getframe (gcf)
抓拍当前图形窗口下的内容,并将该帧画面存放于帧结构体fmat的第一个元素中;gcf为Get handle to current figure的缩写,意思是获取当前图形窗口的句柄。在命令窗口中输入gcf可显示当前图形窗口的句柄值,是个整数。 ③ movie函数
作用是按顺序回放帧结构体fmat中存放的各帧画面以产生动画感。一般格式:
movie(h, famt, n, fps)
h 是播放动画的图形窗口或坐标轴的句柄,缺省时表示在当前的坐标轴中播放动画; famt 是帧结构体名,不可省;
n 是重复播放的次数,缺省时,只播放一次;
fps 代表每秒播放的帧数(即帧频),一般应快于视觉暂留,缺省时系统默认fps=12。
在动画播放前,movie函数首先将每帧图像的数据载入内存(此时图像会一帧一帧的显示出来),然后再按照用户设定的参数(重复次数n、帧频fps等)播放动画。
除了movie函数,MATLAB还提供了一个函数movie2avi,该函数能够在当前的工作目录下创建一个avi视频格式的动画文件。一般的调用格式: movie2avi(fmat, filename)
famt 为前述的帧结构体名,filename是字符串,指定avi格式的文件名。 例1:
Z=peaks; % MATLAB提供的三维函数 surf(Z);
TheAxis=axis; % 保存坐标值,使得下面所有帧都在同一坐标系。变量TheAxis
% 为6个元素的向量,分别代表x、y、z轴的最小、最大值
F=moviein(20); % 创建可以存放20帧的帧结构体 for j=1:20 % 该循环“抓拍”20帧画面并存放到F中
surf(sin(2*pi*j/20)*Z,Z); % 画出每一步的曲面(帧) axis(TheAxis); % 使用相同的坐标系。
F(j)=getframe; %“抓拍”帧,并存在到帧结构体 end
movie(F,10) % 回放保存在帧结构体F中的画面,重复10次,帧频12(缺省值) movie2avi(F,’example’); % 制作avi格式的视频动画
注意:“抓拍”到的画面总帧数对动画的播放速度、连续感会产生影响,请将帧数修改为10,重新运行程序观察结果。另,帧数越大帧结构体的内存开销也跟着增加。
四、实验内容及要求
1. 绘制牛顿环干涉条纹图
在牛顿环实验中,假定透镜的曲率半径R=0.855m,入射光波长为589.3nm的钠黄光,实验观察到一幅6mm×6mm大小的牛顿环干涉条纹图。请结合(4)式使用imshow指令对该图像进行静态仿真。
要求:以M文件的形式编写程序,并调试通过,得到的干涉图像存为.jpg文件格式。 2. 空气膜厚度连续变化时的动态仿真
若将图1中的透镜缓慢的向上移动,则每个点处空气薄膜厚度d将连续增加,假设空气膜厚度的变化用?d表示,则薄膜上下表面的反射光之间的位相差由(2)式变化为(5)式:
???2??(2d???2?d)???0???' (5) 2其中,??'?4??d?2代表空气膜厚度变化导致的附加位相差。相应地光强表达式也要修正为:
?r22??dI?sin(?) (6)
R??假设?d的初终值分别为?dstart?0,?dend?2?m。空气膜厚度每变化0.04?m时,绘制一次干涉条纹图像,然后使用getframe命令“抓拍”并存在帧结构体中,直到?d=2?m(使用
循环控制语句,参照例1)。最后用movie命令回放存贮的“画面”形成动画。
要求: 在实验内容1的基础上,结合影片动画技术修改程序,实现空气膜厚度连续增加时
牛顿环实验的动态仿真,观察条纹的变化规律。尝试做思考题2。 提交程序。
五、思考题
1. 在内容1中,如何提高仿真图像的像素使得再现图像更清晰?
2. 在内容2中,假设透镜从上往下移动,即让?d的初终值分别为?dstart?2?m,?dend?0,修改你的程序,观察干涉条纹将如何变化?
正在阅读:
unit3 the million pound bank note Warming up08-24
宗地代码编制规则(试行)04-24
根据轨道根数来计算卫星位置11-27
冀教版三级语文下册生字表04-12
观看《第一书记》心得体会精选模板08-16
疫情防控网格化管理工作经验材料08-27
实例讲解雅思听力题型及答题技巧03-29
炉石传说作死流牧师成为传说解读05-11
- 教育局拟征求中考升学奖励制度
- 2020房地产销售主管年终工作总结
- 虚拟多台位互感器检定装置投资项目可行性分析
- 车间工人辞职报告范本
- 溴投资项目可行性分析
- 改名字申请书怎么写
- 忧与爱作文素材
- 溴苯腈投资项目可行性分析
- 2020清华大学考研复试时间:3月6日至22日
- 2020年蚌埠高考查分系统网址
- 2020年二建《建筑工程实务》测试题及答案(13)
- 生死感悟——人间世观感一
- 武陵源区军地小学观看魏书生《如何当好班主任》讲座录像
- 全球10大安全旅游国出炉日本排名第9
- 企业策划书模板
- 高中英语教师工作总结3篇
- 法定代表人证明范本
- 大学助学金申请书范文1700字
- 案外人申请不予执行仲裁裁决司法解释施行首份申请书递交齐齐哈尔...
- 环球国际房地产开发项目策划
- 实验
- MATLAB
- 仿真
- 牛顿环
- 15秋福师《教育学》在线作业一 答案
- 英语人教九年级上册Unit8单元测试题
- 大学物理(第4版)主编赵近芳-第10章课后答案
- 2009计算机基础试卷A
- 内科护理学血液系统重点
- 2018年中考数学最值问题总结(含答案分析)
- 董事长总经理名录
- 二年级群文阅读课例欣赏
- 人教版数学第23章《旋转》水平测试题
- 语言地理
- 二年级下册数学期中检测题
- 感官评定论文
- 第四届“学用杯”全国数学知识应用竞赛七年级初赛试题(B)
- 构筑高效课堂是校长的职责
- 大学生就业指导课的心得体会
- 数字加网结课论文1
- 全国高考作文错一字扣一分
- 《海底世界》听课反思Microsoft Word 文档
- 管理学原理复习资料(周三多版)
- 2016年甘肃省嘉峪关市事业单位考试模拟冲刺试题1word详解版