Ansys Zemax|什么是点扩散函数( PSF )

图片

附件下载

联系工作人员获取附件

概览

这篇文章讲述了:

  1. 什么是点扩散函数?

  2. 点列图

  3. 快速傅里叶变换计算的点扩散函数(FFT PSF)

  4. 惠更斯算法计算的点扩散函数(Huygens PSF)

  5. 如何使用非序列模式下的透镜和探测器观察惠更斯积分

  6. 对于序列模式下的透镜组,分析点扩散函数时如何在惠更斯和快速傅里叶变换计算两者间进行选择

什么是点扩散函数( PSF )?

PSF 是一个物空间的点光源经过光学系统后的辐射照度分布。望远镜对遥远行星成像就是一个很好的 PSF 例子:由于行星距离我们非常远以至于我们在任何条件下都可以把它当做一个点。虽然发光光源是一个理想的点,但是像点并不是一个点。这是因为两个主要原因:首先,光学系统的像差会影响像点,使其在有限的区域内扩散;其次,即使光学系统没有像差,衍射效应同样会使像点发生扩散。

OpticStudio 内置了三种计算 PSF 的方法:几何(无衍射效应)点列图、基于衍射效应的快速傅里叶变换( FFT )PSF 和惠更斯( Huygens )PSF 。这篇文章将讨论每种算法的理论基础,并给出了一些使用建议。

点列图:几何 PSF

点列图是 OpticStudio 中最基础的分析功能之一。该功能会加载多条从物空间点光源发出的光线,并对所有光线穿过光学系统进行追迹,然后将以图表的形式显示光线相对于特定参考点的坐标图。

本文中使用的示例系统是一个焦距为50mm、F 数为5的抛物面反射镜。物体放置于无穷远处。这是一个简单的牛顿望远镜系统,示例文件名为PSF_Newtonian.ZMX 。光学系统如下所示:

图片

两个视场下的点列图如下所示,其中一个视场为轴上视场,另一个为2°的离轴视场:

图片

如图可见,点列图是一堆点的集合,其中每一个点代表一根光线。每根光线间没有任何相互作用。点列图非常高效的展示了望远镜系统的几何效应或光线像差。其中,离轴几何 PSF 图像(2°视场下点列图)非常形象的展示了系统的慧差和像散。然而对于轴上视场,点列图给出了完美像点的分析结果。这是光学系统成像的正确结果吗?为了回答这一问题,我们需要将点列图的结果即点的分布,与衍射极限相比较。

将艾里斑( Airy Disk )的参考椭圆添加到点列图中是一个快速比对几何像差和衍射效应的方法。打开点列图的设置列表,并勾选显示艾里斑:

图片

现在,点列图将在几何点分布上的相应位置处,显示出艾里斑的直径:

图片

在轴上视场上点的分布远小于艾里斑,而在离轴视场上点的分布则远大于艾里斑。这表明点列图只能有效合理的展示离轴视场的成像结果。想要同时计算轴上和离轴视场正确的 PSF,则需要考虑衍射效应带来的影响。

通常来说,当光学系统的像差影响相比衍射效应大很多时,点列图是评价光学系统成像质量非常有效的方法。

FFT PSF

快速傅里叶变换( FFT )算法广泛应用于许多光电系统的频率分析中。从概念上讲,FFT 将一个空间上的分布分解为频域上的分布。对于傅里叶光学的详细讲解请参考书籍《 Introduction to Fourier optics 》,在用户手册的“物理光学传播( Physical Optics Propagation )”一章中也有对衍射理论的总结。两份资料都介绍了菲涅尔和夫琅禾费衍射理论。

大多数光学系统都满足基于夫琅禾费衍射理论的 FFT PSF 算法所必须的简化假设。其主要假设有:

  1. F 数足够大使得标量衍射理论成立

  2. 衍射 PSF 能量显著区域远小于光学系统出瞳到像面的距离

  3. 出瞳相对入瞳没有明显畸变。这表示入瞳上均匀分布的光线在出瞳上也应是合理的均匀分布

  4. 高采样率以满足准确模拟 PSF 的要求

  5. 像面上的主光线和法线夹角很小

