Its still interesting to read an article from Radio-Electronics Magazine
with date stamp back to August 1973. In that article Don Lancaster
explain few classical techniques how to handle WWVB band.
Regards,
V.P.
On 2014-02-20 20:42, Clint Turner wrote:
Several years ago I spotted a clever PIC-based software (DSP-ish)
approach to WWVB modulation - but it has thusfar defied my attempts to
find it via Google. It was from the late 90's, early 2000's - and I
may have it in an archive somewhere.
The exact details escape me, but I believe that it sampled at 8 kHz
and was fed a crystal-filtered WWVB signal at 60 kHz, putting this
bandwidth-limited, AGC-leveled signal directly into the PIC's A/D.
If I've done my math correctly, that would yield a frequency-inverted
alias at 4 kHz. The A/D was then mixed and/or decimated significantly
and a simple software-based carrier recovery scheme (a Costas loop,
maybe?) was implemented in this rather low-end PIC. Because the TRF
bandwidth was on the order of just a few Hertz, it took a fairly
trivial amount of horsepower to implement.
Presumably, at just one baud it should be practical to do this on more
modern PICs and AVRs using the same scheme. The trick to homebrewing
this is to find a 60.003 kHz crystal - but one of these could be
swiped from a WWVB receiver module, or, perhaps, a source-follower
could be used to recover the phase component of the received carrier,
tapping off the signal from the BPF itself and making it available to
the processor.
* * *
Another scheme - one that I believe was poo-poohed a while back on
this list - is to simply take a bandpass filtered sample of around 60
kHz and throw it into a four-quadrant multiplier to yield a 120 kHz
signal sans phase shift. I believe that the initial critique of this
was that this was not a particularly good way to recover a weak
signal, but I found it to be quite useful on a project some (15) years
ago.
On this project, I had a 100 kHz pilot carrier modulated with NRZ BPSK
telemetry data and this same carrier was used to convey the reference
frequency to multiple, simulcast transmitters via a 33cm microwave
link. At 100 kHz, I simply had an L/C bandpass filter that was
roughly 3-5 kHz wide on the transmit (to control the occupied
bandwidth when XOR-gate modulated) and a similar filter on the receive
end. "Listening" to this 100 kHz center frequency, 3-5 kHz bandwidth
was a 1496 configured as a multiplier, the output of which was passed
through a simple filter constructed using 200 kHz crystals. The 200
kHz from the doubler output was then divided-by-two and used to
synchronously demodulate the BPSK data (after being filtered with
either a Bessel or Gaussian LPF) and this same recovered 100 kHz
signal was then made available to the master 10 MHz frequency
reference for locking.
What impressed me was the fact that my input signal S/N could go about
40 dB below the detection bandwidth of the BPSK signal and still
maintain perfect lock on the 100 kHz carrier, despite the fact that
the 1496 - which really doesn't make all that great of a doubler
compared with other available (but more expensive!) devices was being
pelted with 3-5 kHz of garbage when the S/N was purposely compromised.
IIRC, the detection bandwidth of the crystal-based carrier recover
filter was on the order of a few 10ths of Hz. Yes, the phase did vary
with temperature, but the rate-of-change was fairly slow and this fact
was inconsequential in our application.
* * *
The upshot of this is that it should be quite easy to do a simple
doubler-based carrier recovery system at 120 kHz (or something else,
if it's frequency-converted) and, since it may be a bit tricky to find
a cheap 120.006 kHz crystal, use an SCF clocked from a VCXO (or a
simple fractional divider/DDS implemented in software) to provide a
very narrow detection bandwidth that would satisfy the dynamics
associated with the usable signal range over which the WWVB carrier
could be reconstructed and the phase data could likely be recovered.
The AM output of a standard WWVB clock module could then be used to
aid in the windowing of a synchronous demodulator integrate-and-dump
filter to recover the phase information and make these two pieces
available to something like a PIC or an AVR/Arduino for crunching.
In the (likely!) event of a signal that was too weak to recover the
amplitude information from the broader-bandwidth WWVB receiver module
it should be practical to oversample (say, by 8x) the output of the
synchronous demodulator and then infer the timing of the phase change
over a period of time since the minimum period of this is well known
(1 second!) and such timing could be (initially) autonomously applied
with very good stability until the timing of the phase change resolved
itself - something that could be correlated with a statistical
analysis of the output of the amplitude detector, as well.
To a large degree, this sounds like a candidate for a "front end"
consisting of good old 4000 CMOS logic and a few op amps with the
output handed off to a fairly low-end, cheap processor module!
73,
Clint
KA7OEI
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.
--
WBW,
V.P.
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.