Алгоритм Герхберга–Сакстона (GS) представляет собой итеративный алгоритм восстановления фазы для восстановления фазы комплексного волнового фронта из двух измерений интенсивности, полученных в двух различных плоскостях. [1] Обычно две плоскости представляют собой плоскость изображения и плоскость дальнего поля (дифракции), а распространение волнового фронта между этими двумя плоскостями задается преобразованием Фурье . В оригинальной статье Герхберга и Сакстона рассматривались изображение и дифракционная картина образца, полученные в электронном микроскопе.
Часто необходимо знать только распределение фазы из одной из плоскостей, поскольку распределение фазы на другой плоскости можно получить, выполнив преобразование Фурье на плоскости, фаза которой известна. Хотя алгоритм GS часто используется для двумерных сигналов, он также применим и для одномерных сигналов.
Приведенный ниже псевдокод выполняет алгоритм GS для получения распределения фаз для плоскости «Источник» таким образом, чтобы ее преобразование Фурье имело распределение амплитуд плоскости «Цель».
Алгоритм Герхберга-Сакстона является одним из наиболее распространенных методов, используемых для создания компьютерных голограмм . [2]
Позволять: FT – прямое преобразование Фурье IFT – обратное преобразование Фурье i – мнимая единица, √−1 (квадратный корень из −1) exp – показательная функция (exp(x) = e x ) Цель и Источник — это плоскости амплитуды цели и источника соответственно. A, B, C и D — комплексные плоскости с той же размерностью, что и Цель и Источник. Амплитуда – Функция извлечения амплитуды: например, для комплексного z = x + iy , амплитуда( z ) = sqrt( x · x + y · y ) для действительного x амплитуда( x ) = | x | Фаза – Функция извлечения фазы: например, Фаза(z) = arctan(y / x)конец ПустьАлгоритм Герхберга–Сакстона (Источник, Цель, Полученная_Фаза ) A := IFT(Цель) пока критерий ошибки не выполняется B := Амплитуда(Источник) × exp(i × Фаза(A)) С := ФТ(В) D := Амплитуда(Цель) × exp(i × Фаза(C)) А := ИФТ(D) конец, пока Полученная_фаза = Фаза(A)
Это всего лишь один из многих способов реализации алгоритма GS. Помимо оптимизаций, другие могут начать с выполнения прямого преобразования Фурье к исходному распределению.