【光学】Matlab模拟几何光学中的球差、彗差、像散、场曲四种像差

简介: 【光学】Matlab模拟几何光学中的球差、彗差、像散、场曲四种像差

1 内容介绍

模拟几何光学中的球差、彗差、像散、场曲四种像差。

   其主要功能为:(1) 绘制球差的光路图与分析图;

                          (2) 绘制彗差的光路图与分析图;

                          (3) 绘制像散的光路图;

                          (4) 绘制场曲的光路图;

                          (5) 绘制像散的光路图;

2 仿真代码

%{


球差的光路图的绘制


功能:绘制球差的光路图


物理量:

n1,n2:介质折射率;

r/mm:球面镜半径;

L/mm:物方截距;

L2/mm:像方截距;

L_cut/mm:截止像面与透镜中心之间的距离;

h/mm:入射高度;

h_new/mm:截至像面上出射光线的高度;

U1:物方孔径角;

U2:像方孔径角;

I1:入射角;

I2:折射角;



%}


%% 绘制前处理

%%%%%%%%%%%%%


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

clear;                       %清除变量

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



%% 数据输入

%%%%%%%%%%%


n1=1; n2=1.33;               %设置介质的折射率

r=-200;                      %球面镜半径

L=-300;                      %物方截距

h=-70:1:70;                %入射高度及步长

L_cut=300;                   %确定截止像面


%% 光线追迹

%%%%%%%%%%%


%大L公式追迹光线

U1=atan(h/L);                %物方孔径角

I1=asin((L-r)*sin(U1)/r);    %入射角

I2=asin(n1*sin(I1)/n2);      %折射角

U2=U1+I1-I2;                 %像方孔径角

L2=r*(1+sin(I2)./sin(U2));   %像方截距

h_new=tan(U2)*L_cut+h;       %确定截止像面上光线高度



%% 光路图绘制

%%%%%%%%%%%%%


[~,num]=size(h);                              %计算矩阵h大小  

figure;                                       %创建窗口

c=jet(num);

set(gcf,'color',[0.9,0.9,0.9]);              %窗口背景颜色更改

set(gcf,'position',[250 200 1100 500]);      %窗口大小调整

subplot('position',[0.001 0.18 0.7 0.7]);    %创建子图1


%入射光线及出射光线的绘制

for i=1:20:num

    colorData=[c(i,1),c(i,2),c(i,3)];                  %颜色矩阵

    line([L,0],[0,h(i)],'color',colorData);            %入射光线

    line([0,L_cut],[h(i),h_new(i)],'color',colorData); %出射光线

end

hold on;


%光轴等直线绘制

line([L-50,330],[0,0],'linestyle','--','color','k','linewidth',1); %光轴

quiver(0,0,0,130,'MaxHeadSize',0.5,'LineWidth',1.5,'color','k');   %透镜1

quiver(0,0,0,-130,'MaxHeadSize',0.5,'LineWidth',1.5,'color','k');  %透镜2

title('\itSpherical Aberration Path Diagram','FontSize',13);       %标题

axis off;                                                          %隐轴



%% 像差放大图绘制

%%%%%%%%%%%%%%%%%


subplot('position',[0.72 0.35 0.18,0.4])                 %创建子图2

set(gca,'color',[0.95,0.95,0.95]);                       %子图背景颜色更改

for i=1:20:num                                           %出射光线绘制

    colorData=[c(i,1),c(i,2),c(i,3)];                  %颜色矩阵

    line([L,0],[0,h(i)],'color',colorData);            %入射光线

    line([0,300],[h(i),h_new(i)],'color',colorData);   %出射光线

end

xlim([263,268]);                                   %x坐标范围(实现放大功能)

ylim([-3,3]);                                      %y坐标范围(实现放大功能)

text(264,2,'\itenlarged view','FontSize',13);            %标注放大图

grid on;                                                 %打开网格








3 运行结果

4 参考文献

[1]秦华, 冯东太, QIN,等. Matlab在几何光学仿真实验中的应用[J]. 物理实验, 2017, 37(11):5.

[2]王永瑛, 张光明, 李小丽,等. 用MATLAB编程模拟光学实验[J]. 城市建设, 2009.

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

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


相关文章
|
7月前
|
算法 数据安全/隐私保护
光学涡旋Talbot阵列照明器的matlab模拟与仿真
本程序基于MATLAB 2022a版本,模拟了光学涡旋Talbot阵列照明器的功能。该技术结合了光学涡旋与Talbot效应,广泛应用于激光材料加工、光镊技术和显微成像等领域。通过核心算法实现光学涡旋(具有螺旋相位分布的光束)和Talbot效应(周期性结构自像重现)的模拟。程序运行结果无水印,展示了光学涡旋的拓扑荷特性及近场/远场Talbot效应的原理,为设计同轴或不同轴排列的光学涡旋阵列提供了理论支持。
|
9月前
|
算法 数据安全/隐私保护
基于分数Talbot效应的阵列光学涡旋产生matlab模拟与仿真
本程序基于分数Talbot效应,使用MATLAB(2013b版本)模拟与仿真光学涡旋阵列的生成,测试了正方形、旋转正方形和六边形三种阵列形状下的光学涡旋效果。分数Talbot效应是经典Talbot效应的推广,可精确控制衍射光场在任意距离处的重现,生成复杂光场分布,包括光学涡旋阵列。程序运行结果展示无水印,核心代码完整,适用于研究分数Talbot效应对光学涡旋的应用场景。
|
算法 数据安全/隐私保护
星座图整形技术在光纤通信中的matlab性能仿真,分别对比标准QAM,概率整形QAM以及几何整形QAM
本文介绍了现代光纤通信系统中的星座图整形技术,包括标准QAM、概率整形QAM和几何整形QAM三种方法,并对比了它们的原理及优缺点。MATLAB 2022a仿真结果显示了不同技术的效果。标准QAM实现简单但效率有限;概率整形QAM通过非均匀符号分布提高传输效率;几何整形QAM优化星座点布局,增强抗干扰能力。附带的核心程序代码展示了GMI计算过程。
754 0
|
机器学习/深度学习 传感器 算法
【光学】基于matlab模拟参考光栅和变形光栅折叠相位
【光学】基于matlab模拟参考光栅和变形光栅折叠相位
|
机器学习/深度学习 数据可视化 算法
时间序列分解 | Matlab SGMD辛几何模态分解数据分解可视化,信号数据分解
时间序列分解 | Matlab SGMD辛几何模态分解数据分解可视化,信号数据分解
|
机器学习/深度学习 传感器 算法
【光学】基于matlab模拟二维光场分析
【光学】基于matlab模拟二维光场分析
|
机器学习/深度学习 传感器 算法
【光学】基于matlab模拟一维光子晶体吸收率折射率透射率
【光学】基于matlab模拟一维光子晶体吸收率折射率透射率
|
机器学习/深度学习 传感器 资源调度
【光学】基于matlab光纤布拉格光栅-FBG反射谱投射谱仿真
【光学】基于matlab光纤布拉格光栅-FBG反射谱投射谱仿真
|
2月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
212 0
|
2月前
|
算法 定位技术 计算机视觉
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
【水下图像增强】基于波长补偿与去雾的水下图像增强研究(Matlab代码实现)
113 0

热门文章

最新文章