基于MATLAB的Talbot效应光栅的计算机模拟[1]

发布时间 : 星期四 文章基于MATLAB的Talbot效应光栅的计算机模拟[1]更新完毕开始阅读

错误!未指定书签。

基于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 -

联系合同范文客服:xxxxx#qq.com(#替换为@)