基于MATLAB的Talbot效应光栅的计算机模拟
更新时间:2024-04-04 11:21:01 阅读量: 综合文库 文档下载
错误!未指定书签。
基于MATLAB的Talbot效应光栅的计算机模拟 四川省通江县陈河小学 张洪 摘要 计算机模拟技术广泛应用在教学和科研中,在Talbot效应实验中引入计算机能更深
动和深入揭示光学现象的物理内涵,本文提出利用MATLAB模拟Talbot效应光学实验方法,例如用条纹光栅和网格光栅模拟的Talbot效应,模拟的结果很好,还可以简单分析Talbot效应在不同距离所产生的不同现象。该方法的优点是操作简单灵活,能完成一般光学中较难实现的操作,并给出Talbot效应的实验结果。
关键词:计算机模拟;MATLAB;光栅;Talbot效应;自成像
绪论
在大学理工科课程的教学中引入计算机模拟技术正日益受到重视,关于物理图形比如光学实验图像的模拟,已经有人做过一些工作
[1,2],但还较少见到有人利用MATLAB 软
件做模拟光学实验的工作。光学信息处理具有容量大、速度快、装置简单等优点,但在复杂和精密光路设计过程中为了获得最佳的光学信息处理效果,需要进行纷繁的计算和困难的实验验证。而计算机模拟技术可以为光路设计、相关光学器件的设计以及图像处理提供一条简捷的途径。 利用MATLAB 模拟光学实验简单灵活,操作者可以在计算机上自由设计图形的形状、尺寸以及实验参数变量,不受实际实验室条件的限制,能完成实际中较难完成的操作
[3],从而加深了对物理原理、概念和图像的理解。 因此,在Talbot效
应光学实验中引入计算机模拟技术是必要的。介于此,本文介绍怎样利用MATLAB 来模拟Talbot效应光学实验,并给出了利用此模拟技术解决的Talbot效应光学实验的模拟,以及Talbot效应光学原理的相干光学信息处理应用的实验模拟。
第一章 Talbot效应
1 Talbot效应的原理
1.1 Talbot效应的概念
通常的情况下要得到一个物体的光学像,一个光学成像系统是必不可少的,最简单的是用一个透镜将物体发出的或散射的光聚集在像面上而得到物体的像。但是,在1836年Talbot却发现:当用相干光照射光栅时,在离光栅某些特定的距离上,能够形成光栅的像,这一现象称为Talbot效应。它告诉我们:在相干光场中,周期性的物体能自成像,
- 1 -
西南石油学院2005届本科毕业设计
称为无透镜自成像或Talbot效应自成像。
Talbot效应有许多有意义的应用。例如可以用来检验和复制衍射光栅,确定光束的准直性,实现图像相减以及构成Talbot干涉仪检测位相物体;借助于叠栅条纹技术来确定出Talbot像面位置,从而由Talbot成像位置公式计算出光波波长等。
第二章 计算机模拟Talbot
2 计算机模拟方法
2.1 常用的傅立叶变换光路
光路系统(4f系统)
L1:准直透镜;L2,L3为傅立叶透镜。 频谱面是平面,空间频率
??x1?f1??y1?f1。 (2-1)
物像比例关系:
M?dx'dx0?dy'dy0?f2f1 (2-2)
2.2 傅立叶变换的定义与MATLAB计算??
4设序列x(n)长度为M,则x(n)的N(NN?1?M)点离散傅立叶变换对定义为
X(k)?DFT[x(n)]??n?0x(n)WknN,k?0,1,2...,N?1 (2—3)
x(n)?IDFT[X(k)]?1NN?1?k?0X(k)WN?kn,n?0,1,2,...,N?1 (2—4)
其中, WN?j2?N?e,N称为DFT变换区间长度。
可以把X(k)这个式子写成矩阵乘法运算
X(k)?xnWnk (2—5)
- 2 -
错误!未指定书签。
其中,xn为序列行向量,Wnk是一N?N阶方阵,通常称为旋转因子矩阵。
(2—6) xn?[x(0),x(1),x(2),...,x(N?1)]
?WN?1?0WN?Wnk??...?(N?1)?0?WN?0?0WN0?1............WN1?1...WN(N?1)?1??1?(N?1)WN??...?(N?1)?(N?1)WN??WN0?(N?1) (2—7)
(3)式用MATLAB矩阵运算表示为: Wnk?WN.^([0:N?1]?[0:N?1])' (2—8)
因此,可得到用矩阵乘法计算N点DFT的程序如下。 %用矩阵乘法计算N点DFT
clear all
x n =input (‘请输入序列x=’) N =length (xn ) ; n =0:N -1; k =n ;
nk =n ‘*k;
WN=exp(-j*2*pi/N); Wnk=WN.^nk; Xk=xn*Wnk;
只要输入序列x(n),运行该程序,即可实现x(n)的N点DFT,这种计算离散傅立叶变换的方法概念清楚,编程简单,Talbot效应的计算机模拟主要过程就是 傅立叶正变换和逆变换,所以要清楚它的计算机实现过程。MATLAB基础部分提供了fft,ifft,fft2和ifft2等快速傅立叶变换函数,它使DFT的运算速度量提高了若干数量级,我们在进行傅立叶正变换和逆变换时,只要调用fft和ifft及fft2和ifft2,高维则用fftn和ifftn就行了。
在光线通过图1—3中的扩束镜C的时
- 3 -
西南石油学院2005届本科毕业设计
候,扩束镜C就是光空间的时域特性变成空间的频域特性,就是把光经过一次二维的傅立叶变换(fft2),当光再次通过准直镜L时,就把光的空间的频域特性变成空间的时域特性,也就在经过一次二维反傅立叶变换(ifft2),Talbot就是基于这种特性形成无透镜成像的。
2.3 计算机模拟过程
根据公式(1-1),我们要产生一个周期性光栅,但是公式中的cm很难确定,即使cm确定了,计算投射系数g(x0)也很难,我们就想办法避开计算g(x0)也能达到相同的计算效果。计算机模拟Talbot效应程序流程如图2—2所示。
具体操作过程是:物体图像的生成可以直接由矩阵运算生成,也可利用Windows 下的画图工具,生成一幅二值图像(属性为黑白) ,并将建立的图像存入MATLAB 的工作目录( \\ work) 下. 然后调用命令函数imread() 输入图像,输入图像是一个二维矩阵。在此,我们的周期性光路图像直接由矩阵运算生成。
例如模拟周期性条纹光栅程序:
f=zeros(1000,1000); for i=0:10; f(20+i:22:990+i,:)=1; end
imshow(f )
在这里,有必要对各个语句作用进行说明
f=zeros(1000,1000); 是产生一个1000?1000的全0矩阵,也就是在MATLAB图形窗口显示全黑的图形。语句结尾以分号结束,这样抑制屏幕输出,可以节省大量的运算时间。
for i=0:10; 是一个循环语句,结构形式为:for,?,end的格式,进行循环语句计算。
f(20+i:22:990+i,:)=1; 在1000?1000的全0矩阵中,令f的值从20行开始,循环11次,间隔为22行,一直到990+i结束的值为1,意思就是光栅缝,让光通过,其余不让光通过,这样就形成周期性光栅。
end 它和for语句形成循环嵌套,要有end语句,程序才能结束循环。 imshow(f) 一幅图形的方式显示f图像。 全零矩阵和光栅图像如下:
- 4 -
错误!未指定书签。
2.3.1 模拟过程
因为Talbot效应需要周期性光栅,最直接简单的方法就是用MATLAB程序编写一个周期性光栅,如前面所述,先建立一个周期性条纹光栅,检验模拟Talbot效应是否成立。设一维周期光栅的透射系数是一个矩形波函数,其复振幅透过率为
?g(x0)??m???cmexp(j2?mdx0)(m?0,?1,?2,?) (2—9)
在这里,我们用光栅为
f模拟了g(x0),对g(x0)作傅立叶变换得物y分布的空间频率
?G(?0)??m???cm?(??md) (2—10)
由菲涅耳其程序如下所示 H(?)?exp(jkz)exp(?j??z?)2 (2—11)
在这里,我们对传递函数H(?)作了特定的处理,也就是在Talbot距离看到光栅像的条件,当z2nd2??(n?1,2,3,?)时,exp(?j??z?)?1,这时传递函数
2 H(?)?exp(jkz) (2—12)
- 5 -
西南石油学院2005届本科毕业设计
这里k为空间角频率,z为Talbot距离,n为1。
空间频率和传递函数作用时,就得到空间频脯,再作傅立叶逆变换,就可以得到原图像的像。
2.3.2 模拟Talbot效应条纹光栅程序及图像
在MATLAB 中, 矩阵的乘法运算有两种: 乘(符号为“* ”) 和点乘(符号为“.* ”) ,“* ”即按通常的矩阵乘法运算进行:“.* ”是两个矩阵按对应的矩阵元的相乘, 在对光学系统的仿真的过程中, 我们是采用点乘的方法来实现对光学图像的变换的。下面用MATLAB分别对前面提到的两种光学图像识别的方法进行仿真。当Talbot距离是常数时,那么它的菲涅耳传递函数就是一个常数,就相当于常数乘以一个矩阵,所以就用乘号(符号为“* ”)。
clear all
f=zeros(1000,1000); %产生1000?1000的全0矩阵 for i=0:10; %i从0到10循环,间隔为1
f(20+i:22:990+i,:)=1; %产生一个缝宽为11,间隔为22的周期光栅 end %结束循环语句
y=fft2(f); %对f进行二维傅立叶变换 d=22; %光栅间距 Lam=6.325e-002 ; %照射光栅的波 k=2*pi/Lam; %空间角频率
z=2*d^2/Lam; %当n=1是的Talbot距离 H=exp(j*k*z); %菲涅耳传递函数 r=H*y; %观察平面的场分布
f0=ifft2(r); %对r进行二维傅立叶变换 subplot(1,2,1),imshow(f) %显示f subplot(1,2,2),imshow(f0) %显示f0
- 6 -
错误!未指定书签。
在距离光栅z?2d2/?的距离上,这时的z称为Talbot距离,可以观察到物体的像,
重现光栅严格的像,称为傅立叶像。由于避免了透镜系统的相差,自成像的本领是相当高的。
我们再用周期性的光栅代替条纹光栅,验证以上结论是否成里,下面我们用典型的网格光栅。程序和上一个程序类似。主要是产生一个网格光栅,其程序如下所示:
clear all
f=zeros(1000,1000); %产生1000?1000的全0矩阵
for i=0:10; %i从0到10循环,间隔为1 for s=0:10; %s从0到10循环,间隔为1 f(10+i:22:990+i,10+s:22:990+s,:)=1; %产生一个网格光栅 end %结束循环语句 end %结束循环语句 imshow(f)
模拟出的网格图像如图所示:
2.3.3 模拟Talbot效应的网格光栅程序及图像
Clear all
f=zeros(1000,1000); %产生1000?1000的全0矩阵 for i=0:10; %i从0到10循环,间隔为1
for s=0:10; %s从0到10循环,间隔为1 f(10+i:22:990+i,10+s:22:990+s,:)=1; %产生一个网格光栅
end %结束循环语句
end %结束循环语句 y=fft2(f); %对f进行二维傅逆叶变换 d=22; %光栅间距
Lam=6.325e-002; %照射光栅的波长
- 7 -
西南石油学院2005届本科毕业设计
k=2*pi/Lam; %空间角频率
z=2*d^2/Lam; %当n=1是的Talbot距离 H=exp(j*k*z) %菲涅耳传递函数 r=H*y; %观察平面的场分布
f0=ifft2(r); %对r进行二维傅立叶变换 subplot(1,2,1),imshow(f) subplot(1,2,2),imshow(f0)
2.3.4 分情况讨论Talbot效应
现在,我们研究距离zT在一般情况下的光栅像 (1) 当zT?nz(n?1,2,3...)时,我们可以观察到严格的光栅像,和在Talbot距离
上观察的像一样,称为Talbot效应傅立叶像,下面,我们以条纹光栅来观察物和像,我们可以随便令n?3时,运行下面的程序:
Clear all
f=zeros(250,250); %产生250?250的全0矩阵 for i=0:10; %i从0到10循环,间隔为1
f(20+i:22:240+i,:)=1; %产生一个缝宽为11,间隔为22的周期光栅 end %结束循环语句
y=fft2(f); %对f进行二维傅立叶变换 d=22; %光栅间距
Lam=6.325e-002; %照射光栅的波长 k=2*pi/Lam; %空间角频率 n=3:
z=2*n*d^2/Lam; %当n=1是的Talbot距离 H=exp(j*k*z); %菲涅耳传递函数
- 8 -
错误!未指定书签。
r=H*y; %观察平面的场分布
f0=ifft2(r); %对r进行二维傅立叶变换 subplot(1,2,1),imshow(f) %显示f Subplot(1,2,2),imshow(f0) %显示f0 程序运行结果如下:
我们看到光栅物f和光栅像f0一样的,也就是有严格的光栅像,而且上图还可以观察的光栅像是等大的正像,只是像f0白色区域的透光部分变暗了,这是因为入射光的光强随zT的
距离变换而变化,当zT的距离太长时,光强损耗十分明显,所以光栅像f0透光的白色比光栅物f透光的白色有所变暗。我们将在MATLAB界面演示窗里运行n为其他值的物和像的区别。
(2) 同理当zT?(2n?1)z/4时,将观察到倍频菲涅耳像,在此,我们令n?3时的
情况,运行以下程序:
clear all
f=zeros(250,250); %产生250?250的全0矩阵 for i=0:10; %i从0到10循环,间隔为1
f(20+i:22:240+i,:)=1; %产生一个缝宽为11,间隔为22的周期光栅 end %结束循环语句
y=fft2(f); %对f进行二维傅立叶变换 d=22; %光栅间距
Lam=6.325e-002; %照射光栅的波长
- 9 -
西南石油学院2005届本科毕业设计
k=2*pi/Lam; %空间角频率 n=3:
z=2*d^2/Lam;
Zt=(2*n+1)*z/4; %当n=3是的Talbot距离 H=exp(j*k*Zt); %菲涅耳传递函数 r=H*y; %观察平面的场分布
f0=ifft2(r); %对r进行二维傅立叶变换 subplot(1,2,1),imshow(f) %显示f subplot(1,2,2),imshow(f0) %显示f0
程序运行结果如下:
(3) 当zT
?(2n?1)z/2时,观察到反傅立叶像,我们也令n?3的情况
- 10 -
错误!未指定书签。
我们看不到反相的傅立叶像,因为我们所显示的图像实际是反相傅立叶像,
结论
当zT的距离不同时,会出现不同的情况。 (1) 当zT?nz(n?1,2,3...),会观察到严格的光栅像,和在Talbot距离上观察的像
一样,从用户界面上依次输入n时,比如n从1到20,光栅像会由明到暗,再由暗到明,周期循环,这是光的干涉和衍射在不同的位置形成的光强不同
(2) 当zT?(2n?1)z2(n?1,2,3...)时,我们会看到反相(傅立叶)像,但是周期
性的光栅不好区分正像和反像。同理,输入的n值不同,也会在干涉和衍射的不同的位置光栅像有明有暗。而其他距离时不能形成明显的物像关系。以上的理论分折和实验结果表明,周期物体的Talbot自成像条件与自成像距离条件z 有关。
参考文献
[1] 沈为民,杜茂森,刘东旭. 大学物理,2000 ,19(8) :44 [ Shen WM, DuMS , Liu D X.
College Physics , 2000 ,19(8) :44 ( in Chi2nese) ]
[2] 喻力华,赵维义. 大学物理,2001 , 20 (1) :22 [ Yu L H, ZhaoW Y. College Physics , 2001 ,20(1) : 22 (in Chinese) ]
[3] 孙兆林. MATLAB 6. x 图像处理. 北京: 清华大学出版社,2002. 5 [ Sun ZL.
MATLAB 6. x Image Processing. Beijing : Ts2inghua University Press , 2002. 5(in
- 11 -
西南石油学院2005届本科毕业设计
Chinese) ]
[4] 陈怀琛,吴大正,高西全. MATLAB及在电子信息课程中的应用.北京:电子工业
出版社.2004.199-200
- 12 -
正在阅读:
基于MATLAB的Talbot效应光栅的计算机模拟04-04
浅谈初中物理优生的培养-精品文档03-11
北京市第四中学高二语文学生优秀作文 家风伴我成长素材04-14
EMS转版阐述题汇总(大杂烩)05-25
五年级全套(上下册)名校奥数教程教案及试题(含答案)04-14
善待你所在的单位05-20
宁波众茂杭州湾热电有限公司3×130th 3×B12MW三期扩建工程环境04-27
19版高考英语一轮复习精选晨背热点话题(九)旅游与交通讲义10-05
部编二年级上册语文教学计划04-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 光栅
- 效应
- 基于
- 模拟
- 计算机
- MATLAB
- Talbot