光学系统的 FFT PSF 是通过如下方法计算所得:一组呈网格状分布的光线从点光源发出射向系统出瞳。OpticStudio 会使用幅值和光程差计算每一根光线出瞳处波前网格上对应点的复振幅。经过适当缩放后该网格的快速傅里叶变换经过平方得到 PSF 的实部值。如果计算是多波长的,则 PSF 将进行累加。想要计算序列模式系统的 FFT PSF,请在 OpticStudio 的主菜单中选择分析选项卡(Analysis)>点扩散函数(PSF)> FFT PSF 。示例文件牛顿望远镜系统的轴上视场的 FFT PSF,如下图所示,其分析设置参数稍后我们会做讨论。

图片

注意图中相似的艾里斑波形。牛顿望远系统的轴上视场像差为零,如上图所示这也是符合预期的结果。

为了生成如上图所示的图像,FFT PST 的设置菜单应该如下图所示:

图片

这里的采样是指对射向系统入瞳处的网格分布光线的采样率。OpticStudio 会自动设置显示网格的尺寸比采样网格大一倍,并将超出入瞳区域的数据用零代替。因此 PSF 的分析结果显示的点要比网格采样点多4倍。如果系统像差很小,则我们感兴趣的区域将集中在图表的中心。为了减少显示这些近似等于零的数据,我们选择显示网格为较小的尺寸。

在分析参数设置中可以使用多种网格尺寸来显示同样的 PSF 数据,可以设置如下图所示参数:

图片

显示网格的尺寸为128x128,视场编号为2,类型为对数,显示为伪彩色图。其分析结果如下图所示:

图片

惠更斯 PSF

从概念上讲,惠更斯 PSF 通过将点列图上每一根光线转换为一个小的平面波。回想一下,光线可以模拟一个小区域的平面波,因此光线在各向同性介质中与波前垂直。由光线模拟的平面波拥有振幅、相位和传播方向这三个参数。因此像面上的总辐照度分布可以考虑为所有追迹光线所代表的平面波的相干叠加。对所有光线的积分可以直接得到衍射 PSF。

OpticStudio 中大多数衍射效应是基于标量衍射理论的( F 数不会很小),但惠更斯算法在“使用偏振( Use Polarization )”开启时可以考虑电场的矢量特性。所有基于惠更斯算法的分析都全面考虑了偏振向量和偏振相位引入的像差。这一算法通过分别计算偏振电场的 Ex,Ey,Ez 分量,然后进行非相干叠加。和计算其他相位差一样,惠更斯算法会计算电场中每一个正交分量引入的偏振相位差。

实际上所有光学系统都满足进行惠更斯 PSF 计算的前提假设:

  • 采样率足够高以准确模拟 PSF

惠更斯 PSF 不是基于 FFT 进行计算的。虽然计算速度方面惠更斯 PSF 通常要比 FFT PSF 慢,但是在不满足 FFT PSF 前提假设的情况下惠更斯PSF要更加准确。使用 FFT PSF 假设有问题从而需要使用惠更斯 PSF 的情况有:

  1. 像面与主光线的垂直面存在明显倾斜

  2. 出瞳相对于入瞳存在明显的畸变

光学系统的惠更斯 PSF 的计算如下。从点光源出发追迹网格分布的光线并传播到像面。使用光线的振幅、坐标、方向余弦和光程差,计算每根光线在像空间网格上每点处的平面波的复振幅。将像空间每个网格点上所有光线的复振幅相干叠加。则像空间每个网格点上的强度为叠加复振幅的平方。如果计算中考虑多个波长,则对不同波长的 PSF 结果进行非相干叠加。

