跳到主要内容
Sandbox Physics

光学 068 · 衍射、Fourier 光学与计算成像

相位恢复挑战

只测光的强度,能把相位找回来吗? 要靠额外约束,而且总有解不开的地方。知道物体只在哪块区域里有值,或者在几个平面上分别测量,就能恢复相位。但只有一张焦面图样时,物体和它的共轭孪生像(转半圈、相位取反)分不开;整体的常数相位,任何强度数据都定不下来。

从模拟的强度记录中恢复看不见的相位片。让一台 CCD 在几个离焦位置间移动,遇到孪生像歧义,回放不知道答案的迭代过程,再试试错误的支撑假设会带来什么。

交互模型相位恢复挑战
采集振幅拟合残差 εA\varepsilon_A0.500.50
仅模拟真值相位评分/缺失面积 σϕ,m\sigma_\phi,m50%50\%
迭代次数/采集记录数 k,Nzk,N_z0.00π0.00\pi
模型适用区间模型适用\text{模型适用}

物理教程

检验相位恢复挑战的物理过程

背景CCD 只记录振幅的平方,光学相位丢失了:Ij=∣Fu{djU}∣2I_j=|\mathcal F_u\{d_j U\}|^2。每个已知的离焦位置,都在 Fourier 变换之前以已知方式改变同一个物场。

为什么值得理解只测光的强度,能把相位找回来吗?

先抓重点

核心问题
只测光的强度,能把相位找回来吗?
一句话直觉
在焦面上,物体和它取共轭、再中心反转得到的孪生体给出完全相同的数据:∣FuU∣2=∣Fu{U∗(−r)}∣2|\mathcal F_u U|^2=|\mathcal F_u\{U^*(-\mathbf r)\}|^2。精确的另一个解,和停滞在两者之间的混合结果,是两回事。多个已知平面可以排除孪生解,却永远定不了全局活塞相位。

核心数学模型

移动相机引入已知的离焦相位

Mj=(−δj/ff−1/f0)dj(r)=e−iπδjr2/(λf2)ΔxD=λfNΔxO\begin{aligned}M_j&=\begin{pmatrix}-\delta_j/f&f\\-1/f&0\end{pmatrix}\\d_j(\mathbf r)&=e^{-i\pi\delta_j r^2/(\lambda f^2)}\\\Delta x_D&=\frac{\lambda f}{N\Delta x_O}\end{aligned}

物体在透镜前一个焦距处,相机在透镜后一个焦距再加上带符号的离焦量。光路中没有另加相位片。坐标单位为毫米,离焦为正表示相机离透镜更远。

投影到测量振幅上

gj=Fu(djUk)hj=Ijeiarg⁡gjUk+1=PS ⁣[1Nz∑jdj∗Fu−1hj]\begin{aligned}g_j&=\mathcal F_u(d_j U_k)\\h_j&=\sqrt{I_j}e^{i\arg g_j}\\U_{k+1}&=\mathcal P_S\!\left[\frac1{N_z}\sum_j d_j^*\mathcal F_u^{-1}h_j\right]\end{aligned}

用采集到的振幅替换预测振幅。每个平面都反向传播回物面,再取平均;然后在假定的圆形支撑内把振幅设为一,支撑外设为零。这是 GS 类的并行投影,不是 HIO,也不保证找到全局最优。

拟合与真值是两种检验

εA2=∑j∥ ∣gj∣−Ij ∥2∑j∥Ij∥2σϕ2=⟨wrap⁡(ϕk−ϕtrue−c)2⟩\begin{aligned}\varepsilon_A^2&=\frac{\sum_j\|\,|g_j|-\sqrt{I_j}\,\|^2}{\sum_j\|\sqrt{I_j}\|^2}\\\sigma_\phi^2&=\langle\operatorname{wrap}(\phi_k-\phi_{\rm true}-c)^2\rangle\end{aligned}

残差只用采集数据。相位评分只在模拟中才有:它先减去最佳的全局活塞,再在支撑交集内统计。真实物体落在支撑外的面积另外列出;孪生解不会被悄悄算作正确。

加性读出噪声与截零

Ijrec=max⁡(0,Ijideal+nj)nj∼N(0,η2Iclear2)\begin{aligned}I_j^{\rm rec}&=\max(0,I_j^{\rm ideal}+n_j)\\n_j&\sim\mathcal N(0,\eta^2 I_{\rm clear}^2)\end{aligned}

读出噪声是加性的,种子固定,幅度以同一个参考为准:无遮挡孔径图样的峰值。在零处截断会让暗像素偏高。模型不涉及散粒噪声,也不涉及光子预算。固定的对数色标不会对每张图单独归一。

常见难点

数据误差小,相位就一定对吗?

容易误解只要迭代足够多,就总能得到唯一的物理相位。

正确理解不对。约束是非凸的,迭代可能停滞;Fourier 孪生解也能精确拟合数据。支撑区设错,会删掉真实的物体像素。合成真值不交给算法,只用来评估结果。

动手实验

  1. 01

    场景 1:一张图 · 两个有效相位

    把一张焦面记录和三张离焦记录对比,样品、种子、孔径和迭代次数都保持不变。

    你会看到: 在这个例子里,几张离焦记录排除了焦面上的孪生解;全局活塞相位仍然观测不到。
  2. 02

    场景 2:扫描三平面 · 恢复相位

    回放误差曲线。换一个盲初值,比较拟合误差和单独标出的相位评分。

    你会看到: 支撑只是软件里的约束,不是光路中的实体光阑。移动的只有相机;换重建种子,探测记录不会变。
  3. 03

    场景 3:错误支撑与噪声

    把假定的支撑圆向内拖,加上噪声,再在总览、侧视和细节视图里看 CCD 实际移动。

    你会看到: 残差小,不能证明相位正确。支撑设错,或者读出噪声在零处被截断,都会让重建出现偏差。
反馈这个页面有错误、看不明白,或者缺了什么?告诉我们
反馈类型

提交时会附带本页地址、Lab ID、网站语言和设备类型。请不要填写个人信息。反馈最多保存 12 个月。隐私政策