背景

上一篇 用 PyTorch 实现一个可微光学逆向设计系统 把整套 Fourier optics inverse-design pipeline 搬到了原生 PyTorch:phase modulator → ASM 传播 → mode-overlap loss → autograd → Adam。N=250、Δx=10 μm、λ=700 nm、z=0.2 m 这组参数下,optimizer 把 loss 顺利压到接近 0,整个链路跑通了。但里面 N、Δx、L、λ、z 这五个量是怎么选的,那篇文章里没问过;写好 init 阶段的几行代码,整个计算图就跑起来了。

可微光学里,参数本身就是模型的一部分。这五个量共同决定 forward model 能不能描述真实物理:采样点不够、Δx 太大、计算窗口装不下传播后的光场,或者传播距离与频域网格失配,forward 模型都会给出看上去合理、实际不对的 U_out。inverse design 里尤其危险:optimizer 只看得到 loss 下降,看不到 forward 内部的数值失真。误差会沿着完全正常的梯度 backprop;表面上 loss 降了,实际优化的可能只是数值伪影。

优化前应先做一次数值模拟检查,也就是 sanity check。本文用方孔衍射,依次检查网格参数、输入采样、计算窗口、频率采样、传播算子相位和传播模型的适用范围。目的很简单:确认当前 forward model 的输出能否用于 inverse design。

先看方孔传播的结果

输入场是一个边长为 $a=100,\mu\mathrm m$ 的理想方孔,置于计算窗口中心:

$$ N=512,\qquad \Delta x=\Delta y=2\,\mu\mathrm m,\qquad \lambda=532\,\mathrm{nm}. $$

由此得到计算窗口的物理宽度为

$$ L=N\Delta x=1.024\,\mathrm{mm}, $$

横纵方向覆盖 $[-0.512,,0.512],\mathrm{mm}$。

输入场与角谱

下图左侧为输入方孔,右侧为它的二维角谱幅度。

左图:方孔宽度占 50 个像素,边缘陡直,没有可见的锯齿或台阶。右图是它的二维频谱:中心一个亮峰,能量主要集中在中心十字形区域;横纵方向延伸出较弱的旁瓣。

不同距离下的传播图

waveprop 实现了 Fraunhofer、Fresnel、Angular Spectrum Method 和 Direct Integration。这里让四种方法都返回真实输出坐标,并在相同的物理观察窗口中比较。DI 直接离散 Rayleigh–Sommerfeld diffraction integral[1],没有 Fresnel 或 Fraunhofer 近似,但仍受输入采样、输出窗口和离散积分误差限制,因此只把它作为交叉参考。

依次传播到

$$ z=1\,\mathrm{mm},\quad 10\,\mathrm{mm},\quad 100\,\mathrm{mm},\quad 150\,\mathrm{mm}. $$

每张图从左到右依次为 ASM、Fresnel、Fraunhofer 和 DI 四种方法在同一 ±0.5 mm 观察窗口内的结果。

z=1 mm

z=1 mm 时,ASM、Fresnel 和 DI 几乎重合。能量集中在中心约 0.1×0.1 mm² 的方形区域,与原始方孔差不多大;硬边衍射带来的近场干涉在方形内部留下细密的明暗纹理。Fraunhofer 在同一 ±0.5 mm 窗口内却只剩中心几颗像素,把远场图样按 z 缩到了一个亮斑。它要求传播距离远大于十几毫米,z=1 mm 显然不在这个范围内;到了远场,这种按 z 缩放的尺度才是正常的。

z=10 mm

到 z=10 mm,方孔的轮廓已经看不出来了,但 ASM、Fresnel 和 DI 仍然一致:中心是明亮的方形主瓣,横纵方向各有几级旁瓣,整体呈十字形。Fraunhofer 依旧挤成一团中心亮斑,ASM、Fresnel 和 DI 都有的横纵旁瓣没有出现。

z=100 mm

z=100 mm 时,ASM 和 Fresnel 突然变了形:主瓣不见了,横纵方向密集的明暗条纹交叉成规则方格,亮度从中心往四边递减,条纹已经靠近窗口边缘。同一窗口里的 Fraunhofer 和 DI 则仍然平滑。Fraunhofer 是中心向外衰减的方形主瓣和横纵旁瓣,包络与输入角谱的十字形一致;DI 的形态接近,只是中心亮区在两个方向都略宽一些。

z=150 mm

