WBZ, a Boston AM radio station on 1030 KHz, transmits a time signal on top of their program audio. The timing of the signal is precise, as that it is referenced to the National Bureau of Standards.
The idea
The idea here is to take a simple, cheap AM broadcast receiver and plug it into the sound card of the computer. Software running on the computer then listens for the time signal, and adjusts the clock when it hears it.
The signal:
At the top of each hour, WBZ transmits a two-tone time signal. These tones are approximately 825 Hz and 950 Hz. The duration of the tone is approximately one second long.
The engineering manager at WBZ tells me that the station has been tranmitting this two-tone signal since the 1940's. It is generated by a microprocessor running at the studio which decodes the time signal they have running around the building. I am told that the transmitted signal might be up to 10 milliseconds late, I assume this delay is caused by the microprocessor at the studios. Anyways, +/- 10 mS is good enough for me.
The frequencies tones themselves are not precise. They may vary a few Hertz up or down. They are generated by a simple RC circuit, so are not particullarly stable. This is not really important since I am interested in mainly when the tone occurs anyways.
To see a Fourier transform of the last time signal recieved by www.rossi.com from WBZ, click here. You will need a Java enabled browser to see this.
The software:
The software I wrote to do this run under Linux. It makes a few assumptions: