[time-nuts] WWVB Disciplined Oscillator

Wayne Holder wayne.holder at gmail.com
Sun Apr 7 18:56:14 UTC 2019


jimlux,
thanks for the info cross correlation.  That's sort of how i imagined it
should work, but I wasn't sure.  I guess it really helps that we live in
the age of fast computation.

Wayne

On Sun, Apr 7, 2019 at 10:00 AM jimlux <jimlux at earthlink.net> wrote:

> On 4/7/19 4:30 AM, Wayne Holder wrote:
> >> Hi Wayne,
> >> Great to see you found my presentation!
> >> The paper is available here:
> >>   https://www.kevincroissant.com/WWVB/WWVB_PTTI_2018_paper.pdf
> >
> > Kevin, thanks for the link to the paper.  I'd like to know more about how
> > correlation works and how you were able to use to to sync with the WWVB
> > bitstream.  From what I read in your paper, I'm guessing that the "local"
> > code you use for correlation is generated by prediction once the receiver
> > has locked on the broadcast code and these two bit streams are then
> > "compared" in some way via multiplication...  But, I don't really
> > understand how this is done at a practical level as it would seem that
> his
> > would require multiple passes over the code with some type of sliding
> time
> > offset that advances with each pass? Or, are there simpler techniques?
> Can
> > you suggest a reference where I can learn more?
> >
>
>
> One thing that helps is that you know the structure and content of the
> bitstream after the fact - that is, the SNR needed to decode the bits is
> lower than that to recover precision timing.  So you take the "known"
> bitstream and do a cross correlation against the received signal.
>
> pseudocode for the cross correlation is something like this:
>
> for lag=0:N
>         sum=0
>         for i=0:M-1
>                 sum = sum + input[i]*reference[i+lag]
>         end for
>         crosscorrel[lag] = sum/M
> end for
>
> this is a O(N*M) number of operations, so most folks use a technique
> using FFTs: FFT each of them, multiply term by term, then inverse FFT
> back.  That's O(3*M*log2(M) +M operations)
>
>
> You'll get something that has a peak in the middle, which corresponds to
> the point of "maximum alignment" between the two data streams.
>
> There's all sorts of things one can do to get "sub sample" resolution -
> essentially by interpolating.  Zero padding the data set before FFTing
> is one way.
>
> The other thing that might save computational burden is that you don't
> need to try ALL possible time lags - you have an estimate, and so you
> can slide around just that
>
>
>
>
>
> _______________________________________________
> 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