你真的懂PSF的计算吗?

[复制链接]
optkt 发表于 2023-2-27 17:43:15 | 显示全部楼层 |阅读模式
之前我们聊过MTF的计算,请翻看我之前的文章,本质上就是对PSF进行FFT嘛,但我们没细讲PSF的计算。今天我们就来把PSF的各种计算方法来梳理一下,并且尽量不涉及太多数学……
首先PSF是Point Spread Function,点扩散函数,即点光源经过系统后形成的光斑。即便是没有像差的理想系统,由于孔径带来的衍射因素,点光源也不能汇聚成一个无穷小的点,只能“散成一滩”PSF。

你真的懂PSF的计算吗?-1.jpg
显然,PSF越小越好,理想状态下是无穷小,这样对不同位置的点光源的分辨率最高。而在没有像差的情况下,光瞳大小决定了PSF的大小。光瞳越大,PSF越小。
我们可以形象地来理解这件事情:光瞳位置的波前携带着成像的“信息”,波前越大,携带的“信息”越多,那么在像面的分辨率也就越高,即PSF越小。光学系统不可能让整个球面波前全部通过,波前会被孔径截断,所以也就造成了极限分辨率受到限制。
说到这儿,还记得台阶函数的傅里叶变换吗?

你真的懂PSF的计算吗?-2.jpg
窄的台阶函数,傅里叶变换后较宽;而宽的台阶函数,傅里叶变换后较窄。而只有当原函数是个常数,即无限宽的台阶函数的时候,其傅里叶变换才是个无限窄的delta函数。
对于光学系统,(不太严谨,但定性地)此处的台阶函数可以对应光瞳处的波前,而傅里叶变换之后函数即其PSF——光瞳越大,PSF越小。
好了,到这里我们已经说出来了PSF最常见的计算方式——对光瞳处的波前函数求傅里叶变换。其背后的原理支持,来自夫琅禾费衍射理论,这可以从任何一本物理光学教科书中查阅。这里,我们来说明一些细节。
光学设计软件Zemax在求FFT PSF时的作业流程:
1. 依据斯涅尔定律,从物面到像面追迹光线(此时获取了点列图)
2. 反向追迹光线到出瞳位置,注意不同视场的参考波前有不同的倾斜
n 在一些特殊情况下波前计算使用像面或者无穷远处做参考,而非出瞳
3. 通过OPD构建波前,注意需要是含振幅和相位信息复函数
4. 对波前做二位傅里叶变化获取PSF
注意,要满足FFT的适用条件,我们得保证远场。于是FFT PSF仅在小光圈情况下才是充分准确的,按照不同的标准,一般认为F数要大于1.5(也有说2)。
除了FFT PSF之外,光学软件中还有另一种计算PSF的方式:Huygens PSF。它的核心指导原理是惠更斯-菲涅尔原理,即波前子波干涉的思想。

你真的懂PSF的计算吗?-3.jpg
然而光学软件是怎么实现的呢?
其实可能比很多人想象的简单:把光线从物方追踪到像面上,注意记录下光线的强度、相位(OPD)、位置还有角度。每根到达像面的光线被转化为平面波*(默认选项,后文详述)。把像面分割成很多pixel,把到达像面的一系列平面波在每个pixel内的光线根据其相位,进行相干(coherently)叠加。当光线数目足够多的时候,自然就会叠出PSF的峰来。此处光瞳上的每一个子波都被光线来表征了。
由于这个逻辑完全来自于光线追迹,那也就可以很自然地在非序列模式中进行一样的计算。我们是可以让软件在非序列模式里的探测器上进行PSF计算的。

你真的懂PSF的计算吗?-4.jpg
这里放一下经典的Double Gauss 28,三号视场一号波长的序列模式点列图vs 序列模式Huygens PSF vs非序列模式光斑vs非序列模式PSF:

