【光学】Matlab实现迈克尔逊干涉仪动态仿真

简介: 【光学】Matlab实现迈克尔逊干涉仪动态仿真

1 内容介绍

从光的干涉理论出发,分析了迈克尔逊干涉实验原理和光程差表达式,利用Matlab改变参数对迈克尔逊干涉实验现象进行二维和三维仿真模拟,通过仿真提供了更加直观清晰的实验图像,这对于迈克尔逊干涉仪的实验教学起到很好的相辅作用.

2 仿真代码

%

% 脚本用于绘制迈克尔逊等倾干涉光路图及干涉图像;

%



%% 绘制前处理

clear                                  %清除变量

clc;                                   %清空历史窗口中的内容

close all;                             %关闭所有图形窗口



%% 图像绘制

r_max=1;                               %最大半径(相对坐标)

[h1,h2,hT,R]=Michelson_Draw_1(r_max);  %绘制第一帧图像并得到句柄

theta_i=atan(R);                       %夹角

%pause                                 %暂停



for d=-5:0.05:5        

   e=2*d;

   DD=2*e*cos(theta_i);               %光程差

   I=cos(pi*DD).^2./(1+R.^2);         %相对光强

   set(h1,'YData',[20+d 20+d]);       %M1'位置

   set(hT,'Position',[10 20+d 0]);    %M1'文字标注

   set(h2,'CData',100*I)               %设置光强

   drawnow                            %更新屏幕

   if get(gcf,'CurrentCharacter')==char(27)

       break,

   end                                % 按ESC键退出

%% 保存为gif文件:


gifname = 'Michelson_Draw_1.gif';     %建立一个gif文件

drawnow                               %图像实时更新

frame = getframe(1);                  %获取当前图像作为影片帧

im = frame2im(frame);                 %返回与影片帧关联的图像数据


[imind,cm] = rgb2ind(im,500);         %格式转换


if d == -5

imwrite(imind,cm,gifname,'gif');      %创建一个gif文件

else

imwrite(imind,cm,gifname,'gif','WriteMode','append','DelayTime',0.01);

                                     %向gif文件中添加一张图片

end                                   %结束循环


end

3 运行结果

4 参考文献

[1]邹智星, 胡卫东, 王子涵,等. 基于MATLAB的迈克尔逊干涉仪干涉视频处理[J]. 西南师范大学学报:自然科学版, 2019, 44(7):5.

[2]冯明春, 王玉杰. 基于Matlab对迈克尔逊干涉实验仿真的分析研究[J]. 大学物理实验, 2021.

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

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


相关文章
|
3月前
|
数据可视化
基于MATLAB的OFDM调制发射与接收仿真
基于MATLAB的OFDM调制发射与接收仿真
|
2月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
173 0
|
2月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
|
2月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
2月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
3月前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。
204 15
|
3月前
|
监控
基于MATLAB/Simulink的单机带负荷仿真系统搭建
使用MATLAB/Simulink平台搭建一个单机带负荷的电力系统仿真模型。该系统包括同步发电机、励磁系统、调速系统、变压器、输电线路以及不同类型的负荷模型。
457 5
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于WOA鲸鱼优化的XGBoost序列预测算法matlab仿真
基于WOA优化XGBoost的序列预测算法,利用鲸鱼优化算法自动寻优超参数,提升预测精度。结合MATLAB实现,适用于金融、气象等领域,具有较强非线性拟合能力,实验结果表明该方法显著优于传统模型。(238字)
|
3月前
|
机器学习/深度学习 边缘计算 算法
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
【无人机】无人机群在三维环境中的碰撞和静态避障仿真(Matlab代码实现)
186 0
|
3月前
|
人工智能 供应链 新能源
电动汽车参与运行备用的能力评估及其仿真分析(Matlab代码实现)
电动汽车参与运行备用的能力评估及其仿真分析(Matlab代码实现)

热门文章

最新文章