Photonics – Chinese

Photonics – Chinese

Simplified microscopic imaging中相位计算问题

    • 2777747J
      Subscriber

      我想使用Simplified microscopic imaging的案例计算硅基底上金结构的显微图像。

      思路是使用TFSF光源获得近场结果,通过案例中的代码计算某个NA下的散射场。再独立仿真某个波长下的反射平面波,在代码中叠加反射的平面波的振幅和相位

      但是现在遇到了两个问题

      1.案例中的计算过程中散射场会乘以某个系数,使得散射场与反射平面波的振幅比值不匹配吗

      2.代码中反算的相位无法确定

      以下我理解的案例,首先使用farfieldvector3d函数获得角谱结果,滤波后使用czt函数反算近场图像。

      farfieldvector3d计算的是监视器到FDTD区域1m处(而非距离监视器1m)的远场结果,因为更换不同监视器高度最终计算相位也没有改变。

      而案例中后续通过z0来控制离焦,但我不是很清楚这个焦面z0=0的位置是在哪里。我将光源放置到FDTD仿真区域里高度z=0的位置,但反算出的结果与这个高度的相位并不符合。

      我通过调z0来判断焦面位置,发现好像是z0=-300nm(半波长)时才在匹配的位置。但对于其他波长下的结果好像结果又不是半波。

      官网上也没有这两个函数的具体计算过程,所以想请问一下反算的相位是怎么判断的。

    • Guilin Sun
      Ansys Employee

       

      ”farfieldvector3d计算的是监视器到FDTD区域1m处(而非距离监视器1m)的远场结果,因为更换不同监视器高度最终计算相位也没有改变。”

      原则上是计算从监视器到1米半球面上。改变监视器位置位相应该有变化,除非刚好差2Pi。

      z0来控制离焦,是通过添加离焦量实现的。因为不涉及焦距,再加上是空间傅里叶变换,z0是相对焦面的距离。

      我不太理解你的仿真过程,为什么用TFSF,是为了仅考虑散射吗?此时的散射指的相对于什么?一般散射是指相对与直射,通过透镜后是光锥,怎么定义散射呢?

      然后又要考虑平面波反射,这个是非周期结构,如何计算此时的反射系数?反射波面也不是平面波,这个位相加在什么场分量,波面形状是什么呢?

      请斟酌。

       

       

      • 2777747J
        Subscriber

         

        重新提问的时候忘记点回复了

         

    • 2777747J
      Subscriber

      我想对一个近似无穷大的硅基底上的单个金纳米结构成像,照明光源是从上往下的平面波,并且这个成像过程中需要考虑NA的影响。

      由于我并非周期结构,所以光场只能通过TFSF的散射场(我指的散射场都是指TFSF算出的光场)与没有结构时的光滑基底的平面波反射光叠加。

      并且TFSF的散射场尺寸也远比监视器小,进行傅里叶变换的时候不会出现覆盖区域不足的问题。

       

      也就是说先在pml边界下,TFSF场得出一个散射分布,比如在图中结构上方200nm处放一个监视器,看到此处的散射场S1;

      再在另外一个仿真下,除去结构,仅保留基底。周期边界下平面波放在相同位置照明,计算基底在相同位置的反射光在R1。

      对TFSF的散射场S1进行案例中一样的处理。计算远场结果然后再傅里叶变换获得某一个NA下的散射场S2。

      再将S2与R1叠加,获得最终显微成像的结果。

      但是问题是,当我S1计算S2的过程中时,将z0设为0时,计算出的S2并不像是S1位置处的结果(即结构上方200nm)。反而是z0设置为-300nm时S2最接近此位置的结果。

      因此我想知道z0这个焦面,到底是指哪个高度的面。

       

    • 2777747J
      Subscriber

      实际上我不明白的问题就是集中在这个计算NA的过程中反算的位置和相位的问题。

      以官网的案例为例。

      案例里使用了一个30°角离束腰3um的高斯光源放置在-100nm的位置。监视器高度为100nm,z0=0nm. 为对比描述,我又在200nm和300nm添加了两个监视器。

      下面是三个高度监视器得出的远场Ex的相位分布和最终的图像Ex_image的相位分布。

      可以看到相位分布都没有什么变化。因此我推断farfieldvector3d函数计算的是从监视器到1m绝对位置的相位。

      并且这也意味着Ex_image最终反算出的图像并不一定是监视器高度的光场,因为监视器位置改变不影响Ex_image。

       

      现在另外一个问题出现了,案例中反算的当z0=0时的焦面光场是在哪个高度下的光场?是1.监视器位置的?2.光源位置的(-100nm)?3.光源束腰位置的?还是4.FDTD绝对位置为z=0位置的?

      1刚刚已经排除了。

      案例中给的两个强度图左边是反算的出来的结果,高度不明确,右边是100nm高监视器里直接出来的图。

      但这看图像光斑尺寸两个结果都是FDTD区域里绝对高度z=0附近的结果。因为离焦3um时光斑尺寸很小,跟光源的设置比较相符。所以3也可以排除

      而代码里其实没有再对光源位置有过什么设置,所以2其实也不太可能。

       

      可是试了几次后发现最终z0=0时其实也不是z=0处的光场。

      我放置了一个监视器在z=0处。从左往右分别是z=0处监视器的光场相位,z0=0时反算的相位,z0=-300nm时反算的相位。

      可以看到这个代码反算的光场位置好像与仿真区域的坐标中心高度有300nm的偏移。

      而这个偏移我试过不同波长的光源,偏移量看不出什么规律。

       

      所以我想问这个代码反算的相位是在哪个具体高度的结果

    • Guilin Sun
      Ansys Employee

      本周因其他同事出差,技术支持比较忙。

      但是问题是,当我S1计算S2的过程中时,将z0设为0时,计算出的S2并不像是S1位置处的结果(即结构上方200nm)。反而是z0设置为-300nm时S2最接近此位置的结果。

      因此我想知道z0这个焦面,到底是指哪个高度的面。”

      首先我不确定你这个分析方法是否正确,因为位相与场分量紧密相连,对于任意波长,位相变化可能太剧烈。

      至于成像位置,即不在监视器面上,也不在光源面上,而是在未显示的透镜的焦面上(Z0=0)。因为是合成的平面波成像,并没有实际透镜参与,只是用NA限制了参与成像的角度。因此,“1.监视器位置的?2.光源位置的(-100nm)?3.光源束腰位置的?还是4.FDTD绝对位置为z=0位置的?”都不对。

       

      “可以看到相位分布都没有什么变化。因此我推断farfieldvector3d函数计算的是从监视器到1m绝对位置的相位。”

      farfieldvector3d函数原则上计算的是从监视器到1m半球面上的相位,因为监视器并没有光源和透镜的信息。

      直接仿真与成像不可直接相比。

      我看你用NA=10.9,目前不大可能有这样的透镜,这需要很高的折射率。NA=n*sin(theta)

      你可能需要找FDTD近场-远场投射看看其工作原理。

      请再花时间了解例子和其工作原理。

       

       

       

      • 2777747J
        Subscriber

        谢谢回复,问题已解决。

        farfield函数将监视器的分布分解为不同角度的平面波并传播至1m远,因此远场结果与监视器高度无关。

        且远场相位出现位移为 mod(1m,wavelength)/wavelength*2pi ,例如波长为600nm时,其远场相位为

        mod(1,6*10^7)/(6*10^7)*2pi=240°

        而czt函数反算回近场时,似乎也会出现-pi/2的相位位移。

         

        因此最终通过脚本计算的光场z0=0时即为坐标高度为z=0时的光场。

        其相位会比直接从z=0处监视器中探测到的相位多出mod(1m,wavelength)/wavelength*2pi - pi/2

        在光源相位中减去这个位移的相位,即可获得相位一致的结果

         

        • xpy2024
          Subscriber

          老师,你好,对“因此最终通过脚本计算的光场z0=0时即为坐标高度为z=0时的光场”这句话,是说这个脚本的defocus=0就是指仿真中z=0位置处成像吗?实际设置成像面是否应根据显微系统位置设置?但这样设置后(如设置50mm)这个成像分布就很怪,不知道是否正确,所以应该这样设置吗?

    • Guilin Sun
      Ansys Employee

      pi/2位相应该是做远场变换是产生的,因此位相补偿时需要添加这种修正。

      参见这个周期结果分析:https://optics.ansys.com/hc/en-us/articles/360041781874-Photolithographic-projection-to-photoresist

      脚本106行  

      z_phase = 1i*exp(1i*k(i)*Uz*filter*(z_project)-1i*k(i)*1);

       

      祝贺你能解决此问题!

    • Guilin Sun
      Ansys Employee

      "因此最终通过脚本计算的光场z0=0时即为坐标高度为z=0时的光场。"不准确:

      z=0 是指仿真区的坐标;defocus=0是指相对透镜焦面。透镜并不在仿真区内,因为没有空间z 的概念。只有相对焦面的概念。对应相同的NA,透镜的焦距可以非常不同,因此,没有z 什么事。

    • xpy2024
      Subscriber

      好的,谢谢老师,这个z=0的问题确实很迷惑,仿真起来与别人的参数不一致,还以为是这个z设置的问题

Viewing 7 reply threads
  • You must be logged in to reply to this topic.