[time-nuts] WWVB Disciplined Oscillator
jimlux
jimlux at earthlink.net
Sun Apr 7 16:31:51 UTC 2019
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
More information about the Time-nuts_lists.febo.com
mailing list