z=150 mm 时,ASM 和 Fresnel 的方格继续向外铺开,几乎占满整个 1.024 mm 窗口。中心几格最亮,四边仍有可见强度,最外层已经被边界截断。Fraunhofer 和 DI 依然保持方形主瓣加横纵旁瓣的十字形结构,DI 在两个方向上都比 Fraunhofer 更宽。

Fraunhofer 和 DI 都没有这些方格,说明它们是当前数值设置引入的伪影。z=100 mm 和 z=150 mm 的 ASM/Fresnel 已被离散条件污染;可能是窗口不够、FFT 周期边界的 wrap-around、传播算子欠采样,也可能是传播模型不在适用范围。

这次传播需要检查的几个条件

网格参数

当前参数为

$$ N=512,\qquad \Delta x=\Delta y=2\,\mu\mathrm m,\qquad \lambda=532\,\mathrm{nm}. $$

由 $\Delta x$ 与 $N$ 可以直接得到空间窗口宽度

$$ L=N\Delta x=1.024\,\mathrm{mm}, $$

横纵方向覆盖

$$ [-0.512,\,0.512]\,\mathrm{mm}. $$

FFT 把空间域映射到频域后,频率采样间隔由 $L$ 唯一决定:

$$ \Delta f=\frac{1}{L}\approx976.6\,\mathrm{m^{-1}}=0.9766\,\mathrm{mm^{-1}}. $$

对应的 Nyquist frequency 则由 $\Delta x$ 决定:

$$ f_N=\frac{1}{2\Delta x}=2.5\times10^5\,\mathrm{m^{-1}}=250\,\mathrm{mm^{-1}}. $$

$\Delta x$ 决定输入场在空间域里采得够不够细;$L$ 决定传播后的光场会不会跑出窗口;$\Delta f$ 决定输入频谱与 propagation kernel 在频域里采得够不够密。

输入采样

空域看方孔轮廓是否被充分采样,频域看主要频谱能量是否集中在远离 Nyquist 边界的区域、并且其结构是否被 $\Delta f$ 充分描述。

空域检查

输入方孔宽度为

$$ a=100\,\mu\mathrm m. $$

在当前网格上横向占

$$ \frac{a}{\Delta x}=50 $$

个像素。方孔宽度由 50 个采样点表示,轴对齐边界没有明显的栅格化失真。

频域检查

对输入场做二维 Fourier transform:

$$ A(f_x,f_y)=\mathcal F\{U_0(x,y)\}, $$

频谱能量为

$$ S(f_x,f_y)=|A(f_x,f_y)|^2. $$

方孔存在硬边,因此频谱呈 sinc 型,没有有限带宽。这里定义边缘能量比 $\eta_{\mathrm{edge}}$,统计 Nyquist 频带最外侧 $20%$ 内的能量占比:

$$ \eta_{\mathrm{edge}}= \frac{ \displaystyle \sum_{|f_x|>0.8f_N\ \mathrm{or}\ |f_y|>0.8f_N} |A(f_x,f_y)|^2 }{ \displaystyle \sum_{f_x,f_y} |A(f_x,f_y)|^2 }. $$

当前参数下得到

$$ \eta_{\mathrm{edge}}\approx0.42\%. $$

输入频谱几乎完全集中在 $|f|<0.8f_N$ 的内部区域,只有方孔硬边引入的高频尾部(约 $0.42%$ 的能量)落在最外侧 $20%$ 的频带内。

上图左为输入方孔,右为它的二维角谱。红实线方框是外圈能量占比对应的频率区域,橙虚线方框是 sinc 主瓣。两块之间的空白区域就是被求和的高频尾部,对应 0.42% 的量化结果。

再看频域分辨率。方孔 sinc 频谱从中心到第一零点的频率尺度为

$$ \frac{1}{a}=10^4\,\mathrm{m^{-1}}=10\,\mathrm{mm^{-1}}. $$

当前

$$ \Delta f=0.9766\,\mathrm{mm^{-1}}, $$

因此在一个 $1/a$ 的频率尺度内大约有

$$ \frac{10}{0.9766}\approx10.2 $$

个采样点。这一密度足以分辨 sinc 主瓣的形状,也能描述至少一两级旁瓣。

小结

当前网格在输入这一侧没有明显问题:

检查项 当前量化 状态
空间采样 $a/\Delta x = 50$ 像素 充足
频域边缘能量 $\eta_{\mathrm{edge}}\approx 0.42%$ 充足
频域分辨率 $\sim 10.2$ 点 $/1/a$ 充足

