# signal processing techniques for accurate phase measurement

I have two signals, $$V\sin(\omega t)$$ and $$V\sin(\omega t+\theta)$$.

I need to find the value of theta with an accuracy of $$0.05$$ degrees.

Can anybody suggest a method for phase difference determination without the use of PLL?

I have found several methods such as Hilbert, Kalman filters, etc. but not sure whether they would meet my accuracy requirement.

• You can also try zero crossing and integration. Jun 20, 2021 at 6:30
• I am looking for a better technique than a ZCD. If input is noisy, there are issues with using ZCD.
– gari
Jun 20, 2021 at 7:13
• That's true, but then that same phase will get in the way of any other technique. You could use a bandpass, but then a PLL sounds better, and that's not what you're looking after. Jun 20, 2021 at 7:15
• You can correlate the two signals with 0.05 degree shifts and find the maximum Jun 20, 2021 at 11:07
• so, you can pick any method, it doesn't matter, as long as you have no noise. If you have noise, then it matters which kind of noise, how strong it is compared to your signals, and for how long you can measure. You'll need to tell us, otherwise we can't really tell you (we can only speculate). For what do you need that measurement? This will also tell us a lot about the constraints you have but might not even know yet! Please clarify on all of the above points by editing your question! Jun 20, 2021 at 11:41

If the frequencies in both signals are phase locked (and not just nominally the same) you can just multiply them:

$$x(t) = V\sin(\omega t) \cdot V\sin(\omega t+\theta) = 0.5V^2 \cdot (cos(\theta) + cos (2\omega + \theta))$$.

The phase is simply the inverse cosine of twice the mean:

$$\theta = acos \left( \frac{2}{T\cdot V^2}\int_0^T x(t) dt \right)$$

This will only allow you to determine phases in two quadrants.

The longer you integrate the better the phase estimate will be so you can adjust the integration times to your noise condition and accuracy requirements.

If the two frequencies are NOT phase locked, you will need a PLL otherwise the phase will just drift around.

• If they are not phase locked, how would you use a PLL? What would you then be locking the PLL to? The PLL itself steers its own clock to be at a phase reference using this same technique so not sure what phase you would be measuring unless we want to measure time varying phase versus a longer time average, but we could do that as well without "phase-locking". Jun 21, 2021 at 7:50
• (and this is a sincere question, rather than saying your answer is incorrect) Jun 21, 2021 at 18:19
• Use one signal to phase lock the other one . Just treat one signal (properly bandpass filtered) as your local oscillator and lock the other one to it by sample rate converting it. This assumes the two signals were originally phase locked and one lost it's original clock in getting from A to B. If they were not originally phase locked, I think the question is meaningless. Jun 22, 2021 at 12:46
• Well if you do that you need a phase detector to do the lock, right? Which measures the phase so you already have the measurement you seek without adjusting anything further. Jun 22, 2021 at 14:28
• … so I don’t see the purpose of the PLL it you are comparing two signals that are phase locked but offset in phase (and it you want full four quadrant measurement of what that phase is—- Just use the quadrature phase detector and average the result— no need for a third source—- or do you see something else that is giving you? If the original signals aren’t phase locked then we are talking about a time varying phase / frequency offset measurement otherwise agreed the question is not meaningful. Jun 22, 2021 at 15:13

A phase accuracy of 0.05 degrees rms requires an SNR of 61.2 dB, as given by $$20 Log_{10} (0.05 \times 2 \pi /360)$$.

A simple and practical method is to multiply the signal with unknown phase with a reference cosine to get “I” and with a reference sine to yet “Q”, low pass filter the outputs of each to eliminate the sun term (multiplying real tones will give the sum and the difference of the frequencies , and the difference is the angle of interest). Then for accurate full four quadrant phase estimation use $$atan2(Q, I)$$. The sine and cosine are Hilbert Transform pairs, so if we know the frequency but not the phase we can simply generate the sine and cosine functions directly. If we do not know the frequency accurately but know the reasonable range of frequencies that it can be, then we can use the Hilbert Transform to create the sine and cosine needed easily enough.

To optimize SNR performance, the signal should be bandpass filtered first if there is a possibility of strong interference at other frequencies, and then hard-limited to remove all AM components. (Or AGC'd which is done when there is short term amplitude variation of interest such as modulated waveforms).

In the presence of white noise with stationary phase, the optimum strategy is to average the I and Q outputs prior to computing the arctangent, in which case the SNR will increase in power in proportion to the averaging time.

The 0.05 degree accuracy and 61.2 dB SNR requirement will impose practical challenges in that the phase measurement must certainly be done digitally (temperature sensitive dc offset issues preclude using analog mixers or multipliers), and even once digital all noise sources (quantization, drift, etc) must be carefully managed.

• The issue is that I have to track the phase as well. I could not find a non PLL based solution which could do that. Some papers have claimed effectiveness of kalman filter. But not sure if that would work.
– gari
Jun 21, 2021 at 7:49
• @gari can you elaborate? Track for what purpose? The atan2 output is the phase versus time that you can track to whatever bandwidth (rate of change) you need. Jun 21, 2021 at 7:51