【光学】 基于matlab模拟光的双缝干涉附GUI

简介: 【光学】 基于matlab模拟光的双缝干涉附GUI

1 简介

物理光学研究的主要现象为光的干涉、光的衍射和光的偏振。其中杨氏双缝干涉理论在光的干涉教学中占有很重要的地位。由于物理光学从光的微观上来

理解光的本质,因此比较抽象。如果不借助于实验现象,学生很难理解其原理。这一直以来都是教学过程中的重点和难点。但是由于实验条件的限制,学生很难在课堂上通过实验来观察光的干涉现象,因此也就无法获得直观的认识。


随着计算机技术的飞速发展,计算机辅助教学(CAI)越来越受到人们的青睐,这为解决上述难题提供 了 途 径。Math Works 公 司 开 发 的 Matlab(MatrixLaboratory)软件是当今国际上公认的在数值计算和可视化图形、图像处理领域最为优秀的工程软件之一,广泛地应用于数学分析、系统仿真、信息光学、数字图像处理等领域。Matlab强大的绘图和动画功能可以生动形象且准确地反映出连续变化的物理光学现象。因此,将Matlab与光学教学有机地结合起来,有助于加深学生对基本概念和现象的理解以及认识,激发学生的学习热情,同时也能够使教学内容更加丰富,从而提高教学质量.本文中,我们采用了计算机仿真技术对杨氏双缝实验进行仿真,课上学生可以形象直观地感受光的干涉现象。可以让学生加深对所学光学内容的认知,把那些过于抽象的光学概念及解析公式简洁明了地呈现在学生面前。


杨氏干涉实验根据干涉屏上光路要通过的形状不同分为双缝干涉和双孔干涉。本文以杨氏双缝干涉为例,阐述其干涉原理。如图1所示,用平行光照射,光到达第一个狭缝,产生点光源S。根据惠更斯-菲涅尔原理,光源S相当于次波源,继续发射球面波,再经过双缝S1和S2,获得相干光源。S1和S2发出的光经过两个不同的传播路径,最后到达观察屏。由于在观察屏不同的位置,两束光的光程差不同,因此出现明暗相间的干涉条纹。设两条缝S1和S2之间的距离为d,狭缝到观察屏之间的距离为D。由于双缝S1和S2相对于中心点来说相互对称并且大小相等,所以可以认为光在通过S1和S2后所发出的两列光波在接收屏P点处的光强度也相等,即I1=I2,则P点处的干涉条纹分布为:

2 部分代码

function varargout = gui_light_13_9(varargin)% GUI_LIGHT_13_9 M-file for gui_light_13_9.fig%      GUI_LIGHT_13_9, by itself, creates a new GUI_LIGHT_13_9 or raises the existing%      singleton*.%%      H = GUI_LIGHT_13_9 returns the handle to a new GUI_LIGHT_13_9 or the handle to%      the existing singleton*.%%      GUI_LIGHT_13_9('CALLBACK',hObject,eventData,handles,...) calls the local%      function named CALLBACK in GUI_LIGHT_13_9.M with the given input arguments.%%      GUI_LIGHT_13_9('Property','Value',...) creates a new GUI_LIGHT_13_9 or raises the%      existing singleton*.  Starting from the left, property value pairs are%      applied to the GUI before gui_light_13_9_OpeningFunction gets called.  An%      unrecognized property name or invalid value makes property application%      stop.  All inputs are passed to gui_light_13_9_OpeningFcn via varargin.%%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one%      instance to run (singleton)".function z_edit_Callback(hObject, eventdata, handles)% hObject    handle to z_edit (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of z_edit as text%        str2double(get(hObject,'String')) returns contents of z_edit as a double% --- Executes during object creation, after setting all properties.function z_edit_CreateFcn(hObject, eventdata, handles)% hObject    handle to z_edit (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows.%       See ISPC and COMPUTER.if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))    set(hObject,'BackgroundColor','white');end% --------------------------------------------------------------------function light_menu_Callback(hObject, eventdata, handles)% hObject    handle to light_menu (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)light_pushbutton_Callback(hObject, eventdata, handles)% --------------------------------------------------------------------function close_menu_Callback(hObject, eventdata, handles)% hObject    handle to close_menu (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)close% --------------------------------------------------------------------function file_menu_Callback(hObject, eventdata, handles)% hObject    handle to file_menu (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)

