Quick recap: In part 1, I captured weather satellite signals with my software-defined radio prototype, using the audio input on my laptop. So, what can be done with these captured signals?

Software-defined radio front-end
Software-defined radio front-end

The first thing I did after recording the NOAA-19 APT signal was load it up in Audacity and examine the spectrum of the signal.

NOAA-19 APT signal spectrum
NOAA-19 APT signal spectrum

That's a cool looking pattern – and it's a bit suspicious too. The pinkish-purple curves indicate frequencies in the signal changing over time, over the ten minutes I recorded the signal. Notice how the frequencies change slowly at the beginning (left of the graph) when the satellite was rising over the horizon. The same thing happened at the end (right of the graph) when the satellite was descending back toward the horizon. When the satellite was directly overhead, the signal's frequency changed very quickly. Hmmm. (think think think…) Hey, that's the Doppler effect!

Indeed, the satellite is moving very fast – it orbits the Earth every 102 minutes. One Web site claims NOAA-19 is orbiting at 7.55 km/s, which is 27,180 km/h.

Let's say we don't already know how often the satellite orbits the Earth, or we don't know the distance the satellite travels in one orbit. If we measure the Doppler shift of the signal, we can calculate the satellite's speed ourselves. Here's my measurement of the frequency shift in the signal – I get 5.6kHz from the the start to end of the satellite's pass:

Doppler frequency shift measurement
Doppler frequency shift measurement

When the satellite is coming at me, the signal is "squeezed" and the frequency is increased by 2.8kHz – half of the 5.6kHz total shift I measured. As the satellite is traveling away from me, the signal is stretched and the frequency is decreased by 2.8kHz – the other half of the 5.6kHz shift. The frequency change as a percentage of the signal's original frequency (137.1MHz) is 0.00204% – pretty small. But consider that this percentage is the speed of the satellite as a percentage of the speed of the signal. The signal is traveling at the speed of light, which is roughly 1,079,000,000 kilometers per hour. If we take that percentage from the speed of light, we get… Drum roll… 1,079,000,000 km/h * 0.0000204 = 22,000 km/h.

That's close, but no cigar. Why is that number 19% lower than the actual satellite speed over the Earth (27,180 km/h, from above)? That's pretty easy. The satellite is roughly 850 km above the Earth, and didn't go directly overhead, but perhaps 450 km to the west. Calculating the hypotenuse: sqrt(850850+450450) = 962 km is the closest the satellite came to me. If the satellite went right through me, the Doppler shift I measured would've given the right answer. (…and I'd be splattered all over.) But the speed that the satellite was traveling relative to me was less than the satellite's speed over the Earth.

NOAA-19 pass over Portland, OR: 2001/09/01 14:25 local time, Credit: Heavens-Above GmbH
NOAA-19 pass over Portland, OR: 2001/09/01 14:25 local time, Credit: Heavens-Above GmbH

Because I'm lazy and I've run out of room on my sketch-napkin, I'm offering a free Chronulator kit to the first person who can produce worked math that correctly compensates for the distance of the satellite from me, and gives an answer that's within a few percent of the actual satellite orbit speed. I'm sure there's a cosine or arctangent involved… Tweet your solution to @sharebrained or e-mail it to info@sharebrained.com – a camera-phone photo of a hand-written solution is fine (as long as I can read it!).

In part 3, I decode the signal to get at the weather images inside.