最近准备着手一个三维空间的彩色全息成像课题研究,姑且就当一回汉化小能手,分享文献阅读中一些有价值的问题,希望能和各位大佬交流。
这篇文章综述几种常见的空间光场中的相位恢复方法。众所周知,成像系统中的电荷耦合器件(CCD)和互补金属氧化物半导体器件(CMOS)只能记录光场的二维振幅信息,而不能测量光场的相位信息。在空间全息、动态显示、虚拟现实等一系列应用中,光场的相位信息是至关重要的。
一般情况下,光场的空间整形是已知物平面和像平面的光场振幅,寻找符合要求的入射波相位分布,而在像平面,关注更多的仅仅是振幅而非相位分布。相位恢复算法首先需要建立传播模型,根据不同的传播关系找到合适的算法。
1. Gerchberg-Saxton(GS)算法
适用条件:夫琅和费衍射和透镜聚焦模型
R.W.Gerchberg和W.O.Saxton两位科学家在1971年提出的一种相位恢复算法[1],适用于夫琅和费衍射等幺正变换系统。
二维光场在物平面可表示为:
其中
表示入射场的二维振幅分布,
为相位分布。同理,像平面的出射光场可表示为:
在夫琅和费衍射和透镜聚焦模型中,入射光场和出射光场之间存在可逆变换关系,其中,正向变换为:
反向变换为
在相位恢复中,振幅分布
和
已知,GS算法采用多次迭代的方法求解未知相位分布
和
,迭代流程如图所示:
图1 GS算法流程图
- 随机初始化入射光场的相位,用已知的入射光场振幅分布 和随机初始相位合成入射光场;
- 入射光场经过夫琅和费衍射(F变换)计算出射光场相位;
- 由上步的新相位和已知出射光场振幅分布 合成出射光场;
- 出射光场经过夫琅和费衍射的逆变换计算入射光场相位;
- 由上步的新相位和已知入射光场振幅分布 合成入射光场;
- 回到步骤2,进行下一次循环,直至迭代次数足够后,光场趋于稳定,损失函数可定义为计算的出射光场振幅分布与已知的出射光场振幅分布的均方误差。
2. 杨顾算法
适用条件:普适,可解决非幺正变换
杨顾算法解决入射光场与出射光场之间非幺正变换的情况,是在1981年由杨国桢和顾本源两位科学家提出,用于相位恢复问题的一般方法,相较于GS算法,适用范围更广,参考文献[2][3][4][5]。
杨顾算法将高维光场采样为一维光场,不再使用坐标表示,入射光场可表示为:
和
分别是
个采样点信号的振幅和相位分布,同理出射光场可表示为:
入射光场和出射光场之间满足任一变换关系(可以是非幺正变换):
与GS算法不同,因为G变换为任意变换,所以在GS算法第4步的位置不能直接采用G变换的逆变换进行反向传播,杨顾算法通过对损失函数的求导,推导出了G的反向迭代公式:
利用此反向迭代公式可以完成杨顾算法的流程图。
图2 杨顾算法流程图
- 随机初始化入射光场的相位,用已知的入射光场振幅分布 和随机初始相位合成入射光场 ;
- 入射光场经过G变换计算出射光场相位;
- 由上步的新相位和已知出射光场振幅分布 合成出射光场;
- 出射光场经过上述推导的反向迭代公式计算入射光场相位,这是与GS算法最大的区别,用公式可表示为 ;
- 由上步的新相位和已知入射光场振幅分布合成入射光场;
- 回到步骤2,进行下一次循环,直至迭代次数足够后,光场趋于稳定,损失函数可定义为计算的出射光场振幅分布与已知的出射光场振幅分布的均方误差。
3. 加权杨顾算法
杨顾算法解决了非幺正光学系统的相位重建问题,但实际执行中经常出现收敛速度过慢甚至无法收敛的情况。为解决这一问题,2007年颜树华提出了加权杨顾算法[6],讨论了加权系数对算法收敛的影响。
加权杨顾算法的流程图如下所示:
图3 加权杨顾算法流程图
- 随机初始化入射光场的相位,用已知的入射光场振幅分布 和随机初始相位合成入射光场 ;
- 入射光场经过G变换计算出射光场的振幅和相位,分别为 和 ,相较于杨顾算法,这里需要计算出射光场的振幅,以加权合成新的光场;
- 计算出射光场振幅与已知出射光场振幅加权合成光场,加权系数为 , ;
- 出射光场经过上述推导的反向迭代公式计算入射光场相位,这是与GS算法最大的区别,用公式可表示为 ;
- 由上步的新相位和已知入射光场振幅分布合成入射光场;
- 回到步骤2,进行下一次循环,直至迭代次数足够后,光场趋于稳定,损失函数可定义为计算的出射光场振幅分布与已知的出射光场振幅分布的均方误差。
加权杨顾算法的作者在文中讨论了权重系数对于算法收敛的影响,第一,当加权系数小于特定值时,算法才能够收敛,大于特定值往往出现不能收敛的情况;第二,在上述特定值以下,适当增大权重系数可以加速收敛。