如果您想要计算序列模式下系统的惠更斯 PSF,在 OpticStudio 主菜单中选择分析选项卡( Analysis )> PSF > 惠更斯 PSF( Huygens PSF )。惠更斯 PSF 同样可以计算非序列元件(NSC)系统,我们将在后文中详细介绍。需要注意的是 FFT PSF 不能应用于非序列系统。

由用户定义的惠更斯 PSF 的关键设置参数是光瞳采样、像面采样和像面采样间距。这些参数可以在惠更斯 PSF 分析参数设置表中输入。打开参数设置表并如下图输入参数:

图片

像面采样间距为像面上每个网格点之间的距离,其单位为毫米。计算PSF 的总体区域的尺寸是像面采样和像面采样间距之积。

如下图所示为示例牛顿望远镜系统轴上视场的惠更斯 PSF:

图片

离轴视场如下图所示(将视场编号改为2):

图片

光线数量和像点越多,PSF 的分辨率和计算精度越高。但这会带来计算时间的增加。

观察惠更斯积分

观察积分过程的一种方法是一次观察一根光线的相干叠加结果。这可以通过在 OpticStudio 的非序列元件功能中设置相干探测器来完成。示例文件为HPSF_Integration.ZMX。

图片

该示例文件包括一个椭圆光源、一个单透镜和一个矩形探测器物体。光源在一个圆形区域内产生多条随机光线。所有光线沿 Z 轴平行出射。光源模拟一束准直光或无穷远的点光源。光线输出条数设为20,分析光线的条数设为1。这将使系统在同一时刻只分析一条光线,我们会在后文中详细讨论。透镜为一个简单的单透镜,它用来将平行光很好的聚焦在探测器上。探测器属性设置为吸收,像素数量为120x120。

