[time-nuts] simple phase finder

Bob kb8tq kb8tq at n1k.org
Wed Dec 5 14:32:28 UTC 2018


Hi

> On Dec 5, 2018, at 8:45 AM, jimlux <jimlux at earthlink.net> wrote:
> 
> On 12/5/18 5:39 AM, Poul-Henning Kamp wrote:
>> --------
>> In message <4a8ff8d6-70b2-782e-cb79-21c7e9a49649 at earthlink.net>, jimlux writes:
>>> If I were decoding WWVB to start, I'd break my samples up into 0.1
>>> second or 0.5 second chunks and process them to see what the carrier
>>> phase is.
>> With stable signals like this, it is a bad idea to chop them up,
>> in particular if your ADC runs from a good stable frequency.
> 
> True enough - this was just to get started.
> 
>> Instead continuously average the square of the signal into a 1
>> second long circular buffer.
>> Then multiply/sum that buffer with a 120kHz sine and cosine to find
>> the phase angle.
> 
> yes.. assuming your ADC is running off a sufficiently stable source.  I was thinking about a very low cost implementation where the ADC is running off a not very wonderful microcontroller clock.
> 
> 
> 

A stable clock probably is a pretty good bet on a “Time Nut” grade design. Indeed one objective might be to ultimately 
read out the phase directly WRT that reference . Some sort of PPS tick likely would get into all this as well. 


> 
>> Next find the amplitude modulation in the buffer with simple
>> thresholding and you now know the start of the second and the
>> 60KHz phase, so you can lock a PLL to the carrier directly,
>> and having done so, the phase modulation falls right out by
>> simple multiplication.
> 
> That would be the standard Costas loop approach - I wonder though, is the signal strong enough that you can just clip it to remove the AM or implement some sort of software AGC?
> 
> All manner of PLLs don't work as well when the input signal is of varying amplitude.  Maybe it works well enough here.

If the reference is stable / accurate (as above) then this really is not a PLL it’s more like a phase meter. Given
the low frequency the bounds on “stable / accurate” are a bit looser than one might think. 

My *guess* is that you will have more luck with an approach that “finds” the phase modulation than finding the AM. 
Just how you construct the buffer setup to do that would take a bit of thought. I’m not up to my first cup of coffee 
quite yet :) …. How big a buffer does it take? I doubt you will run out of RAM … If it does become an issue, decimate
the 10 MHz (or whatever) samples while you are in “acquire” mode. 

Things are a lot more convenient with a 12 MHz clock (or something like that) than with 1,5 or 10 MHz. Yes, it’s just math,
but more complicated math. 

Bob

> 
> 
>> The really interesting thing is that you can track a lot of carriers
>> this way using the same single circular buffer.
>> If you multiply it by 77.5 kHz sine+cosine, you get DCF77 phase
>> and amplitude.  If you multiply it by 198kHz you get...
> 
> yes..
> 
> 
> 
>> There's some very old plots here:
>> 	http://phk.freebsd.dk/loran-c/CW/
> 
> 
> The real intent was to show that you can do the processing with a very simple implementation - no need to fire up SDR# or gnuradio.
> 
> 
> _______________________________________________
> time-nuts mailing list -- time-nuts at lists.febo.com
> To unsubscribe, go to http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com
> and follow the instructions there.





More information about the Time-nuts_lists.febo.com mailing list