[time-nuts] WWVB PM Time Questions

jimlux jimlux at earthlink.net
Fri Jul 31 19:27:03 UTC 2020


On 7/31/20 11:25 AM, Scud West wrote:
> Back in December 2018 there was a WWVB thread.
> 
>  From Poul-Henning's post on 2018-12-05 quoting John N8UR:
> 
> "While everyone's been talking :-) , I recorded some WWVB IQ data for
> folks to play with.  You can download it from
> 
> http://febo.com/pages/wwvb/
> 
> The receiver ran at 48 ksps and was centered on 80 kHz (to allow a 20
> kHz IF to move away from 0 Hz crud).  The data was taken in early
> afternoon in Dayton, Ohio.  WWVB was easily visible in an FFT."
> 
> 
> I ran the python code posted by Poul-Henning with the WWVB IQ data.
> The resulting file 'out.txt' has columns for sample time, amplitude,
> and phase.  It was used for the plots below.  There is about 10
> minutes of data.
> 
> initial data: n8ur_rx_center=0.08MHz_rate=48ksps_start=2018.12.05.13.57.54.bin
>   (236 MB)
> plotted data: out.txt   (2.4 MB, 61,000 datapoints)
> 
> I hadn't looked at phase data before, and it took a while to make any
> sense of it.  It's surprising how well the bit per second data came
> through, compared to amplitude modulation.  Different filtering will
> likely improve the AM performance, but the phase plot looked good now,
> so here it is.
> 
> The first graph shows the +90 degree phase shift (top line) and -90
> (bottom line).  The SDR clock appears relatively stable at first, but
> drifts lower in frequency at a fairly steady rate until about 550
> seconds, when it flattens out again.  Overall a bit over 180 degrees
> more than expected.  A half cycle at 60 kHz, or about 8.3e-06 drift in
> 10 minutes.  The unpleasantness at about 470 seconds is reflected in
> the 10 minute plot during minute 7 (3 lines down from the top).  I
> removed the 'drift' in a crude manner, and it's a wonder it worked as
> well as it did.
> 
> The middle two graphs are the same data at different time scales.  I'm
> not sure if the short term phase variation has any meaning, or if it's
> 'just noise' at this level.  The WWVB phase change actually takes
> place 0.1 seconds after the start of the second, but it fit just right
> for display as is.  The real minute begins at second 6, and this is
> adjustment is made in the 10 minute waterfall plot.  The first few
> seconds of data are at the bottom left corner.
> 
> Green denotes binary 1, phase shift +90 degrees.
> Red is binary 0, phase shift -90 degrees.
> 
> A simplified description of WWVB phase-modulated time code:
> 
> seconds  0 - 12  fixed sync  0, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0
> seconds 13 - 18  time parity (ECC)
> seconds 19 - 46  binary minute of century
> seconds 47 - 58  DST and leap sec
> second  59       fixed sync  0
> 
> these seconds are notable here:
> 
> 43, 44, 45, 46 contain changing binary minutes 3, 2, 1, 0
> 19  a copy of binary minute 0
> 29, 39  Reserved, but also a copy of binary minute 0 in this sample.
> 
> 
> I'm using python, numpy, matplotlib, and Pandas.  It all runs pretty
> quick on my machine, only a few seconds to load, calculate, and
> display the graphs.
> 
> I'm going to try looking directly at John's IQ data to see the effect
> of the larger dataset on results and calculation time.  It's a big
> help knowing what the processed IQ should look like.  Thanks for the
> data and code,
> 
> Rob
> 


Nice looking plots..Did you generate the colored red/green "fill to 
baseline" in matplotlib, or is that out of Pandas?

The stacked plot is also very nice.

Good looking plots really help to understand what's going on.

(and of course, a shout out to Edward Tufte, who I am often inspired by)




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