用MATLAB编程模拟光学实验
所属栏目:计算机应用论文
发布时间:2011-03-18 10:49:45 更新时间:2011-03-18 10:49:45
摘要:随着科学技术的迅速发展,计算机模拟技术已广泛应用在教学和科研当中,本文提出利用MATLAB软件模拟傅里叶光学实验的方法,该方法的优点是操作简单灵活,能完成一般的光学实验。
关键词:MATLAB;光学实验
1引言
美国Mathworks公司推出的MATLAB,是一种集数值计算、符号预算、可视化建模、仿真和图形处理等多种功能于一体的优秀图形化软件。本文介绍了通过MATLAB软件编程模拟光学实验的方法。
计算机模拟为衍射实验的验证提供一条简捷、直观的途径。从而加深了对物理原理、概念和图像的理解。
2仿真方法
大学教学课程中引入计算机模拟技术正日益受到重视,用MATLAB软件做光学试验的模拟,只需要用数学方式表达和描述,省去了大量繁琐的编程过程。下面来介绍利用MATLAB进行光学模拟的方法。
在利用计算机来实现傅里叶变换的过程中,由于计算机中图像的存储使用是数字形式,连续的傅里叶变换不适用于计算机的处理,所以在计算机中的傅里叶变换一般都采用离散傅里叶变换(DiscreteFourierTransform——DFT)。在计算机中使用离散傅里叶变换主要是基于以下几个原因:
(1)离散傅里叶变换的输入输出都是离散值,方便计算机的运算操作。
(2)采用离散傅里叶变换,可以用快速傅里叶变换(FFT)算法来实现,以提高计算速度。
为了降低运算量,在计算离散傅里叶变换时,通常采用快速傅里叶变换来实现,其算法思想:
(1)首先将原图像进行转置。
(2)按行对转置后的图像矩阵作一维FFT,将变换后的中间矩阵再转置。
(3)对转置后的中间矩阵作一维FFT,最后得到的就是二维FFT。
物体图像的生成可以直接由矩阵运算生成,也可利用Windows下的画图工具,生成一幅黑白图像,可调用命令函数imread()输入图像,输入的图像是一个巨大的二维矩阵,利用MATLAB的fft2()命令对该矩阵进行二位离散傅立叶变换,得到图像的频谱,该频谱是一个复数矩阵,然后用取模函数abs()对该复数矩阵取模,得到振幅谱矩阵,利用函数fftshift()对取模后的矩阵进行频谱位移,使直流分量移到频谱中心,从而使FFT频谱可视效果与实际图像相吻合。最后利用imshow()函数将图像显示出来。
3仿真实验结果
3.1矩孔衍射:
3.2圆孔衍射
3.3字母衍射
4总结
通过以上讨论可以看出,利用Matlab强大的影像处理功能模拟傅里叶光学实验是成功的,而且图像也比较逼真,我们认为,傅里叶光学中引入计算机模拟是可行的有必要的,而且具有良好的应用前景。
5参考文献:
1陈怀琛《Matlab及其在理工课程中的应用指南》,西安电子科技大学出版社
2胡守信、李柏年,《基于MATLAB的数学实验》,科学出版社