【光学】基于Matlab模拟干涉条纹图

简介: 【光学】基于Matlab模拟干涉条纹图

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

为了提高光学课程教学效果,采用Matlab编程对光学现象进行模拟仿真.文中以等倾干涉为例,实现了对其干涉条纹和光强分布的模拟演示,实验结果表明:该方法直观形象地展示了光学过程,有利于学生更好地理解相关物理概念,为教学内容和教学手段提供了一条新思路.

⛄ 完整代码

%zernike

clear;

clc;

close all;

[x,y]=meshgrid(-1:0.01:1);

k=36;%多项式项数

Z=cell(1,36);

Z{1,1}=x;

Z{1,2}=y;

Z{1,3}=-1+2*(x.^2+y.^2);

Z{1,4}=x.^2-y.^2;

Z{1,5}=2*x.*y;

Z{1,6}=-2*y+3*x.*(x.^2+y.^2);

Z{1,7}=-2*y+3*y.*(x.^2+y.^2);

Z{1,8}=1-6*(x.^2+y.^2)+6*(x.^2+y.^2).^2;

Z{1,9}=x.^3-3*x.*y.^2;

Z{1,10}=3*x.^2.*y-y.^3;

Z{1,11}=-3*x.^2+3*y.^2+4*x.^4-4*y.^4;

Z{1,12}=-6*x.*y+8*x.*y*(x.^2+y.^2);

Z{1,13}=(10*(x.^2+y.^2).^2-12*(x.^2+y.^2)+3).*x;

Z{1,14}=(10*(x.^2+y.^2).^2-12*(x.^2+y.^2)+3).*y;

Z{1,15}=20*(x.^2+y.^2).^3-30*(x.^2+y.^2).^2+12*(x.^2+y.^2)-1;

Z{1,16}=x.^4-6*x.^2.*y.^2+y.^4;

Z{1,17}=4*x.^3.*y-4*x.*y.^3;

Z{1,18}=15*(x.^2+y.^2).^2.*x+20*(x.^2+y.^2).*x.^3+12*(x.^2+y.^2).*x-16*x.^3;

Z{1,19}=(5*(x.^2+y.^2)-4).*(3*x.^2.*y-y.^3);

Z{1,20}=(15*(x.^2+y.^2).^2-20*(x.^2+y.^2)+6).*(x.^2-y.^2);

Z{1,21}=(15*(x.^2+y.^2).^2-20*(x.^2+y.^2)+6).*(2*x.*y);

Z{1,22}=(35*(x.^2+y.^2).^3-60*(x.^2+y.^2).^2+30*(x.^2+y.^2)-4).*x;

Z{1,23}=(35*(x.^2+y.^2).^3-60*(x.^2+y.^2).^2+30*(x.^2+y.^2)-4).*y;

Z{1,24}=70*(x.^2+y.^2).^4-140*(x.^2+y.^2).^3+90*(x.^2+y.^2).^2-20*(x.^2+y.^2)+1;

Z{1,25}=5*x*(x.^2+y.^2).^2-20*x.^3.*(x.^2+y.^2)+16*x.^5;

Z{1,26}=-6*(x.^2+y.^2).*x.^2.*y+14*x.^4.*y-3*x.^2.*y.*(x.^2+y.^2)-2*x.^2.*y.^3+(x.^2+y.^2).*y.^3;

Z{1,27}=(6*(x.^2+y.^2)-5).*((x.^2+y.^2).^2-8*(x.^2+y.^2).*x.^2+8*x.^4);

Z{1,28}=(6*(x.^2+y.^2)-5).*(4*x.^3.*y-4*x.*y.^3);

Z{1,29}=(21*(x.^2+y.^2).^2-30.*(x.^2+y.^2)+10).*(-3*x*(x.^2+y.^2)+4*x.^3);

Z{1,30}=(21*(x.^2+y.^2).^2-30.*(x.^2+y.^2)+10).*(3*x.^2.*y-y.^3);

Z{1,31}=(56*(x.^2+y.^2).^3-105*(x.^2+y.^2).^2+60*(x.^2+y.^2)-10).*(x.^2-y.^2);

Z{1,32}=(56*(x.^2+y.^2).^3-105*(x.^2+y.^2).^2+60*(x.^2+y.^2)-10).*(2*x.*y);

Z{1,33}=(126*(x.^2+y.^2).^4-280*(x.^2+y.^2).^3+210*(x.^2+y.^2).^2-60*(x.^2+y.^2)+5).*x;

Z{1,34}=(126*(x.^2+y.^2).^4-280*(x.^2+y.^2).^3+210*(x.^2+y.^2).^2-60*(x.^2+y.^2)+5).*y;

Z{1,35}=252*(x.^2+y.^2).^5-630*(x.^2+y.^2).^4+560*(x.^2+y.^2).^3-210*(x.^2+y.^2).^2+30*(x.^2+y.^2)-1;

Z{1,36}=924*(x.^2+y.^2).^6-2772*(x.^2+y.^2).^5+3150*(x.^2+y.^2).^4-1680*(x.^2+y.^2).^3+420*(x.^2+y.^2).^2-42*(x.^2+y.^2)+1;

