背景
上一篇 用 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$ 的理想方孔,置于计算窗口中心:
由此得到计算窗口的物理宽度为
横纵方向覆盖 $[-0.512,,0.512],\mathrm{mm}$。
输入场与角谱
下图左侧为输入方孔,右侧为它的二维角谱幅度。

左图:方孔宽度占 50 个像素,边缘陡直,没有可见的锯齿或台阶。右图是它的二维频谱:中心一个亮峰,能量主要集中在中心十字形区域;横纵方向延伸出较弱的旁瓣。
不同距离下的传播图
waveprop 实现了 Fraunhofer、Fresnel、Angular Spectrum Method 和 Direct Integration。这里让四种方法都返回真实输出坐标,并在相同的物理观察窗口中比较。DI 直接离散 Rayleigh–Sommerfeld diffraction integral[1],没有 Fresnel 或 Fraunhofer 近似,但仍受输入采样、输出窗口和离散积分误差限制,因此只把它作为交叉参考。
依次传播到
每张图从左到右依次为 ASM、Fresnel、Fraunhofer 和 DI 四种方法在同一 ±0.5 mm 观察窗口内的结果。

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

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

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

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、传播算子欠采样,也可能是传播模型不在适用范围。
这次传播需要检查的几个条件
网格参数
当前参数为
由 $\Delta x$ 与 $N$ 可以直接得到空间窗口宽度
横纵方向覆盖
FFT 把空间域映射到频域后,频率采样间隔由 $L$ 唯一决定:
对应的 Nyquist frequency 则由 $\Delta x$ 决定:
$\Delta x$ 决定输入场在空间域里采得够不够细;$L$ 决定传播后的光场会不会跑出窗口;$\Delta f$ 决定输入频谱与 propagation kernel 在频域里采得够不够密。
输入采样
空域看方孔轮廓是否被充分采样,频域看主要频谱能量是否集中在远离 Nyquist 边界的区域、并且其结构是否被 $\Delta f$ 充分描述。
空域检查
输入方孔宽度为
在当前网格上横向占
个像素。方孔宽度由 50 个采样点表示,轴对齐边界没有明显的栅格化失真。
频域检查
对输入场做二维 Fourier transform:
频谱能量为
方孔存在硬边,因此频谱呈 sinc 型,没有有限带宽。这里定义边缘能量比 $\eta_{\mathrm{edge}}$,统计 Nyquist 频带最外侧 $20%$ 内的能量占比:
当前参数下得到
输入频谱几乎完全集中在 $|f|<0.8f_N$ 的内部区域,只有方孔硬边引入的高频尾部(约 $0.42%$ 的能量)落在最外侧 $20%$ 的频带内。

上图左为输入方孔,右为它的二维角谱。红实线方框是外圈能量占比对应的频率区域,橙虚线方框是 sinc 主瓣。两块之间的空白区域就是被求和的高频尾部,对应 0.42% 的量化结果。
再看频域分辨率。方孔 sinc 频谱从中心到第一零点的频率尺度为
当前
因此在一个 $1/a$ 的频率尺度内大约有
个采样点。这一密度足以分辨 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}$ 的窗口里?
窗口半宽为
频域估算
对于空间频率 $f$,近轴条件下的传播角约为
传播距离 $z$ 后的横向位移约为
要求这部分光场仍然位于半窗口 $L/2$ 内,可以定义安全频率

上图是输入角谱的中心截面,标出 sinc 第一零点(±10 mm⁻¹)、Nyquist 边界(±250 mm⁻¹)和四个距离对应的安全频率。z=1 mm、10 mm 时,安全频率还在第一零点外;z=100 mm 时降到 9.62 mm⁻¹,已经落进主瓣;z=150 mm 时只有 6.42 mm⁻¹,主瓣里已有一部分频率分量会越过窗口半宽。
空域估算
从空间域也能得到同样的结论。方孔远场第一零点的位置约为
代入当前参数:
| $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$,对应的窗口为
传播完成后,只比较三种网格共同覆盖的中心感兴趣区域(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$,只是在传播前把数组扩到
再做 FFT。原始输入场仍定义在 $512\times512$ 网格上,$\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 之后的结果:


相较未加 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$ 不变:
得到 $z=100,\mathrm{mm}$ 和 $z=150,\mathrm{mm}$ 下四种方法的光场分布图:


观察窗口扩大到 ±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。


两图的对比重点是 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 的传播关系是
其中
在标量 Helmholtz 范围内,ASM 不含 Fresnel 近似;问题在于,计算机只能采样离散的 $H(f_x,f_y)$。
令
FFT 的频率格点为
$\phi(f)$ 的局部斜率是:
当 $f\to 1/\lambda$ 时,分母 $\sqrt{1/\lambda^2-f^2}\to 0$,于是
高空间频率处,$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$ 的网格:
$\Delta f$ 不随 $z$ 改变,$\phi$ 对频率的变化速度却会随 $z$ 增大。沿 $f_x$ 方向,
所以相邻频率点间的 phase step 近似为
即
与 $N=512$ 相比,$\Delta f$ 已减半,因此相同有效频带内的 phase step 也约减半。
取包含输入角谱 $99.9%$ 能量的有效频带
并在其中计算
四个距离下的结果为:
| $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 | # 公共 API:angular_spectrum 返回 (u_out, x_out, y_out);这里显式开启 bandlimit 与 padding |
启用 bandlimit 后,$z=100,\mathrm{mm}$ 和 $z=150,\mathrm{mm}$ 的结果如下:


启用 bandlimit 后,z=100 mm 和 z=150 mm 的 ASM 中心方格几乎消失,亮斑也与 DI 几乎贴合。这支持 kernel 欠采样是原有纹理主要来源的判断。
网格取 $N=1024$,加入 zero-padding 并开启 bandlimit 后,ASM、Fresnel、Fraunhofer 与 DI 的中心截面比较如下:


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。

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 的输出前,先把公式本身的近似和网格造成的误差分开:
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 网格,最大值可能落在空频段,对当前光场没有参考价值。
模型和网格条件通过后,再比较输出场。若关心目标面的光强,可用
如果 phase map 还要送入后续设计,就应比较复振幅。两组场可能只差一个没有物理意义的全局相位,先令
并计算
局部相位差为 $\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