当前位置: 华文问答 > 科学

什么是G

2015-03-06科学

首先这是维基的介绍:

The Gerchberg–Saxton (GS) algorithm is an iterative algorithm for retrieving the phase of a pair of light distributions (or any other mathematically valid distribution) related via a propagating function, such as the Fourier transform, if their intensities at their respective optical planes are known.

另外我之前做的一个关于计算全息图的小project提到了GS算法,按照维基里面的图,简单说一下我的理解。


按照图片,我们想在光源A(通常是平行光)的基础上叠加相位B,从而经过傅立叶变换C(也就是通过凸透镜)后在平面D上得到如图K所示的又亮(intensity efficient) 又均匀(low variance)的笑脸。

GS算法就是根据想要的图像K求出B上面应该叠加什么样的相位也就是所谓的计算全息图F,具体思路如下:

(1) 离散化 :设B上面每个像素点的相位是\phi_j ,D上面每个像素点的复振幅为V_m . GS算法的目的是通过改变\phi_j 使\sum_m |V_m| 最大。也就是说所有像素点亮度的和最大,从而达到「明亮」的目的。

(2) 最优化 :根据上面的思路我们可以计算出\phi_j({|V_m|}) .为了让所有人都可以看懂,我不把公式放上来,刚兴趣的话见文末的参考文献。

(3) 迭代 :现在问题来了。要想求出最优化的\phi_j 我们需要V_m ;但是V_m 又是通过\phi_j 决定的。这样的话怎么办呢?解决方法是先给\phi_j 赋一个初值,得到的V_m 肯定满足不了(1)中的要求。我们就把这个V_m 带入(2)中最优化公式再求出\phi_j ,然后进行迭代计算。经过有限步数之后结果会收敛,也就是说每次计算出的V_m 差别都不太大。这时候我们就求出想要的相位图了。

基本思路就是这样。其实还有很多类似的算法用于求\phi_j 。不同的只是在第一步离散化的时候我们想要什么最大。GS算法是要\sum_m |V_m| 最大,你也可以让\sum_m Re(V_m) 最大,等等。

现在理解文首那句解释了么?

参考文献:

Di Leonardo, Roberto, Francesca Ianni, and Giancarlo Ruocco. "Computer generation of optimal holograms for optical trap arrays." Optics Express 15.4 (2007): 1913-1922.