因此,100 mm 和 150 mm 的异常主要不在输入场,而在后续的离散条件。

计算窗口

传播后的光场还能不能留在当前 $L=1.024,\mathrm{mm}$ 的窗口里?

窗口半宽为

$$ \frac{L}{2} = 0.512\,\mathrm{mm}. $$

频域估算

对于空间频率 $f$,近轴条件下的传播角约为

$$ \theta\approx\lambda f, $$

传播距离 $z$ 后的横向位移约为

$$ x\approx\lambda zf. $$

要求这部分光场仍然位于半窗口 $L/2$ 内,可以定义安全频率

$$ f_{\mathrm{safe}}(z)=\frac{L}{2\lambda z}. $$

上图是输入角谱的中心截面,标出 sinc 第一零点(±10 mm⁻¹)、Nyquist 边界(±250 mm⁻¹)和四个距离对应的安全频率。z=1 mm、10 mm 时,安全频率还在第一零点外;z=100 mm 时降到 9.62 mm⁻¹,已经落进主瓣;z=150 mm 时只有 6.42 mm⁻¹,主瓣里已有一部分频率分量会越过窗口半宽。

空域估算

从空间域也能得到同样的结论。方孔远场第一零点的位置约为

$$ x_1\approx\frac{\lambda z}{a}. $$

代入当前参数:

$z$ $1,\mathrm{mm}$ $10,\mathrm{mm}$ $100,\mathrm{mm}$ $150,\mathrm{mm}$
$x_1$ $\approx 5.32,\mu\mathrm m$ $\approx 53.2,\mu\mathrm m$ $\approx 532,\mu\mathrm m$ $\approx 798,\mu\mathrm m$

上图是 ASM、Fresnel、Fraunhofer、DI 在中心水平截面上的归一化强度,从左到右 z=1、10、100、150 mm,黑色虚线为 Rayleigh–Sommerfeld 直接离散积分结果。z=1 mm 与 z=10 mm 时,ASM、Fresnel 和 DI 基本重合;z=100 mm、z=150 mm 时,ASM 与 Fresnel 在 DI 主瓣附近叠加了密集振荡,Fraunhofer 与 DI 仍是平滑曲线。

原窗口半宽只有 $512,\mu\mathrm m$。$z=100,\mathrm{mm}$ 时,第一零点已贴近窗口边缘;$z=150,\mathrm{mm}$ 时,它比窗口半宽大约多出 $56%$,主瓣外的结构会被截断。

Padding convergence 直接验证

保持 $\Delta x=2,\mu\mathrm m$ 不变,将网格依次扩大为 $N$、$2N$、$4N$,对应的窗口为

$$ L: 1.024\rightarrow 2.048\rightarrow 4.096\,\mathrm{mm}. $$

传播完成后,只比较三种网格共同覆盖的中心感兴趣区域(Region of Interest,下称 ROI):

短距离下,padding convergence 已经稳定。z=1 mm 和 z=10 mm 的两条曲线都在 10⁻⁵ 量级以下,没有碰到 WARN 阈值;继续增大网格,差异可以忽略。

从 z=100 mm 开始就不同了:1N→2N 已越过 FAIL 阈值,z=150 mm 时误差接近 25%;2N→4N 仍高于 WARN,说明 4N 也还不够。

原始 N=512 配置只在 z=1 mm、z=10 mm 下可信。z=150 mm 时,网格每翻一倍确实都在改善:1N→2N 的误差为 25%,2N→4N 已降到 8%,但还没有收敛。

在 padding convergence 收敛前做 inverse design,forward model 输出本身就不稳定。

Zero-padding 与真实增大 $N$ 的区别

这里的 padding convergence,就是比较 zero-padding 的效果。补零不改变原始输入的物理采样 $\Delta x$ 或方孔宽度 $a$,只是在传播前把数组扩到

$$ N_{\mathrm{pad}}=1024\ \text{或}\ 2048, $$

再做 FFT。原始输入场仍定义在 $512\times512$ 网格上,$\Delta x$ 不变;变大的是计算数组:

$$ L_{\mathrm{pad}}=N_{\mathrm{pad}}\Delta x, \qquad \Delta f_{\mathrm{pad}}=\frac{1}{N_{\mathrm{pad}}\Delta x}. $$

