The present code is a Matlab function that provides a measurement of the phase difference between two signals. The measurement is based on Discrete Fourier Transform (DFT) and Maximum Likelihood (ML) estimation of the signals’ initial phases. The method is highly noise resistive.
An example is given in order to clarify the usage of the function. The input and output arguments are given in the beginning of the code.
The code is based on the theory described in:
 M. Sedlacek, M. Krumpholc. “Digital measurement of phase difference – a comparative study of DSP algorithms”. Metrology and Measurement Systems, Vol. XII, No. 4, pp. 427-448, 2005.
 M. Sedlacek. “Digital Measurement of Phase Difference of LF Signals A Comparison of DSP Algorithms”. Proceedings of XVII IMEKO World Congress, pp. 639-644, 2003.
Hristo Zhivomirov (2021). Phase Difference Measurement with Matlab (https://www.mathworks.com/matlabcentral/fileexchange/48025-phase-difference-measurement-with-matlab), MATLAB Central File Exchange. Retrieved .
Hi, Adilson! Please, try the new improved version of my code. I am sure you will be quite satisfied. However, if you have any troubles, you can get in touch with me and will help you personally. All best, Hristo.
x = 127*cos(w*t + pi/6) ;
y = 127*cos(w*t) ;
But don't worked like I expect.
Thanks a lot !
I have a baseline drift in my second signal and the determined phase shift is reasonable. Nice code!
Thank you for the function, it really save my ass.
Works perfectly. Thank you.
Nice code. Working fine
really nice code. works perfectly.
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!