[time-nuts] wtd: WWVB info
kb8tq at n1k.org
Thu Aug 6 22:00:00 EDT 2015
The gotcha with under sampling is the need for tight bandpass filters in front of the sampler. Narrow bandwidth always
equates to long delay. If the filters are analog (rather than digital) that delay will have drift and temperature sensitivity.
Both of those things are to be avoided (if possible) in a receiver intended for high accuracy use.
> On Aug 6, 2015, at 3:04 PM, Clint Turner <turner at ussc.com> wrote:
> Years ago I ran across a project in which the WWVB signal, after being siphoned from a cheap TRF clock module with a Hi-Z follower, IIRC, was shoved directly into the A/D input (10 bits) of a rather low-end PIC running at a fairly low sample rate - something in the 4-8 kHz range. IIRC, from this point on the carrier was coherently recovered in software and the IRIG time code extracted: I've tried to find this reference more recently, but it resists my attempts to locate it.
> What I do remember was that it relied on undersampling techniques - the fact that one could sample at a much lower rate and via Nyquist, "see" the desired signal translated. While one loses a bit of dynamic range, etc. in doing this, such was largely irrelevant in this case as between the narrowband techniques involved for internally the carrier and then analyzing the amplitude thereof, 10 bits (minus noise, etc.) plus AGC of the TRF module seemed to be good enough. I seem to recall that the sample rate "offset" yielded an "internal" carrier frequency in the low kHz or hundred Hz range at most and then further-decimated.
> What I do recall was that the carrier was detected separately using a long time constant and the amplitude was then determined by using coherent demodulation to extract the DC component and then simple rectangular-window sample-and-hold integration (done in software) in something like 0.05 or 0.1 second chunks. I believe that pulse-swallowing/insertion was used to keep the carrier recovery in phase.
> What struck me at the time was that this method could have, with a bit of extra work, been used to obtain the precise carrier frequency - albeit with a bit of short-term jitter. Even though this was well before the current BPSK modulation was implemented I thought that it could have also been used to detect the then-45 degree phase shift ID that was used. Nowadays, I'd bet that a similar technique could be used to recover carrier with a simple Costas loop implemented in software, all at just a few hundred Hz - just as long as it was comfortably above the detection bandwidth. (Severely limiting the input bandwidth of the original signal also relaxes the filtering requirements involved in decimation as well!)
> (A similar scheme - sans undersampling - was implemented by Mark, WB7CAK, using an 8-bit A/D in the 1980's for experimental 10 baud BPSK reception on the "LowFER" bands using a Hitachi 64180 - a processor similar to the Z80: The similarities of the article to his implementation was one of the reasons why it stuck in my brain.)
> As for having the PIC "just" 10 bits, with a narrowband input filter and AGC and comparatively long time constants it should be practical to keep the A/D at mid-high scale, well out of quantization noise territory. If something more than a simple-minded sub-sampling of bit timing is used for detection (simultaneous, parallel detection of 0, 1, marker bits on that amplitude stream along with long-term integration of the beginning-of-second marker detection using even shorter detection windows, for example).
> While I've not done an "all in one" detection for a WWVB receiver, I've done most of the above pieces at one time or another (oversampling to down-convert, carrier recovery, sample/hold/integration) in separate projects on low-end PICs (e.g. 16F88, 18F series, etc.) and even some decent DSP using the PIC16F1847 for removal of mains harmonics in audio sampling at 32 kHz, so I believe that it *is* possible - and such should also be possible on an Arduino-type platform as well provided that one can obtain the needed control of the hardware layer.
> time-nuts mailing list -- time-nuts at febo.com
> To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.
More information about the time-nuts