waveprop 的部分 FFT propagator 已内置 zero-padding。以 angular_spectrum 和 fresnel_conv 为例,pad=True 会先将输入网格扩到默认的 2 倍,即从 512×512 补到 1024×1024;传播在更大的数组上完成,最后裁回原输出区域。原始输入的 $\Delta x$ 和 $N$ 不变,FFT 内部使用更大的计算网格,以减轻 circular convolution 和周期边界的影响。

Fresnel 和 ASM 在 zero padding 之后的结果:

z=100 mm, with zero-padding
z=150 mm, with zero-padding

相较未加 padding 的 N=512 结果,ASM/Fresnel 的方格变细了,也更均匀;图中可见的间距也变小。zero-padding 将 $\Delta f$ 减半,但方格仍铺满 ±0.5 mm 窗口。Fraunhofer 和 DI 仍是平滑的方形主瓣加横纵旁瓣,没有方格。补零缓解了一部分问题,计算窗口却依然不够;waveprop 默认的 2 倍 zero-padding 对长距离传播仍然偏紧。

保持 zero-padding,再把 $N$ 真正提高到 1024。$\Delta x=2,\mu\mathrm m$ 不变:

$$ L: 1.024\rightarrow 2.048\,\mathrm{mm}, \qquad \Delta f: 976.6\rightarrow 488.3\,\mathrm{m^{-1}}. $$

得到 $z=100,\mathrm{mm}$ 和 $z=150,\mathrm{mm}$ 下四种方法的光场分布图:

z=100 mm, N=1024, with zero-padding
z=150 mm, N=1024, with zero-padding

观察窗口扩大到 ±1.024 mm 后,z=100 mm 下四种方法都出现了中心方形主瓣和横纵旁瓣,主瓣尺度也与 Fraunhofer 的远场估算一致。ASM/Fresnel 中心仍有一层细密方格;$\Delta f$ 减半后,它的间距变小了,但不再铺满整个窗口。

z=150 mm 时,亮斑继续变大,四种方法的整体形态也更接近。不过 ASM/Fresnel 中心仍看得到网格。输入频谱并不是问题,传播算子的频域采样却仍然不够:z=100 mm 和 z=150 mm 时,kernel 相位随频率的变化比当前 $\Delta f$ 能分辨的更快,kernel 本身已有欠采样风险,这也解释了中心纹理为何没有消失。

下图给出 ASM、Fresnel、Fraunhofer 与 DI 的中心截面比较。横轴是传播距离 $z$,纵轴是归一化 MSE;上图为 N=512、无 padding,下图为 N=1024、加 zero-padding。

Normalized MSE vs z, N=512 no padding, no bandlimit
Normalized MSE vs propagation distance, N=1024 with zero-padding, no bandlimit

两图的对比重点是 ASM/Fresnel。Fraunhofer 在远场的两组配置下与 DI 的曲线几乎重叠,这符合逻辑;z=150 mm 时 ASM/Fresnel vs DI 的 MSE 从约 0.165/0.185 降到约 0.018/0.048,差不多压了一个数量级,但仍未归零。因为剩余差距里既有 kernel 频域欠采样的成分,也可能夹着周期边界伪影,目前还无法把原因唯一归到某一种数值机制上。

频率采样

在 N=1024 加 zero-padding 之后,ASM/Fresnel 中心仍有细密网格。padding 收敛把 z=150 mm 处的误差从约 25% 压到约 8%,但没归零。输入频谱本身没问题:能量主要落在远离 Nyquist 的区域,不是这个纹理的主因。

可能是当前频域网格对 propagation kernel 采得不够密。BLAS[2] 类的 band-limit 正是针对这一频段;若开启 BLAS 后网格消失,说明 kernel 的频域欠采样很可能是主要来源。

ASM 传播算子

Angular Spectrum Method 的传播关系是

$$ U_z(x,y)=\mathcal F^{-1}\!\left[\mathcal F\{U_0\}\,H(f_x,f_y)\right], $$

其中

$$ H(f_x,f_y)=\exp\!\left[i2\pi z\sqrt{\tfrac{1}{\lambda^2}-f_x^2-f_y^2}\right]. $$

在标量 Helmholtz 范围内,ASM 不含 Fresnel 近似;问题在于,计算机只能采样离散的 $H(f_x,f_y)$。

$$ H(f)=e^{i\phi(f)}, \qquad \phi(f)=2\pi z\sqrt{\tfrac{1}{\lambda^2}-f^2}. $$

FFT 的频率格点为

$$ f_m=m\Delta f, \qquad \Delta f=\frac{1}{L}=\frac{1}{N\Delta x}. $$

