本周为大家带来的是
在波前计算中 OpticStudio如何进行采样
问题: 在波前图及其他相关分析中,采样网格的中心点在哪里?
要讨论这个问题,请打开示例文件 “Cooke 40 degree field.ZMX”。该文件保存在< Data >\Samples\Sequential\Objectives\目录下。
首先我们观察波前图,波前数据是很多其它OpticStudio分析功能的基础数据,例如PSF,MTF和圈入能量(Encircled Energy)。打开波前图(分析选项卡->像质分析->波前图)并如下图设置参数:
在进行数值计算时,我们想要保持光瞳的对称性,并且保持主光线的位置处于光束中间位置的一个实际的点。同样,我们也需要为FFT算法确定一个中心点。为了实现这些需求,我们需要定义出瞳空间(按不同定义方式称为近场或空间域)中的光瞳中心,即(n/2 1,n/2 1)。因此,当仔细观察波前图你会发现最左侧一列的数据全部为零。在本例中的实际中心位置为(17,17)。
现在我们来看PSF分析。PSF是波前平方经过快速傅里叶变换后得到的结果。将FFT PSF参数设置如下:
我们可以看到PSF是以位于(n/2,n/2)的像素为中心的,也就是坐标为(16,16)的像素。这和FFT的计算方式以及OpticStudio中方向的定义有关。当网格的中心点在某个域(例如空间域)的坐标为n/2 1时,在另一个域中(例如频域)的中心点坐标则为n/2。仔细观察下图你会发现最左一列和最下一行的数据为空白。
在MTF计算中,MTF为波前的自相关函数,并且通常来讲其像素数量为波前图的两倍(不考虑坐标轴变化)。因此为了MTF,OpticStudio首先会用数据0将32x32个数据点补充为64x64个数据点,然后再进行自相关计算。对于三维FFT MTF(Surface FFT MTF),OpticStudio会对波前的FFT平方,然后再对其进行FFT计算,换句话说MTF是PSF的傅里叶变换。将三维FFT MTF参数设置如下:
我们得到如下结果:
可以看到峰值点在坐标(32,32)处,或者为(n/2,n/2)。
OpticStudio通过自相关函数的边界1/(lambda*F/#)来确定三维FFT MTF的频率间隔,其中lambda为系统中最短的波长(如果我们计算的是多波长结果)。OpticStudio通过实际计算所有波长的截止频率和F数的乘积,并依据他们中最大的结果来缩放整个图表。其他波长的数据则会在光瞳空间中缩放,来使所有的PSF以同样的间距进行采样。将截止频率翻倍可以得到光学传递函数(OTF)的宽度(如上图为850.06 cycles/mm),然后将这一结果除以2*n(MTF计算时补零后的像素数量)得到采样点的间距。
举例来讲,OTF的宽度为850.06 cycles/mm,采样点为32x32个。因此点间距为850.06/64 = 13.282 cycles/mm。三维FFT MTF图表的中心点位于坐标(n/2,n/2)=(32,32)处,在图表中对应频率为0的点。换言之,第32列像素对应X轴空间频率为0 cycles/mm的点。第33列对应空间频率为13.282 cycles/mm,34列对应空间频率为26.564 cycles/mm,之后以此类推。最后一列即第64列对应空间频率为32*13.282 = 425.03 cycles/mm。第一列对应空间频率为-31*13.282 = -411.748 cycles/mm。
和PSF一样,三维FFT MTF图表的最左一列和最下一行为空白数据。因此,频率坐标轴左右两侧的数据并不是严格对称的(上下两侧也是如此)。但需要记住的是,每个数据是沿频率坐标系的“中心”对称的。如果在左或右(上或下)边缘考虑“半格像素”,则整个宽度确实为850.06 cycles/mm。有限大小的像素,其边缘覆盖了整个宽度,但每个像素(每列或每行)的中心坐标从两侧分别插入了半个像素的宽度。