Hi > On Dec 5, 2018, at 8:45 AM, jimlux <[email protected]> wrote: > > On 12/5/18 5:39 AM, Poul-Henning Kamp wrote: >> -------- >> In message <[email protected]>, 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 -- [email protected] > To unsubscribe, go to > http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com > and follow the instructions there. _______________________________________________ time-nuts mailing list -- [email protected] To unsubscribe, go to http://lists.febo.com/mailman/listinfo/time-nuts_lists.febo.com and follow the instructions there.