$\phi(f)$ 的局部斜率是:

$$ \frac{d\phi}{df}=-\frac{2\pi z f}{\sqrt{1/\lambda^2-f^2}}. $$

当 $f\to 1/\lambda$ 时,分母 $\sqrt{1/\lambda^2-f^2}\to 0$,于是

$$ \left|\frac{d\phi}{df}\right|\to\infty. $$

高空间频率处,$H(f)$ 的相位变化很快。相邻频率点 $f_m$、$f_{m+1}$ 之间,真实相位可能已跨过 $3\pi$、$6\pi$,采样却只留下两个点。这就是 transfer function 的 aliasing:$H(f)$ 本身被 undersampled。

当前参数下的相步估计

下面切到 $N=1024$、$\Delta x=2,\mu\mathrm m$ 的网格:

$$ L=2.048\,\mathrm{mm}, \qquad \Delta f=488.3\,\mathrm{m^{-1}}. $$

$\Delta f$ 不随 $z$ 改变,$\phi$ 对频率的变化速度却会随 $z$ 增大。沿 $f_x$ 方向,

$$ \frac{\partial\phi_H}{\partial f_x}=-\frac{2\pi z f_x}{\sqrt{1/\lambda^2-f_x^2-f_y^2}}, $$

所以相邻频率点间的 phase step 近似为

$$ \Delta\phi_H\approx\left|\frac{\partial\phi_H}{\partial f_x}\right|\Delta f, $$

$$ \Delta\phi_H\propto z\Delta f. $$

与 $N=512$ 相比,$\Delta f$ 已减半,因此相同有效频带内的 phase step 也约减半。

取包含输入角谱 $99.9%$ 能量的有效频带

$$ f_{\mathrm{eff}}\approx2.23\times10^5\,\mathrm{m^{-1}}, $$

并在其中计算

$$ \Delta\phi_{\max}=\max\left|\phi_H(f_x+\Delta f,f_y)-\phi_H(f_x,f_y)\right|, $$

四个距离下的结果为:

$z$ $1,\mathrm{mm}$ $10,\mathrm{mm}$ $100,\mathrm{mm}$ $150,\mathrm{mm}$
$\Delta\phi_{\max}$ $\approx 0.117\pi$ $\approx 1.17\pi$ $\approx 11.7\pi$ $\approx 17.5\pi$

将 $\Delta\phi_H\approx\pi$ 作为工程警戒线:$z=1,\mathrm{mm}$ 相对安全,$z=10,\mathrm{mm}$ 刚越线;$z=100,\mathrm{mm}$ 和 $z=150,\mathrm{mm}$ 的 propagator undersampling 风险仍然明显。

将 $N$ 从 512 提高到 1024,frequency sampling 确实改善了,但仍不足以覆盖长距离传播。窗口虽扩大一倍,z=100 mm 和 z=150 mm 时 propagation kernel 的相位变化仍比当前 frequency grid 快一个数量级以上。

Matsushima 和 Shimobaba[2]提出 BLAS,正是为处理标准 ASM 的 transfer function 在有限采样、有限窗口和传播几何共同限制下产生的误差。它裁去当前网格无法可靠传播的高频部分。

waveprop 可以直接开启 bandlimit:

1
2
3
4
# 公共 API:angular_spectrum 返回 (u_out, x_out, y_out);这里显式开启 bandlimit 与 padding
u_asm, x_asm, y_asm = angular_spectrum(U0, wavelength, dx, z, bandlimit=True, pad=True)

u_fres, _, _ = fresnel_conv(U0, wavelength, dx, d2_out, z, pad=True)

启用 bandlimit 后,$z=100,\mathrm{mm}$ 和 $z=150,\mathrm{mm}$ 的结果如下:

z=100 mm, N=1024, band-limited ASM
z=150 mm, N=1024, band-limited ASM

启用 bandlimit 后,z=100 mm 和 z=150 mm 的 ASM 中心方格几乎消失,亮斑也与 DI 几乎贴合。这支持 kernel 欠采样是原有纹理主要来源的判断。

网格取 $N=1024$,加入 zero-padding 并开启 bandlimit 后,ASM、Fresnel、Fraunhofer 与 DI 的中心截面比较如下:

Normalized MSE vs z, N=1024 + zero-padding
Normalized MSE vs z, N=1024 + zero-padding + band-limit (BLAS)

