【光学】 基于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代码问题可私信交流。

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


相关文章
|
2天前
|
算法
基于小波变换和峰值搜索的光谱检测matlab仿真,带GUI界面
本程序基于小波变换和峰值搜索技术,实现光谱检测的MATLAB仿真,带有GUI界面。它能够对CO2、SO2、CO和CH4四种成分的比例进行分析和提取。程序在MATLAB 2022A版本下运行,通过小波分解、特征提取和峰值检测等步骤,有效识别光谱中的关键特征点。核心代码展示了光谱数据的处理流程,包括绘制原始光谱、导数光谱及标注峰值位置,并保存结果。该方法结合了小波变换的时频分析能力和峰值检测的敏锐性,适用于复杂信号的非平稳特性分析。
|
1月前
|
机器学习/深度学习 监控 算法
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
本项目基于YOLOv4深度学习网络,利用MATLAB 2022a实现排队人数统计的算法仿真。通过先进的计算机视觉技术,系统能自动、准确地检测和统计监控画面中的人数,适用于银行、车站等场景,优化资源分配和服务管理。核心程序包含多个回调函数,用于处理用户输入及界面交互,确保系统的高效运行。仿真结果无水印,操作步骤详见配套视频。
54 18
|
2月前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于yolov4深度学习网络的公共场所人流密度检测系统matlab仿真,带GUI界面
本项目使用 MATLAB 2022a 进行 YOLOv4 算法仿真,实现公共场所人流密度检测。通过卷积神经网络提取图像特征,将图像划分为多个网格进行目标检测和识别,最终计算人流密度。核心程序包括图像和视频读取、处理和显示功能。仿真结果展示了算法的有效性和准确性。
88 31
|
2月前
|
算法
超市火灾烟雾蔓延及人员疏散的matlab模拟仿真,带GUI界面
本项目基于MATLAB2022A开发,模拟了大型商业建筑中火灾发生后的人员疏散与烟雾扩散情况。算法通过设定引导点指导人员疏散,考虑视野范围、随机运动及多细胞竞争同一格点的情况。人员疏散时,根据是否处于烟雾区调整运动策略和速度,初始疏散采用正态分布启动。烟雾扩散模型基于流体方程,考虑了无风环境下的简化。
|
2月前
|
存储 算法 数据安全/隐私保护
基于方块编码的图像压缩matlab仿真,带GUI界面
本项目展示了基于方块编码的图像压缩算法,包括算法运行效果、软件环境(Matlab 2022a)、核心程序及理论概述。算法通过将图像划分为固定大小的方块并进行量化、编码,实现高效压缩,适用于存储和传输大体积图像数据。
|
3月前
|
传感器 算法 vr&ar
六自由度Stewart控制系统matlab仿真,带GUI界面
六自由度Stewart平台控制系统是一种高精度、高稳定性的运动模拟装置,广泛应用于飞行模拟、汽车驾驶模拟、虚拟现实等领域。该系统通过六个独立的线性致动器连接固定基座与移动平台,实现对负载在三维空间内的六个自由度(三维平移X、Y、Z和三维旋转-roll、pitch、yaw)的精确控制。系统使用MATLAB2022a进行仿真和控制算法开发,核心程序包括滑块回调函数和创建函数,用于实时调整平台的位置和姿态。
|
4月前
|
存储 算法 数据可视化
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
基于 MATLAB的GUI信号处理界面设计 源码+运行截图
145 2
|
4月前
|
算法 决策智能
基于禁忌搜索算法的VRP问题求解matlab仿真,带GUI界面,可设置参数
该程序基于禁忌搜索算法求解车辆路径问题(VRP),使用MATLAB2022a版本实现,并带有GUI界面。用户可通过界面设置参数并查看结果。禁忌搜索算法通过迭代改进当前解,并利用记忆机制避免陷入局部最优。程序包含初始化、定义邻域结构、设置禁忌列表等步骤,最终输出最优路径和相关数据图表。
|
6月前
|
存储 算法 Serverless
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
【matlab】matlab基于DTW和HMM方法数字语音识别系统(源码+音频文件+GUI界面)【独一无二】
103 4

热门文章

最新文章