...or, a Pentium is a nice thing to have.
I\ve been playing around with this stuff for some time. My first experiments used external hardware, an interface that rectified the APT subcarrier, low-pass filtered the proceeds and then digitized them to be pulled into the computer's parallel port and processed by a program like JVFax. This worked adequately, but then I got curious about my computer's sound card...
My first sound card-based program did in software what the external interface did in hardware: full-wave rectify, low-pass filter. Very simple, but it worked. A later version exploited the fact that if you sample at 4 times the carrier frequency the samples have a sine/cosine relationship and you can demodulate them immediately. Empirically I found that I got better carrier cancellation by sampling at twice the speed I really needed to (19.2 ksps rather than 9.6 ksps) and discarding alternate samples. This produced pictures like this (southwestern British Columbia as seen by NOAA-14 on 26 July 1998):
Not bad, a very fast program (these things matter on a 486 :-), even if the results turned out a little grainy. Things stayed like that until I bought a used Pentium 233 MMX motherboard for my computer, and decided to exploit the greater processing power with some new algorithms. I needed new algorithms anyway: the sound hardware that came with the motherboard didn't support 19.2 ksps!
I wrote a more sophisticated AM detector:
This looks like a pair of direct conversion receivers, and in a sense it is. If you try to detect AM or DSB with a direct conversion receiver it will work (sort of) but will sound odd. Music, in particular, sounds terrible! This is due to phase distortion, because your LO is not in the correct phase. Voice can tolerate this. Music can't.
By doing I/Q sampling then taking a Pythagorean sum, the phase errors cancel out: they appear in expressions of the form cos2(x)+sin2(x), which equals 1. The frequency of the subcarrier on the NOAA satellites is accurate enough that there isn't much to gain by phase locking to it, at least on passes recorded off the air. If I want to do things like tape record passes and play them back I'll need to reconsider this, or buy a DAT recorder. Or do something else entirely.
![]() |
I flipped a coin and decided to sample at 22.05 ksps, what Windows calls Radio Quality. Not that it matters: I use Linux. |
I claim no originality for any of the algorithms. They're all covered in standard DSP textbooks.
There are a couple of different standards for sending images. Both use a nominal 2400 Hz AM subcarrier.
As is always a problem in winter, the lighting is poor. But you can see parts of Lakes Erie and Ontario, as well as parts of the coast (particularly from Cape Hatteras to Cape Cod) to orient yourself.
Here's a beauty pic from last year: NOAA 15 the morning of 4 September 1999.
It's rather nice... :-)
No, I don't know where the white dots came from. At the time I was using the SoundPro chip that came on the motherboard for recording. I have since switched to a separate soundcard (the cheapest I could find at the computer store) and the dots haven't returned.
For an application like this you actually want the cheapest, nastiest sound card you can find. The cheapest card will record everything there is to record from a communications-grade audio channel with ease. Additionally, expensive cards have all those 3D surround effects and similar junk, which may make those shoot-'em-up computer games sound better, but which raise hell with the amplitude and phase response that us DSP hacks work so hard to get right.
Back to Laura's web page.