z=100 mm、z=150 mm 时,ASM/Fresnel 的 MSE 明显降低。以 z=100 mm 为例,ASM 从约 0.066 降到约 0.01,Fresnel 从约 0.081 降到约 0.005;z=150 mm 时,ASM 约为 0.018,Fresnel 为 0.048。ASM 相对 DI 的误差已接近 0;Fresnel 因 paraxial approximation 仍保留约 0.048 的差距。

下图是中心水平截面的归一化强度,从左到右为 $z=1,,10,,100,,150,\mathrm{mm}$;黑色虚线为 DI。

Central cross-sections of intensity

z=1 mm、10 mm 时,ASM、Fresnel 与 DI 基本重合,Fraunhofer 仍明显偏离。z=100 mm、150 mm 时,ASM 与 DI 在共同 ROI 和容差内几乎贴合;Fresnel 的主瓣上仍有 paraxial approximation 带来的高频振荡。

传播模型适用性

模型选择和离散网格是两层问题。Fresnel 用 paraxial 近似,Fraunhofer 用远场近似,ASM 使用完整的标量 $k_z$,DI 则直接离散 Rayleigh–Sommerfeld 积分。它们的物理假设不同;即便输入场和网格相同,结果也不一定应当相同。

传播距离 $z$ 会同时影响两层条件。距离太短时,Fresnel 和 Fraunhofer 的近似可能还不成立;距离变长后,ASM 的 kernel 相位又可能快过频域网格的采样速度。每次改变传播距离,都要重新检查模型假设和离散条件。

在 differentiable optics 中,后续优化无法补救选错的传播模型。若在 $z=1,\mathrm{mm}$ 用 Fraunhofer 反传,autograd 会按远场 sinc 模式调整 phase map,loss 可以持续下降,目标却不是实际的近场光场。长距离 ASM 不开 bandlimit 也是一样:autograd 会把欠采样 kernel 产生的网格纹理写进 phase map;loss 下降了,相位图里却混入数值伪影。

误差的两类来源

比较 Fresnel、ASM 和 DI 的输出前,先把公式本身的近似和网格造成的误差分开:

$$ \text{总误差} = \text{传播模型近似误差} + \text{数值离散误差}. $$

Taylor 截断、远场假设和倏逝波处理,属于公式层面的近似;kernel 相位 aliasing、有限孔径、quadrature 和 circular convolution,则来自离散网格。同一个 ASM 在 $N=1024$、padding 与 BLAS 都开启时表现良好,在 $N=512$ 上却出现方格,说明问题出在离散条件,公式本身没有变。下面分别看模型近似和传播算子的离散误差。

传播模型的近似误差

ASM、Fresnel、Fraunhofer 的关系可以直接从 ASM 的传播相位展开来看[3]
$$
\phi_{ASM}(f_x, f_y) = 2\pi z \sqrt{\tfrac{1}{\lambda^2} - f_x^2 - f_y^2}.
$$

对 $\sqrt{1 - \lambda^2(f_x^2+f_y^2)}$ 在零频附近展开:
$$
\phi_{ASM} = \tfrac{2\pi z}{\lambda} - \pi\lambda z (f_x^2+f_y^2) - \tfrac{\pi}{4}\lambda^3 z (f_x^2+f_y^2)^2 + O(f^6).
$$

去掉与频率无关的全局相位,Fresnel 只保留二次项:
$$
\phi_{Fresnel} = -\pi\lambda z (f_x^2 + f_y^2).
$$
Fraunhofer 在相位近似上也忽略这一二次项,并将输出写成按距离缩放的傅里叶变换。

对边长为 $a$ 的孔径,Fraunhofer 忽略二次相位后产生的最大相差为
$$
\max|\Delta\phi_{Fr \leftarrow F}| = \tfrac{\pi a^2}{4\lambda z} = \tfrac{\pi N_F}{4},
\qquad N_F = \tfrac{a^2}{\lambda z}.
$$
$N_F$ 是 Fresnel 数。$N_F\gg1$ 仍是近场,$N_F\ll1$ 才进入 Fraunhofer 的远场范围。这个 $100,\mu\mathrm m$ 方孔在 $532,\mathrm{nm}$ 波长下,$a^2/\lambda\approx18.8,\mathrm{mm}$。$z=10,\mathrm{mm}$ 时 $N_F\approx1.88$,Fraunhofer 还不适用;$z=100,\mathrm{mm}$ 和 $150,\mathrm{mm}$ 时分别为 $0.188$、$0.125$,可视为这组参数下的远场。