需要注意的是,探测器的第11个参数“ PSF 波长模式(PSF Wave#)”设为1。

图片

这一设置可以让探测器计算相干惠更斯 PSF 的积分。每一根射到探测器上的光线都被转换为局部平面波,该平面波照射探测器上的所有像素。随后平面波在每一像素上的相干振幅,叠加到已探测的相干振幅上。这允许我们可根据需求每次只追迹一条光线,所以我们可以看到每一根单独光线的叠加效果。

每次积分一根光线

接下来让我们通过示例观察这一积分过程,打开示例文件HPSF_Integration,选择分析选项卡( Analysis )- 光线追迹(Trace Rays )- 光线追迹控制( Ray Trace Control )。选中自动更新( Auto Update )。点击“追迹( Trace )”。由于光源只定义了一根分析光线,因此一根随机的光线被追击并且探测器更新当前结果。再次点击“追迹”,但注意不先点击“清空探测器( Clear Detectors )”来追击第二根光线。此时两根光线的追迹结果将显示出两个传播方向有一定夹角的平面波的干涉结果,探测器将显示条纹图案。由于光线的选取是随机的,因此条纹图案每次也不相同,因此探测器结果可能与下图并不完全相同。

图片

每次点击“追迹”后,另一根光线的结果将与现在的结果叠加。经过10根光线追迹后,衍射 PSF 初步呈现出来。

图片

大约40根光线追迹后,可以看到艾里环逐渐形成。

图片

追迹数百根光线才可以使 PSF 显示出合理的分布结果。

同时追迹多跟光线

一次只追迹一条光线是为了将积分的过程可视化。要同时追迹多条光线,可在非序列元件编辑器当中的分析光线条数一栏中,将要分析的光源光线条数从1改为500。

图片

点击分析 >光线追迹开启光线追迹控件,点击“清除并追迹”,将同时对500条光线进行追迹,PSF 结果将被展示在探测器查看器窗口中。

图片

尽管追迹的光线是随机选择的,但 PSF 仍收敛为正确的艾里斑(该透镜系统为衍射极限系统)。

如何选择使用点列图、FFTPSF、惠更斯 PSF

在下面的情况中使用点列图:

  • 与衍射效应相比,系统几何像差对于成像质量的影响更加显著。这一点可以通过在点列图的设置中勾选“显示艾里斑”来进行检查。

在以下情况中选择使用 FFT PSF:

  • 像面上主光线与像面法线有一定的夹角

  • 与入瞳相比,出瞳的畸变并不显著

  • 相对于无比精确的结果,更加关注计算速度

在下面的情形中使用惠更斯 PSF:

  • 想最大程度获得精确结果

总结

本文围绕点列图,FFT PSF 以及惠更斯 PSF 进行了讨论。结论为:

  1. 点列图展示了光线像差,但并未考虑衍射效应

  2. FFT PSF 虽然考虑了衍射并适用于大多数的光学系统,但基于的算法有一定的前提假设

  3. 惠更斯 PSF 考虑了衍射,并适用于几乎所有的光学系统,相比与 FFT PSF 使用了较少的前提假设

  4. 惠更斯 PSF 可用于非序列系统,尽管这些系统并非用于成像。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/789475.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

地下水环评(一级)实践技术及Modflow地下水数值模拟

主要围绕的环评导则,结合不同行业类别,实例讲解地下水环境影响评价的原则、内容、工作程序、方法。包括数据处理分析、数值模型构建以及环评报告编写等。涉及地下水流场绘制软件(Surfer)的操作流程及数据处理、地下水数值模拟软件…

JVM:类的生命周期

文章目录 一、介绍二、加载阶段三、连接阶段1、验证阶段2、准备阶段3、解析阶段 四、初始化阶段 一、介绍 类的生命周期描述了一个类加载、连接(验证、准备和解析)、初始化、使用、卸载的整个过程。 二、加载阶段 加载(Loading&#xff09…

【论文速读】| JADE:用于大语言模型的基于语言学的安全评估平台

本次分享论文:JADE : A Linguistics-based Safety Evaluation Platform for Large Language Models 基本信息 原文作者:Mi Zhang, Xudong Pan, Min Yang 作者单位:Whitzard-AI, System Software and Security Lab Fudan University 关键…

JavaWeb__正则表达式

目录 1. 正则表达式简介2. 正则表达式体验2.1 验证2.2 匹配2.3 替换2.4 全文查找2.5 忽略大小写2.6 元字符使用2.7 字符集合的使用2.8 常用正则表达式 1. 正则表达式简介 正则表达式是描述字符模式的对象。正则表达式用于对字符串模式匹配及检索替换,是对字符串执行…

用SurfaceView实现落花动画效果

上篇文章 Android子线程真的不能刷新UI吗?(一)复现异常 中可以看出子线程更新main线程创建的View,会抛出异常。SurfaceView不依赖main线程,可以直接使用自己的线程控制绘制逻辑。具体代码怎么实现了? 这篇文章用Surfa…

vue 中 使用腾讯地图 (动态引用腾讯地图及使用签名验证)

在设置定位的时候使用 腾讯地图 选择地址 在 mounted中引入腾讯地图: this.website.mapKey 为地图的 key // 异步加载腾讯地图APIconst script document.createElement(script);script.type text/javascript;script.src https://map.qq.com/api/js?v2.exp&…

C++11中重要的新特性之 lambda表达式 Part two

序言 在上一篇文章中,我们主要介绍了 C11 中的新增的关键词,以及 范围for循环 这类语法糖的使用和背后的逻辑。在这篇文章中我们会继续介绍一个特别重要的新特性分别是 lambda表达式 。 1. lambda表达式 1.1 lambda的定义 C11 中的 lambda表达式 是一种…

APB总线协议

一、APB总线介绍 关于总线的一些概念: 总线:计算机内部和计算机之间传输数据的共用通道。 总线位宽:总线能够一次性传送的二进制数据位数,例如8bit、16bit、32bit、64bit等。 总线工作频率:即时钟频率(时…

PHP实现用户认证与权限管理的全面指南

目录 引言 1. 数据库设计 1.1 用户表(users) 1.2 角色表(roles) 1.3 权限表(permissions) 1.4 用户角色关联表(user_roles) 1.5 角色权限关联表(role_permissions…

【内网渗透】内网渗透学习之域渗透常规方法

域渗透常规方法和思路 1、域内信息收集1.1、获取当前用户信息1.1.1、获取当前用户与域 SID1.1.2、查询指定用户的详细信息 1.2、判断是否存在域1.2、查询域内所有计算机1.3、查询域内所有用户组列表1.4、查询所有域成员计算机列表1.5、获取域密码信息1.6、获取域信任信息1.7、查…

最短路径算法:Dijkstra算法探险记

想象一下,你是一只小蚂蚁,名字叫小明。你住在一个大大的花园里,这个花园有很多小路,小路之间还有交叉点,就像是一个迷宫一样。现在,你接到了一个任务:找到从你家到花园里一个特定地方(比如一块超级大的糖果)的最短路径! 第一步:画出地图 首先,我们需要一张地图来…

YOLOv8改进 | 注意力机制 | 增强模型在图像分类和目标检测BAM注意力【小白必备 + 附完整代码】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…

【模块化与包管理】:解锁【Python】编程的高效之道

目录 1.什么是模块? 2. 模块的导入过程 3. 理解命名空间 4. import语句的多种形式 5. 模块的执行与重新导入 6. 包(Package) 7. sys模块和os模块 sys模块 常用属性 示例:使用sys模块 os模块 常用功能 示例&#xff1…

前端埋点数据收集和数据上报

原文地址 什么是埋点 学名叫时间追踪(Event Tracking), 主要针对用户行为或者业务过程进行捕获,处理和发送相关技术及实施过程. 埋点是数据领域的一个专业术语,也是互联网领域的俗称,是互联网领域的俗称 埋点是产品数据分析的基础&#xf…

【AIGC】一、本地docker启动私有大模型

本地docker启动私有大模型 一、最终效果中英文对话生成代码 二、资源配置三、搭建步骤启动docker容器登录页面首次登录请注册登录后的效果 配置模型尝试使用选择模型选项下载模型选择适合的模型开始下载 试用效果返回首页选择模型中英文对话生成代码 四、附录资源监控 五、参考…

动手学深度学习54 循环神经网络

动手学深度学习54 循环神经网络 1. 循环神经网络RNN2. QA 1. 循环神经网络RNN h t h_t ht​ 与 h t − 1 h_{t-1} ht−1​ x t − 1 x_{t-1} xt−1​有关 x t x_t xt​ 与 h t h_t ht​ x t − 1 x_{t-1} xt−1​ 有关 怎么把潜变量变成RNN–假设更简单 潜变量和隐变量的区…

Java面试八股之什么是布隆过滤器

什么是布隆过滤器 布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否可能存在于一个集合中。布隆过滤器可以给出“可能存在”或“一定不存在”的答案,但不能保证“一定存在”。其主要特点是&…

WTM的项目中EFCore如何适配人大金仓数据库

一、WTM是什么 WalkingTec.Mvvm框架(简称WTM)最早开发与2013年,基于Asp.net MVC3 和 最早的Entity Framework, 当初主要是为了解决公司内部开发效率低,代码风格不统一的问题。2017年9月,将代码移植到了.Net Core上&…

开源项目有哪些机遇与挑战

目录 1.概述 2.开源项目的发展趋势 2.1. 开源项目的发展现状 2.2. 开源社区的活跃度 2.3. 开源项目在技术创新中的作用 3.参与开源的经验分享 3.1. 选择开源项目 3.2. 理解项目结构和文档 3.3. 贡献代码 3.4. 与开源社区的合作 3.5. 学习和成长 4.开源项目的挑战 …

buuctf 二维码

文件下载下来是一个png的文件 做misc永远的好习惯就是先运行,后010 先运行,这个运行肯定就是扫码 啥也没有 里面还有个ZIP文件(zip的发明人名字是PK) 放在kali上binwalk分离 CTF工具隐写分离神器Binwalk安装和详细使用方法_binwalk下载-CSDN博客 里面有个text,需要密码 我…