Skip to Main Content
A noniterative method for phase unwrapping a real, finite-length, discrete-time signal is described. We use an operator which counts sign changes in a Sturm sequence generated from the real and imaginary parts of the DFT. The number of sign changes is related to the number of multiples of π which must be added to the principal value arctan to produce unwrapped phase. Except for the evaluation of trigonometric and inverse trigonometric functions, the unwrapped phase at any frequency can be computed in a finite number of steps. The approach is illustrated with an example, and a Fortran program implementation of the algorithm is included in the Appendix.