Fresnel 舍去四阶及更高阶项。以 $\sin\theta=\lambda f$ 把空间频率写成传播角度,Fresnel 相对 ASM 漏掉的第一项相位为
$$
\Delta\phi_{F \leftarrow A} = \tfrac{\pi z \sin^4\theta}{4\lambda}.
$$
$\Delta\phi_{F \leftarrow A}$ 表示同一角度分量传播距离 $z$ 后,Fresnel 与 ASM 累积的相位差。Fresnel 以二次相位近似精确的平方根相位;当这项差异接近 $1,\mathrm{rad}$,两者对该频率分量的相位预测就会明显分开。若保守地要求相位余项远小于 $1,\mathrm{rad}$,则有
$$
z \ll \tfrac{4\lambda}{\sin^4\theta}.
$$
这不是严格的物理边界,$1,\mathrm{rad}$ 只是在量级上筛查近似误差会不会影响结果。Fresnel 能否使用也不只取决于距离,还要看准备保留的传播角度:角度越大,舍去的四阶相位累积得越快。

主瓣第一零点处,$\theta_1=\lambda/a\approx5.3,\mathrm{mrad}$,对应距离上限约为 $2.7,\mathrm{km}$,所以 $1$ 至 $150,\mathrm{mm}$ 内的主瓣可用 Fresnel 描述。若要保留 $5^\circ$ 的旁瓣,界限缩到约 $37,\mathrm{mm}$;$10^\circ$ 时仅约 $2.3,\mathrm{mm}$。这和 Fraunhofer 的远场条件并不是同一件事:同一距离上,Fraunhofer 可能已足够描述孔径形成的远场主瓣,Fresnel 对宽角旁瓣的相位却仍会偏离 ASM。

ASM 没有 Fresnel 的 Taylor 截断。对传播波,它使用完整的标量 $k_z$;令 $q=\sqrt{f_x^2+f_y^2}$,倏逝波对应 $q>1/\lambda$,需要另行处理。许多实现会直接将它们置零,但近场、sub-wavelength 或 metasurface 问题可能正需要这部分信号。这时可以估计目标面仍保留的倏逝波能量:
$$
\eta_{\rm ev}(z) = \tfrac{\iint_{q>1/\lambda} |\tilde U_0|^2 \exp[-4\pi z\sqrt{q^2-1/\lambda^2}]}{\iint |\tilde U_0|^2}.
$$

Forbes[5]指出,衍射积分中的振荡项会彼此抵消,因此这类相位余项适合作为保守筛查量。Southwell[4]给出的实验误差可用于量级参照。

传播算子的离散误差

DI 直接离散 Rayleigh–Sommerfeld 积分,不含 Fresnel 或 Fraunhofer 的 Taylor 截断;但输入采样、积分求积、有限孔径和输出网格仍会带来误差。FFT-DI 还要处理 circular convolution 与 zero padding[1]

ASM 的离散误差主要出在传播算子。距离变长后,相邻频率格点的相位可能跨过多个 $\pi$,当前 $\Delta f$ 无法采准高频部分,输出便会出现并不存在的网格纹理。zero-padding 会加密频率网格,能减轻但不保证消除误差。活动频带的 phase-step,以及不同 padding 下结果是否稳定,才决定当前 ASM 能不能用。若 BLAS 裁掉不可靠频带后重新贴合已收敛的 DI,就可以把纹理归因于 propagation kernel 的离散采样。

同一个 ASM 在 $N=512$ 上出现方格,在 $N=1024$ 加 padding 和 BLAS 后贴合 DI,变的只是离散条件。若用未限带的 ASM 做长距离 inverse design,优化器会把这些纹理当作可利用的结构;loss 即使下降,phase map 也不会对应实验中的光场。

当前参数下的选型

这组方孔的模型假设和离散网格都得通过检查。$N_F$ 用来判断 Fraunhofer 的远场假设;活动频带内的 $\Delta\phi_{\max}$ 用来判断 ASM 的 kernel 是否欠采样;padding convergence 则检查有限窗口和周期边界是否已经收敛。表中的 phase-step 使用 $N=1024$ 时的频域网格。

