matlab光学教程,基于MATLAB的物理光学仿真

摘要:利用MATLAB编程语言对典型物理光学实验进行了仿真模拟,制作了包括干涉、衍射、信息光学、晶体光学实验在内的光学实验仿真平台,可应用到光学理论和实验教学中,使整个抽象的物理过程变得直观形象,增强了学生的学习兴趣,提高了物理光学课程的教学水平。

关键词:物理光学;MATLAB;仿真

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)44-0100-03

一、引言

《物理光学》课程是我院直通车军用光电工程专业开设的一门重要的专业基础必修课,它是研究光的基本属性、光的传播规律、光与物质相互作用以及相关应用的学科,也是一门应用性很强的学科。该课程的学习将与后继课程,如光电技术、激光技术、光纤通信等有密切关系,也是学员今后开展军用光电装备保障工作的基础。因此,教学质量的好坏直接关系到学员对今后专业课程的学习效果以及将来的岗位任职需要[1]。

当前信息技术飞速发展,计算机辅助教学已被广泛应用于各学科教学中[2]。而我院的《物理光学》课程教学依然主要沿用传统的“口授、耳听、笔演”的教学模式,尚未找到一种可以很好地囊括教学内容的辅助教学软件。基于此,笔者构建了基于MATLAB的物理光学仿真平台,有效地提高了课堂教学效率,改善了当前课时压缩和教学内容有增无减的矛盾现状。

二、平台简介

物理光学实验仿真平台主要包括四个模块,分别为:干涉实验、衍射实验、信息光学和晶体光学,其总体构架如图1所示。其中干涉实验主要包括杨氏双缝干涉、牛顿环和迈克尔逊干涉仪等典型干涉现象的仿真。衍射实验主要包括单缝衍射、光栅衍射、圆环衍射以及圆孔、矩孔、三角孔的衍射仿真,通过分析这些仿真结果,可以较好地掌握衍射现象的普遍规律。信息光学部分主要是对高通和低通滤波进行了模拟仿真。晶体光学部分包括平行偏振光干涉和会聚偏振光的干涉。

三、各模块的仿真实现

(一)干涉实验仿真

(二)衍射实验仿真

在这部分,主要是对几种不同孔径的夫琅和费衍射进行了仿真。夫琅和费衍射的仿真方法有两种:一种是傅里叶变换方法,另一种是利用衍射积分公式进行数学计算。两种方法相比较,傅里叶变换方法编程简单、语句少、速度快。选取圆孔夫琅和费衍射为例,对其进行模拟仿真。首先利用两个for循环语句生成圆孔衍射孔径,再利用函数fft2()对衍射孔径的场分布进行傅里叶变换,从而得出观察平面的频谱,利用取模函数abs()对该复数矩阵取模,得到振幅谱矩阵;再利用函数fftshift()对取模后的矩阵进行频谱位移。核心程序如下:

最后,利用imshow、plot和mesh函数绘出观察屏上的衍射图样、光强二维分布、光强三维分布图。仿真结果如图4所示。与干涉实验仿真模块类似,也设计了滑动条来连续改变实验参数。

(三)信息光学仿真

在信息光学部分,主要对空间滤波中的高通和低通滤波进行了仿真。首先采用imread函数读入一幅图像,存入二维矩阵,调用fft2函数对输入图像进行傅里叶变换,依据滤波要求选择合适的滤波函数T(u,v),将傅里叶变换结果与滤波函数T(u,v)相乘,调用傅里叶逆变换函数ifft2对相乘结果作变换得到输出图像,利用imshow函数将图像显示出来。高通滤波和低通滤波的仿真结果分别如图5和图6所示。

(四)晶体光学仿真

晶体光学部分,主要对偏振光干涉结果进行了仿真。偏振光干涉装置如图7所示,其中P1、P2为偏振片,W为波片。在常见的偏振光干涉装置中,偏振片P1和P2的透光轴方向放置成互相垂直或平行。通过光波的振动分解,得到干涉场的光强分布。P1和P2垂直时,干涉场形成的干涉条纹和光强曲线如图8所示。对于会聚偏振光干涉,通过MATLAB编程后,仿真干涉图样如图9和10所示。

四、结语

《物理光学》课程理论性强,内容晦涩难懂,传统的课堂教学不可能把实验器材搬到教室供学员操作。基于MATLAB制作的物理光学实验仿真平台,可实现实验参数的连续调节和图像的动态显示,能够应用到光学理论和实验教学中,增强学生对理论知识的理解,提升学生的学习兴趣,提高物理光学课程的教学水平。

参考文献:

[1]毛少娟,陈玉丹,华文深.物理光学课程信息化教学改革[J].中国教育技术装备,2015,(20):102-103.

[2]李继军.Matlab GUI在光学仿真中的应用[J].通化师范学院学报,2010,31(2):52-54.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php jwt token刷新方案,laravel JWT自动刷新 自定义验证器

在前面的文章中,我们引入了JWT的验证方式,但是在前面并没有做过多的处理,只是用JWT生成了一个token,那么今天来就解决后续问题为了保证用户信息的安全, 我们的生成的JWT不可能一直有效,我们在配置文件里边配…

php orm 链式,关于php:雄辩的ORM中的交叉和分页

大家好,我有3张桌子:具有以下属性的名为content的表:idnametable_type_idrelease_datepopularity另一个名为content_genres的表,具有以下属性:content_idgenres_id另一个具有以下属性的表,称为genres&#…

2019java形势,2019Java开发还有哪些发展

相信已经有不少人在心里考虑着春节之后转行新工作了吧,而在众多行业中IT行业,特别是Java开发、Java程序员等岗位相信是很多人的首选。谁让现在程序员薪资这么高呢,但是现在互联网发展迅速,各类编程语言层出不穷,比如py…

