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 <[email protected]> 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 -- [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.