$z$ $N_F$ $\Delta\phi_{\max}$ 选择
$1,\mathrm{mm}$ $18.8$ $0.117\pi$ Fresnel 或 ASM。窗口收敛后不需要 BLAS。
$10,\mathrm{mm}$ $1.88$ $1.17\pi$ Fraunhofer 仍不适用。主瓣可用 Fresnel;若采用 ASM,需处理 kernel 的欠采样。
$100,\mathrm{mm}$ $0.188$ $11.7\pi$ Fraunhofer 已进入适用范围。若需要 ASM 的完整场,须加 padding 和 BLAS。
$150,\mathrm{mm}$ $0.125$ $17.5\pi$ Fraunhofer 可用;ASM 还要通过 padding convergence。$1N\to2N$ 的边缘能量约为 $22.4%$,原窗口不能直接使用。

度量与 reference 选择

有些指标在传播前就能算出:传播算子的 phase-step 取决于 $z$、$\Delta f$ 和活动频带;倏逝波残余 $\eta_{\rm ev}(z)$ 可由输入角谱和距离估计;Fresnel 相对 ASM 的相位余项也只应在实际有能量的频带内取最大值。若把它们扩到整个 FFT 网格,最大值可能落在空频段,对当前光场没有参考价值。

模型和网格条件通过后,再比较输出场。若关心目标面的光强,可用

$$ \epsilon_I = \frac{\|I_{\rm test}-I_{\rm ref}\|_2}{\|I_{\rm ref}\|_2}. $$

如果 phase map 还要送入后续设计,就应比较复振幅。两组场可能只差一个没有物理意义的全局相位,先令

$$ \alpha = \arg\left[\sum U_{\mathrm{ref}}^* U_{\mathrm{test}}\right], \qquad U_{\mathrm{test}}' = U_{\mathrm{test}} e^{-i\alpha}, $$

并计算

$$ \epsilon_U = \frac{\left\|U_{\mathrm{test}}' - U_{\mathrm{ref}}\right\|_2}{\left\|U_{\mathrm{ref}}\right\|_2}. $$

局部相位差为 $\arg\left(U_{\mathrm{test}}’ U_{\mathrm{ref}}^*\right)$。暗区的 $|U|$ 接近零,phase 本身不稳定,统计时只保留 $I_{\mathrm{ref}}>10^{-3}I_{\max}$ 的区域。不同传播器返回的输出坐标未必一致,比较前需插值到共同 ROI。

Fresnel 可与 ASM 对照,ASM 可与 DI 对照。DI 要充当 reference,自身也必须通过积分和网格收敛检查。允许的误差取决于任务:只比较目标面光强,和把复振幅继续送入后续设计,对精度的要求不同。

总结

这次方孔实验里,输入端的采样没有明显问题:方孔宽度由 50 个像素表示,主要频谱能量也远离 Nyquist 边界。真正限制结果的是传播后的离散条件。距离增大后,1.024 mm 的窗口装不下主瓣及其旁瓣,FFT 的周期边界开始影响结果;同时,ASM 的传播算子在频域中变化过快,有限的 $\Delta f$ 无法可靠采样,输出里便出现了并不存在的网格纹理。

因此,做 inverse design 之前,不能只确认代码能跑、loss 能降。至少要检查输入采样、计算窗口、padding convergence、活动频带内的 kernel phase-step,以及所选传播模型的适用范围。对这组参数而言,短距离下 Fresnel 或 ASM 都能使用;长距离若需要 ASM 的完整场,则应扩大网格、加入 zero-padding,并启用 band-limit,再用已收敛的 DI 或其他可信 reference 对照输出。

这些检查并不保证模型已经等同于实验系统,但能先排除一类更基础的问题:优化器是否在利用 forward model 的数值误差。forward model 没有收敛时,梯度再正确,也只会把伪影写进 phase map。

参考文献

[1] Shen, F. & Wang, A. (2006). Fast-Fourier-transform based numerical integration method for the Rayleigh–Sommerfeld diffraction formula. Applied Optics 45(6), 1102–1110. DOI

[2] Matsushima, K. & Shimobaba, T. (2009). Band-Limited Angular Spectrum Method for Numerical Simulation of Free-Space Propagation in Far and Near Fields. Optics Express 17(22), 19662–19673. DOI

[3] Goodman, J. W. (2005). Introduction to Fourier Optics. Roberts & Company Publishers. 3rd edition.

[4] Southwell, W. H. (1981). Validity of the Fresnel approximation in the near field. JOSA 71(1), 7–14. DOI

[5] Forbes, G. W. (1996). Validity of the Fresnel approximation in the diffraction of collimated beams. JOSA A 13(9), 1816–1826. DOI