php取消转译代码,PHP在我不需要的时候进行转义

我有一个问题,即PHP在我不希望它出现在代码中的地方进行转义:$url_ stripslashes(((substr(strtolower($url),0,7)!"http://")? "http://".$url:$url));$host $this->googleDomains[mt_rand(0,count($this->googleDomains)-1)];$target "/s…

matlab给plc发送命令,想学习下如何将PLC发送的指令让软件接收到?

PLC作为下位机,接收上位机的执行命令,并将执行结果反馈给上位机。工具/原料电脑、PLC、USB转RS232数据线和RS232转RS485模块(或者USB转RS485)方法/步骤PLC与电脑线路连接,根据电脑的串口情况,1.电脑自带RS232串口,那么…

mysql允许两个用户远程连接,配置MySQL服务允许用户远程连接

默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件。一、修改/etc/mysql/my.conf找到bind-address 127.0.0.1这一行改为bind-address 0.0.0.0即可二、为需要远程登录的用户赋予权限1、新建用户远程连接…

pupload 文件分块 php,基于Plupload实现Base64分割的文件上传方案

标题:基于Plupload实现Base64分割的文件上传方案关键词:文件上传、Base64、Plupload、Blob、分割上传领域:Web前端作者:孙振强日期:2018-04-13目录背景存在问题2.1. 体积增加1/32.2. 大文件上传不稳定方案思路3.1. 将服…

php imagick手册,PHP中使用Imagick实现各种图片效果实例

这篇文章主要介绍了PHP中使用Imagick实现各种图片效果实例,本文讲解了偏置图像、改变图片大imagick是一个功能强大的图像处理库。说是翻译 其实就是简要介绍imagick 的主要功能的或者说是我觉得比较实用的功能函数的介绍 以及使用的例子。因为本人的英语水平有限,所…

php流程控制的类型有哪些,流程控制包括哪些内容

流程控制也称为控制流程,是计算机运算领域的用语,其内容包括在程序运行时,个别的指令或是陈述、子程序运行或求值的顺序,不论是在声明式编程语言或是函数编程语言中,都有类似的概念。控制流程(也称为流程控制)是计算机…

PHP公鸡五文钱,公鸡

中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?实现过程&#…

oracle11g创建闪回分区多大,Oracle闪回区大小预估

一个朋友问如何设置Oracle闪回区大小,有什么依据没有。查证官方文档,有如下描述For example, if you intend to setDB_FLASHBACK_RETENTION_TARGET to 24 hours, and if the database generates 20 GB of redo in a day, then a rule of thumb is to all…

平方变换法提取载波MATLAB,毕业设计(论文)MPSK信号的载波同步算法研究与仿真.doc...

目录摘要IAbstractII第一章 绪论1相移键控技术1第二章 载波同步原理22.1平方变换法和平方环法22.2 同相正交3第三章 相移键控(PSK)信号的调制原理63.1 二进制相移键控的基本原理63.2 二进制差分相移键控(DPSK)的基本原理83.3 多进制相移键控(MPSK)的基本原理113.3.1 QPSK调制原…

oracle dba_waiters中的lockid是什么,查杀oracle lock session and table

查杀oracle 死锁的一些帖子摘录[more]查找死锁进程column sid format 999;column b format 9;column object_name format a30;select v$lock.sid,decode(v$lock.type,MR, Media Recovery,RT,Redo Thread,UN,User Name,TX, Transaction,TM, DML,UL, PL/SQL User Lock,DX, Distri…

查询linux服务器事物传输失败日志,查看fail2ban日志代替lastb查看登录失败记录

之前我曾经用shell脚本提取lastb登录失败超过指定次数的IP加入到iptables,来禁止这些IP登录主机,达到防止恶意攻击的目的。后来为了给主机提供更全面的防护,又安装了fail2ban。今天早上我收到fail2ban发过来的报警邮件提示我禁止了一个IP登录…

文件字符串变量插入linux,Linux Shell脚本实现在文件指定的行插入字符串

涉及知识点:grep字符串查找,awk截取列,until条件操作,sed字符串插入,变量与字符串连接等。人工操作(首先vim打开文件找到字符串所在的位置,插入操作):vim /etc/glance/glance-api-paste.ini# Li…

linux系统子接口配置文件,Linux网卡绑定、子接口-IP别名

查看网卡线缆状态:mii-tool eth0查看网卡底层信息:ethtool eth0ethtool -i eth0 查看网卡驱动信息ethtool -S eth0 查看网卡状态统计信息Linux下可以通过IP别名(子接口)功能为一个物理网卡添加多个IP地址要使用IP别名(子接口)需要关闭NetworkManager服…

linux防火墙允许dns服务,Linux防火墙设置-DNS服务器篇

亲测可用,对于刚刚搭建了DNS服务器,需要开启防火墙但又不知道该怎么设置的朋友,可以参考下面的内容,或者直接使用我下面给出的脚本程序。如果服务器是作为DNS服务器使用的,针对绝大多数的情况,为了开启防火…

发布react项目到linux服务器,nginx上部署react项目的实例方法

测试项目:react-demo克隆你的react-demo项目到服务器上(默认使用Github管理我们的项目)如果需要,请安装项目环境,比如:node.js,yarn等进入项目目录,执行npm run build,开始构建项目构建成功之后…

linux取消线程的原理,浅析 Linux 进程与线程

简介进程与线程是所有的程序员都熟知的概念,简单来说进程是一个执行中的程序,而线程是进程中的一条执行路径。进程是操作系统中基本的抽象概念,本文介绍 Linux 中进程和线程的用法以及原理,包括创建、消亡等。进程创建与执行Linux…