%单位圆内

mask=double((x.^2+y.^2)<=1);

for i=1:k

   Z{1,i}=Z{1,i}.*mask;

end


%显示泽尔尼克系数

for i=1:k

   subplot(6,6,i),imshow(Z{1,i},[]);

end


%a+(b-a)rand(m,n) ,[a,b]区间m,n维随机数生成

%计算相位P(x,y),ai根据论文取随机数


% 输出

num=100;%输出数量

for n=1:num

   for i=1:k %ai是泽尔尼克基函数的系数,根据论文给出的范围来定

     if i==1 %a1=0,P0=0

       P=0;

     end

     if i==2||i==3 %ai 0,5

       P=5*rand(1)*Z{1,i}+P;

     end

     if i==4 %ai -5,5

       P=-5+10*rand(1)*Z{1,i}+P;

     end

     if i>=5&&i<=9 %ai -0.3,0.3

       P=-0.2+0.6*rand(1)*Z{1,i}+P;

     end

     if i>=10&&i<=36 %ai -0.03,0.03

       P=-0.03+0.006*rand(1)*Z{1,i}+P;

     end

   end

 P=pi*P.*mask;

 w=0.2+0.8*rand(1);%w是0.2,1上的随机数

 A0min=0.5/(1+w+2*sqrt(w));%A0范围下限

 A0max=0.95/(1+w+2*sqrt(w));%A0范围上限

 A0=A0min+(A0max-A0min)*rand(1);%生成振幅强度A0

 x0=-0.2+0.4*rand(201,201);

 y0=-0.2+0.4*rand(201,201);%x0,y0表示光点在x和y方向上的偏移,这两个方向都是在[0.2,0.2]范围内随机生成的

 derta=0.9+0.2*rand(1);%光束宽度0.9,1.1

 %激光源参考光强度

 Ir=A0*exp(-(((x-x0).^2+(y-y0).^2)/derta^2));%越靠中间(x-x0).^2+(y-y0).^2)越小,越亮

 % c=cos(P);%cos相位

 A=(w+1)*Ir;%背景光强

 B=2*sqrt(w)*Ir;%调制光强

 I=A+B.*cos(P);%条纹图

 I=I.*mask;

 name=num2str(n);

 I=imresize(I,[256,256]);

 imwrite(I,['.\fringes\',name,'.jpg']);

end

% figure(5),imshow(A,[]);

% figure(6),imshow(B,[]);

% figure(7),imshow(A+B.*cos(P),[]);

⛄ 运行结果

⛄ 参考文献

[1]杨艳丽, 郝蕴琦, 任玉芬,等. 基于MATLAB的光学干涉实验仿真[C]// 中国计算机用户协会网络应用分会2019年第二十三届网络新技术与应用年会. 0.

⛄ Matlab代码关注

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

❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
7月前
|
编解码
MATLAB | 科研绘图第十一期动态趋势图
MATLAB | 科研绘图第十一期动态趋势图
72 0
|
7月前
|
存储 编解码
MATLAB | 科研绘图第十八期散点密度图
MATLAB | 科研绘图第十八期散点密度图
217 0
|
7月前
|
存储 编解码
MATLAB | 科研绘图第十九期散点密度图强化版
MATLAB | 科研绘图第十九期散点密度图强化版
114 0
|
7月前
|
编解码
MATLAB | 科研绘图第二十三期箭头图
MATLAB | 科研绘图第二十三期箭头图
86 0
|
5月前
|
算法 数据可视化 图形学
网络通信系统的voronoi图显示与能耗分析matlab仿真
在MATLAB2022a中,该程序模拟了两层基站网络,使用泊松分布随机生成Macro和Micro基站,并构建Voronoi图。它计算每个用户的信号强度,选择最强连接,并分析SINR和数据速率。程序还涉及能耗计算,包括传输、接收、处理和空闲能耗的分析。Voronoi图帮助可视化网络连接和优化能源效率。
|
7月前
|
数据安全/隐私保护
matlab批量计算地震加速度反应谱、速度谱、位移谱,伪速度谱、伪加速度谱;反应谱对比图
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
7月前
|
算法 计算机视觉
基于表面法线法的二维人脸图构建三维人脸模型matlab仿真
该内容概述了一个使用MATLAB2022a的二维人脸图像三维重建算法。首先,通过人脸检测和对齐,然后运用深度信息估计技术(如Shape from Shading)获取表面法线。接着,结合预训练的三维人脸模型库和二维关键点,通过迭代优化和全局优化构建三维模型。核心程序涉及图像处理、光源方向转换、反射率和表面法线计算,最终重构高度图并显示结果。该方法依赖多视角图像,单幅图像重建可能存在挑战。
|
7月前
|
Shell
MATLAB 求解特征方程的根轨迹图稳定性分析
MATLAB 求解特征方程的根轨迹图稳定性分析
|
7月前
matlab脉冲响应图的时域特征
matlab脉冲响应图的时域特征
|
7月前
|
编解码
MATLAB | 科研绘图第十期四象限的正弦图
MATLAB | 科研绘图第十期四象限的正弦图
74 0