[time-nuts] WWVB PM Time Questions

Poul-Henning Kamp phk at phk.freebsd.dk
Sat Aug 1 19:27:21 UTC 2020


--------
paul swed writes:

> Decoding the actual timecode is a serious pain.

Not really if you approach it from the right side.

A lot of people try to decode these timecodes by looking for a perfect
timegram.  That works badly in low SN.

First Tune your discriminator to have three output states:  High,
Low and Dont_Know.  It must only output High or Low if it is very
certain, any doubt and it outputs Dont_Know.

Next: Find the Hour+Minute combination.

There are 86400 possible seconds in the day we can be right now,
our job is to eliminate the 1439 impossible time-grams and align
the last one.

Imagine for a moment, that we brute force all 86400 combinations
every time we receive another High or Low bit.

If the Day comes out to 31, the month has to be one of J,M,M,J,A,O,D,
anything else can be eliminated.

The LSB of the minutes must, by definition, change every minute, if
it had same state last minute, we can rule this one out.

The Day/month/year fields, can only change from one minute to the
next, if Hour bits we have are compatible with 23 before and 00
after.

It may sound like a lot of computing, but it does not take many
good bits before almost all the 86400 possibilities have been ruled
out and even in horrible S/N we will have found the Hour, Minute and Day
in a matter of minutes.

Once we're there, we can collect the date bits we still miss.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.




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