你真的懂PSF的计算吗?-5.jpg
是不是看到序列模式和非序列模式都可以计算出几乎一样的Huygens PSF!
我们来看看Huygens PSF的指导原理和软件实现有什么出入,即蕴含了哪些前提假设?首先显然是标量衍射理论以及 Kirchhoff边界条件,电场各个分量满足赫姆霍兹方程,这天然符合光线追迹过程中互不干扰的精神,以及光瞳范围之外的场强度直接为0。
另外还有一层的假设就是远场,以及像面采样区域不能太大(必须良好地聚焦)。本质上惠更斯法应该是做球面波参考的。而前文说过,软件用平面波来表征每一根到达像面的光线,这在足够远场的条件下毫无问题,但在像面比较远但不那么远的情况下,我们需要用球面参考来处理。具体说,就是在出瞳的球面参考波前面上,找到很多个点发出子波(光线),到达像面后,把光线转化为球面波的形式进行相干叠加来计算PSF。显然平面波参考是一个在足够远场情况下的球面波参考的退化形式,球面波参考可以处理稍微不那么远场一点或者说中远场的情形。Zemax软件是可以帮助用户自动选择用平面还是球面参考的,即在中远场条件下可以​基本放心地交给Zemax算。

你真的懂PSF的计算吗?-6.jpg
如果要搞定近场的情况,那就得用上最根本的Rayleigh-Sommerfield边界条件了, 这个嘛,Zemax还没有……​
最后还有一点常被人忽略的,不论FFT PSF还是Huygens PSF的计算要求在出瞳处均匀采样的。如果系统不用ray aiming,入瞳均匀采样;如果用了ray aiming,孔径光阑被均匀采样,但都不保证出瞳均匀。如果出瞳的光瞳误差极大的话,也会造成问题。
这里再唠叨一下,标量衍射理论,不是傍轴近似。傍轴近似是一个本质上和标量衍射不相关,但大体上说标量衍射理论限定更死的限制条件。换句话说标量衍射在非近轴条件下也可以成立,标量衍射理论可以适用的光线角度也比傍轴近似范围大得多。Huygens PSF的计算方法中,不同方向电场最终在像面上的相干叠加被忠实记录的,只是在传播过程中不同方向分量的电场之间的效应被忽略了。Huygens方法比FFT以及POP能处理的角度大。在这些漫天乱飞的术语中,我还见过“标量衍射理论框架下的Rayleigh-Sommerfield矢量光场计算”这种说法,并且不能认为他说错了= =|||
【全文完】
起这个标题显然我是在吹牛,因为彻底懂PSF计算是一件很高难度的事情,尤其是近场的情况。所以我也不真的懂PSF计算,只是在我的知识框架内尽可能整理一小部分内容。
网站管理员,微信:AlphaHL
回复

使用道具 举报

全部回复20 显示全部楼层
掌舵的鱼1987 发表于 2023-2-27 17:44:10 | 显示全部楼层
awesome! 感谢分享,写得好棒,读起来好舒服。
回复 支持 反对

使用道具 举报

123456865 发表于 2023-2-27 17:44:40 | 显示全部楼层
写得很好,感谢分享!
回复 支持 反对

使用道具 举报

此人正在学习 发表于 2023-2-27 17:45:27 | 显示全部楼层
你好。PSF是点光源经系统后形成的光斑。那么假如要设置无穷远处的点光源,可以使用平行光来代替吗
回复 支持 反对

使用道具 举报

热忽行退 发表于 2023-2-27 17:46:22 | 显示全部楼层
可以
回复 支持 反对

使用道具 举报

光荣与梦想483 发表于 2023-2-27 17:47:05 | 显示全部楼层
你好,请问在实际测量中,点光源成像后,可以对像进行图像处理得到点扩散函数吗?如果不行,一般用什么方法测出点扩散函数呢?
回复 支持 反对

使用道具 举报

optkt 发表于 2023-2-27 17:47:40 | 显示全部楼层
咦,我这篇文章都在讲点扩散函数怎么求诶
回复 支持 反对

使用道具 举报

凌8乱 发表于 2023-2-27 17:47:45 | 显示全部楼层
请问我用工业相机获得的光强分布就是PSF吧?是不是还需要进行归一化处理,如果要的话应怎么处理?
回复 支持 反对

使用道具 举报

娣玲 发表于 2023-2-27 17:48:08 | 显示全部楼层
写的很好。我想请问下在基于衍射考虑的两种PSF的场的计算中使用的是哪种傅里叶变换的方法呢,或者Huygens PSF 用了德拜积分吗 ?
回复 支持 反对

使用道具 举报

luly靓 发表于 2023-2-27 17:48:49 | 显示全部楼层
写的很好,感谢博主!
回复 支持 反对

使用道具 举报

123下一页
发帖

快速回帖

您需要登录后才可以回帖 登录 | 立即注册 手机动态码快速登录

本版积分规则

关于楼主

管理员
  • 主题

    528
  • 回答

    142
  • 积分

    20107
联系客服 关注微信 访问手机版 返回顶部 返回列表