[sdiy] Measuring phase diff between sines

Fredrik Carlqvist Fredrik.Carlqvist at iar.se
Tue May 9 16:10:37 CEST 2006



Hello all!

I have two sine sources and wish to measure the phase difference with at
least 14 bits accuracy, preferrably 16 bits. The frequency of one of
these sources is fixed at 10kHz, the other comes from an inductive
pickup. The maximum phase difference change in one period of the
reference is 3.6 degrees, that is 1% of a period. 

Directly measuring the time between zero-transitions is not good enough
since there is also noise and DC offset on the picked up signal.

My first thought was to use a PLL-type filter, using two comparators to
get two square signals, followed by some logic (IN1 & !IN2) to derive a
phase difference in a capacitor. Then use the reference to determine
which half-plane we're in (leading or trailing?). This is too slow
though, as the time constant for the RC filter must be very long to
allow 14-bit precision (1.5 s, 6 s for 16-bit precision).

       ______        ______
Sine1 |      |______|
        ______        _____
Sine2 _|      |______|

Comb  ||____________||_____ into RC filter


It would be ideal to remove all amplitude dependence from the system.
This would be accomplished by only looking at zero transitions. By using
integrated and differenciated versions of the picked up signal, we could
have eight zero-transitions per period. 

As the maximum change in phase diff is limited, one could use a DCO to
compare to the picked up signal, keeping guesses of both the next value
and the derivative of the phase difference, and using the DCO phase to
compare to the reference signal. 

Does anybody have any better ideas?


Fredrik C



More information about the Synth-diy mailing list