This repository contains Matlab code implementation of the PIRPT method proposed by Tian and coworkers [1] for demodulating a single normalized interferogram. Kai and coworkers have also published similar method for unnormalized interferograms [2]. I could not find an implementation of neither the original RPT [3] nor for the PIRPT method, and had to do it myself.1
NOTE: This repository has no affiliation with the authors of the cited papers. If you find the code useful you probably should cite the publication and this repository appropriately.
The code solves the following minimization problem
where
and
,
is the normalized interferogram,
is the solution vector containing the polynomial coefficients to be estimated, and are the regularization parameters.
RPT publications often imply that simple gradient descent algorithm
where
,
and less than 20 iterations are sufficient to obtain optimized solution, but I've not been able to replicate such results. Therefore I utilize Levenberg–Marquardt (LM) algorithm
where the Hessian matrix is
and
(see for example this link for introduction on LM)
The example.m demonstrates how to demodulate interferogram using the PIRPT and LM. The functions -folder contains the necessary functions to carry out the LM optimization. The choice of parameter values are based trial and error, especially in the case of regularization parameters since I have not seen the values stated in the literature demodulation examples.
[1]
Chao Tian, Yongying Yang, Dong Liu, Yongjie Luo, and Yongmo Zhuo
Demodulation of a single complex fringe interferogram with a path-independent regularized phase-tracking technique.
Applied Optics Vol. 49, Issue 2, pp. 170-179 (2010),
https://doi.org/10.1364/AO.49.000170
[2]
Li Kai and Qian Kemao
Improved generalized regularized phase tracker for demodulation of a single fringe pattern
https://doi.org/10.1364/OE.21.024385
[3]
M. Servin, J. L. Marroquin, and F. J. Cuevas
Demodulation of a single interferogram by use of a two-dimensional regularized phase-tracking technique
Applied Optics Vol. 36, Issue 19, pp. 4540-4548 (1997),
https://doi.org/10.1364/AO.36.004540
Footnotes
-
Hopefully it can save the trouble of other people having to code it from scratch. In any case, I highly recommend people making code implementations of RPT algorithms! ↩

