【光学】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=2ecos(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 运行结果

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

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

4 参考文献

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

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

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

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

Original: https://blog.csdn.net/qq_59747472/article/details/126473020
Author: Matlab科研工作室
Title: 【光学】Matlab实现迈克尔逊干涉仪动态仿真

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/641833/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球