3 仿真结果

4 参考文献

[1]李芳菊. 利用MATLABGUI模拟双缝干涉[J]. 河南科学, 2011, 29(10):3.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。


相关文章
|
7月前
|
机器学习/深度学习 算法 计算机视觉
m基于yolov2网络的火焰烟雾检测系统matlab仿真,包含GUI界面
YOLOv2算法在MATLAB 2022a中用于火焰烟雾检测,展示了多张检测结果图,成功定位火源和烟雾。该系统基于单次前向传播的深度神经网络,关键改进包括网络架构优化和损失函数设计,结合分类和回归误差。训练涉及ResNet-50预训练模型,使用SGDM优化器,75%数据用于训练,剩余25%为测试。代码示例展示了网络构建、训练选项设置和目标检测器的训练过程。
46 1
|
7月前
|
机器学习/深度学习 算法 安全
m基于深度学习网络的中药识别系统matlab仿真,包含GUI界面
在MATLAB 2022a中,一个基于GoogLeNet的中药识别系统展示了其仿真效果,通过6张图像展示了识别流程。该系统利用深度学习解决传统识别方法的局限,尤其是借助CNN自动提取中药图像特征。核心程序涉及数据集加载、分割、预训练模型加载以及网络调整,如替换GoogLeNet的特征学习层和分类器层以适应中药分类任务。
69 1
|
7月前
|
机器学习/深度学习 算法 计算机视觉
m基于yolov2深度学习的车辆检测系统matlab仿真,带GUI操作界面
MATLAB 2022a中实现了YOLOv2目标检测算法的仿真,该算法从Darknet-19提取特征,以实时预测图像内目标的位置和类别。网络结构结合了网格划分、Anchor Boxes和多尺度预测,优化了边界框匹配。核心代码包括数据集划分、预训练ResNet-50加载、YOLOv2网络构建及训练。训练选项设置为GPU加速,使用'sgdm'优化器,200个周期进行训练。
69 2
m基于yolov2深度学习的车辆检测系统matlab仿真,带GUI操作界面
|
1月前
|
传感器 算法 vr&ar
六自由度Stewart控制系统matlab仿真,带GUI界面
六自由度Stewart平台控制系统是一种高精度、高稳定性的运动模拟装置,广泛应用于飞行模拟、汽车驾驶模拟、虚拟现实等领域。该系统通过六个独立的线性致动器连接固定基座与移动平台,实现对负载在三维空间内的六个自由度(三维平移X、Y、Z和三维旋转-roll、pitch、yaw)的精确控制。系统使用MATLAB2022a进行仿真和控制算法开发,核心程序包括滑块回调函数和创建函数,用于实时调整平台的位置和姿态。
|
2月前
|
存储 算法 数据可视化
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
83 2
|
20小时前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
42 31
|
10天前
|
算法
超市火灾烟雾蔓延及人员疏散的matlab模拟仿真,带GUI界面
本项目基于MATLAB2022A开发,模拟了大型商业建筑中火灾发生后的人员疏散与烟雾扩散情况。算法通过设定引导点指导人员疏散,考虑视野范围、随机运动及多细胞竞争同一格点的情况。人员疏散时,根据是否处于烟雾区调整运动策略和速度,初始疏散采用正态分布启动。烟雾扩散模型基于流体方程,考虑了无风环境下的简化。
|
12天前
|
存储 算法 数据安全/隐私保护
基于方块编码的图像压缩matlab仿真,带GUI界面
本项目展示了基于方块编码的图像压缩算法,包括算法运行效果、软件环境(Matlab 2022a)、核心程序及理论概述。算法通过将图像划分为固定大小的方块并进行量化、编码,实现高效压缩,适用于存储和传输大体积图像数据。
|
2月前
|
算法 决策智能
基于禁忌搜索算法的VRP问题求解matlab仿真,带GUI界面,可设置参数
该程序基于禁忌搜索算法求解车辆路径问题(VRP),使用MATLAB2022a版本实现,并带有GUI界面。用户可通过界面设置参数并查看结果。禁忌搜索算法通过迭代改进当前解,并利用记忆机制避免陷入局部最优。程序包含初始化、定义邻域结构、设置禁忌列表等步骤,最终输出最优路径和相关数据图表。
|
4月前
|
存储 算法 Serverless
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】