前言
经典的光学相位恢复算法有 1971 年提出的 GS 算法和 1980 年提出的 YG 算法,分别适用于特定光学衍射过程和一般光学衍射过程
Gerchberg-Saxton Algorithm
基本定义
二维光场在物平面的入射光场可表示为
E
1
(
x
1
,
y
1
)
=
ρ
1
(
x
1
,
y
1
)
⋅
e
ı
ϕ
1
(
x
1
,
y
1
)
E_1(x_1,y_1)=\rho_1(x_1,y_1)\cdot e^{\imath\phi_1(x_1,y_1)}
E1(x1,y1)=ρ1(x1,y1)⋅eıϕ1(x1,y1)
同理,像平面的出射光场可表示为
E
2
(
x
2
,
y
2
)
=
ρ
2
(
x
2
,
y
2
)
⋅
e
ı
ϕ
2
(
x
2
,
y
2
)
E_2(x_2,y_2)=\rho_2(x_2,y_2)\cdot e^{\imath\phi_2(x_2,y_2)}
E2(x2,y2)=ρ2(x2,y2)⋅eıϕ2(x2,y2)
其中
ρ
1
(
x
1
,
y
1
)
,
ρ
2
(
x
2
,
y
2
)
\rho_1(x_{1},y_{1}),\;\rho_2(x_{2},y_{2})
ρ1(x1,y1),ρ2(x2,y2) 为物平面和像平面光场的振幅分布,
ϕ
1
(
x
1
,
y
1
)
,
ϕ
2
(
x
2
,
y
2
)
\phi_1(x_1,y_1),\;\phi_2(x_2,y_2)
ϕ1(x1,y1),ϕ2(x2,y2) 为物平面和像平面光场的相位分布
在夫琅和费衍射或透镜衍射中,入射光场与出射光场之间存在傅立叶变换关系
正过程可以近似表示为
E
2
(
x
2
,
y
2
)
=
F
[
E
1
(
x
1
,
y
1
)
]
E_2(x_2,y_2)=\mathcal{F}[E_1(x_1,y_1)]
E2(x2,y2)=F[E1(x1,y1)]
其逆过程为
E
1
(
x
1
,
y
1
)
=
F
−
1
[
E
2
(
x
2
,
y
2
)
]
E_1(x_1,y_1)=\mathcal{F}^{-1}[E_2(x_2,y_2)]
E1(x1,y1)=F−1[E2(x2,y2)]
在 GS 算法中振幅分布
ρ
1
(
x
1
,
y
1
)
,
ρ
2
(
x
2
,
y
2
)
\rho_1(x_{1},y_{1}),\;\rho_2(x_{2},y_{2})
ρ1(x1,y1),ρ2(x2,y2) 已知,通过多次迭代的方法求解未知相位分布
ϕ
1
(
x
1
,
y
1
)
,
ϕ
2
(
x
2
,
y
2
)
\phi_1(x_1,y_1),\;\phi_2(x_2,y_2)
ϕ1(x1,y1),ϕ2(x2,y2),初值敏感,易陷入局部最优,后续有诸多改进方法如加权 GS 算法等
算法逻辑
1. 随机初始化入射光场的相位 ϕ 1 ′ ( x 1 , y 1 ) \phi_1^{\prime}(x_1,y_1) ϕ1′(x1,y1) ,与已知的入射光场振幅分布 ρ 1 ( x 1 , y 1 ) \rho_1(x_{1},y_{1}) ρ1(x1,y1) 合成入射光场 E 1 ′ ( x 1 , y 1 ) E_1^{\prime}(x_1,y_1) E1′(x1,y1)
2. 入射光场经过夫琅和费衍射或透镜汇聚过程等价通过傅立叶变换得射光场 E 2 ( x 2 , y 2 ) E_2(x_2,y_2) E2(x2,y2) 的相位 ϕ 2 ( x 2 , y 2 ) \phi_2(x_2,y_2) ϕ2(x2,y2)
3. 由上步的新相位和已知出射光场振幅分布 ρ 2 ( x 2 , y 2 ) \rho_2(x_{2},y_{2}) ρ2(x2,y2) 合成出射光场 E 2 ′ ( x 2 , y 2 ) E_2^{\prime}(x_2,y_2) E2′(x2,y2)
4. 出射光经过夫琅和费衍射或透镜汇聚的逆过程等价通过傅立叶反变换得入射光场 E 1 ( x 1 , y 1 ) E_1(x_1,y_1) E1(x1,y1) 的相位 ϕ 1 ( x 1 , y 1 ) \phi_1(x_1,y_1) ϕ1(x1,y1)
5. 由上步的新相位和已知入射光场振幅分布 ρ 1 ( x 1 , y 1 ) \rho_1(x_{1},y_{1}) ρ1(x1,y1) 合成入射光场 E 1 ′ ( x 1 , y 1 ) E_1^{\prime}(x_1,y_1) E1′(x1,y1)
6. 回到步骤 2 进行下一次循环,不断迭代直至光场趋于稳定 m i n 1 k ∑ x 1 , x 2 , y 1 , y 2 = 1 x 1 , x 2 , y 1 , y 2 = k [ ∣ E 1 ( x 1 , y 1 ) ∣ 2 − ∣ E 1 ′ ( x 1 , y 1 ) ∣ 2 ] 2 min \frac{1}{k}\sum_{x_1,x_2,y_1,y_2=1}^{x_1,x_2,y_1,y_2=k}[\mid E_1(x_1,y_1)\mid^2-\mid E_1^{\prime}(x_1,y_1)\mid^2]^2 mink1∑x1,x2,y1,y2=1x1,x2,y1,y2=k[∣E1(x1,y1)∣2−∣E1′(x1,y1)∣2]2, k k k 为变量的上限值
杨顾算法
基本定义
YG 算法扩展了 GS 算法,解决入射光场与出射光场之间非幺正变换的情况,可普遍应用于一般衍射器件,后续有诸多改进方法如加权 YG 算法等
高维光场进行
m
m
m 次均匀采样,因此物平面的入射光场可表示为
E
1
i
=
ρ
1
i
⋅
e
ı
ϕ
1
i
,
i
=
1
,
2
,
⋯
,
m
E_{1i}=\rho_{1i}\cdot e^{\imath\phi_{1i}},\;i=1,2,\cdots,m
E1i=ρ1i⋅eıϕ1i,i=1,2,⋯,m
在传播轴上进行
n
n
n 次均匀采样,因此像平面的出射光场可表示为
E
2
j
=
ρ
2
j
⋅
e
ı
ϕ
2
j
,
j
=
1
,
2
,
⋯
,
n
E_{2j}=\rho_{2j}\cdot e^{\imath\phi_{2j}},\;j=1,2,\cdots,n
E2j=ρ2j⋅eıϕ2j,j=1,2,⋯,n
其中 ρ 1 , ρ 2 \rho_{1},\;\rho_{2} ρ1,ρ2 和 ϕ 1 , ϕ 2 \phi_{1},\;\phi_{2} ϕ1,ϕ2 分别是物平面和像平面光场的振幅和相位
物平面的入射光场和像平面的出射光场之间满足一般光学变换关系,可以是非幺正变换即变换矩阵可以是非酉矩阵
酉矩阵定义,设存在一个 n n n 阶矩复数矩阵 U U U 满足
U H U = U U H = E n U^{H}U=UU^{H}=E_n UHU=UUH=En
则 U U U 为酉矩阵,其中 U H U^H UH 是 U U U 的共轭转置矩阵且 U H = U − 1 U^H=U^{-1} UH=U−1, E n E_n En 是 n n n 阶单位矩阵,酉矩阵 U U U 行与列的二阶范数都是 1 1 1 且 ∥ U x ∥ 2 = ∥ x ∥ 2 \parallel Ux\parallel_2=\parallel x\parallel_2 ∥Ux∥2=∥x∥2,当元素都为实数是就是正交矩阵
正过程为
E
2
j
=
∑
i
=
1
m
G
i
j
⋅
E
1
i
E_{2j}=\sum_{i=1}^{m}G_{ij}\cdot E_{1i}
E2j=i=1∑mGij⋅E1i
其中 G G G 是核函数根据描述光场传播的衍射公式以及物平面与像平面之间相互关系决定
定义所得光场和所需光场之间的二阶范数来描述两者的距离
D
2
=
∥
E
2
−
G
⋅
E
1
∥
2
D^2=\;\parallel E_{2}-G\cdot E_{1}\parallel_2
D2=∥E2−G⋅E1∥2
当
D
2
D^2
D2 取极小值时,物平面的入射光场的相位
ϕ
1
\phi_1
ϕ1 与像平面出射光场的相位
ϕ
2
\phi_2
ϕ2 可表示为
ϕ
1
k
=
a
r
g
⌊
∑
j
=
1
n
G
j
k
H
E
2
j
−
∑
j
≠
k
A
k
j
E
1
k
⌋
(1)
\tag{1} \begin{aligned} \phi_{1k} &=arg\left\lfloor{\sum_{j=1}^{n}G_{jk}^HE_{2j}-\sum_{j\not=k}A_{kj}E_{1k}}\right\rfloor\\ \end{aligned}
ϕ1k=arg⎣⎢⎢⎢j=1∑nGjkHE2j−j=k∑AkjE1k⎦⎥⎥⎥(1)
ϕ 2 k = a r g ⌊ ∑ k = 1 m G k j E 1 k ⌋ (2) \tag{2} \begin{aligned} \phi_{2k} &=arg\left\lfloor{\sum_{k=1}^{m}G_{kj}E_{1k}}\right\rfloor\\ \end{aligned} ϕ2k=arg⌊k=1∑mGkjE1k⌋(2)
其中 A = G + G , A H = A A=G^+G,\;A^H=A A=G+G,AH=A 而 G + G^+ G+ 是 G G G 的广义逆矩阵 Moore-Penrose 伪逆, ⌊ f ( x ) ⌋ \lfloor f(x)\rfloor ⌊f(x)⌋ 是对 f ( x ) f(x) f(x) 向下取整
Moore-Penrose 伪逆定义,设存在一个矩阵 A A A 有
A + = lim x → 0 ( A T A + x I ) − 1 A T A^+=\lim_{x\rightarrow0}(A^TA+xI)^{-1}A^T A+=x→0lim(ATA+xI)−1AT
计算式
A + = V + Σ U H A^+=V^+\Sigma U^H A+=V+ΣUH
先对 A A A 采用奇异值分解得到
S V D ( A ) = U Σ V H \mathrm{SVD}(A)=U\Sigma V^H SVD(A)=UΣVH
U , V H U,\;V^H U,VH 是酉矩阵, Σ \Sigma Σ 是一个除了主对角线上的元素以外全为 0 0 0 的矩阵,主对角线上的每个元素都是奇异值,若 A A A 为方阵则 Σ \Sigma Σ 即为特征值矩阵 D D D对于 A x = y Ax=y Ax=y 如果无解我们使用 ∥ y A + − x ∥ 2 \parallel yA^+ -x\parallel_2 ∥yA+−x∥2 最小的 Moore-Penrose 伪逆,如果多解我们使用 ∥ y A + ∥ 2 \parallel yA^+\parallel_2 ∥yA+∥2 最小的 Moore-Penrose 伪逆
算法逻辑
1. 随机初始化入射光场的相位 ϕ 1 \phi_{1} ϕ1 ,与已知的入射光场振幅分布 ρ 1 \rho_{1} ρ1 合成初始化的入射光场 E 1 E_{1} E1
2. 入射光场经过正过程通过 ( 2 ) (2) (2) 得出射光场像平面 E 2 E_{2} E2 的相位 ϕ 2 \phi_{2} ϕ2
3. 由上步的新相位和已知出射光场振幅分布 ρ 2 \rho_{2} ρ2 合成出射光场 E 2 E_{2} E2
4. 出射光场通过 ( 1 ) (1) (1) 得出入射光场 E 1 E_1 E1 更为准确的相位 ϕ 1 \phi_1 ϕ1
5. 由上步的新相位和已知入射光场振幅分布 ρ 1 \rho_{1} ρ1 合成入射光场 E 1 E_{1} E1
6. 回到步骤 2 进行下一次循环,不断迭代直至光场趋于稳定是时终止