Doppler Lads · 437.800 MHz
ISS Records
Baseband recordings of the ISS cross-band repeater downlink, and the Doppler S-curve measured from each one. Recorded unattended by Toby's station: a NooElec NESDR SMArt v5 with its stock 433 MHz mast.
Doppler S-curve
Each column is one second of the recording. Brightness is power relative to that second's median, so the receiver's slow noise-floor changes are flattened out. The receiver's own stationary spurs (at 0 and near +5 kHz) are blanked. Hover or tap for values.
Measured minus predicted
After removing the constant offset. Points outside ±150 Hz (shaded) are treated as outliers and left out of the fits.
Measured points · table and CSV
How it was recorded
- Hardware. A NooElec NESDR SMArt v5 (RTL2832U with an R820T tuner) on the fixed-length 433 MHz antenna that came with it (sized for 433 MHz, close to the ISS's 437.8 MHz), plugged into a Debian Linux PC whose clock is synced over the network (NTP).
- Software.
rtl_sdr, the standard open-source recorder for RTL-SDR receivers (Debian package rtl-sdr 2.0.2), started unattended by a systemd timer a couple of minutes before the ISS rose:rtl_sdr -f 437800000 -s 1024000 -g 40.2 -p 0 -n <samples for the pass> -
Tune to 437.800 MHz, take 1.024 million samples per second, gain 40.2 dB, no frequency correction (the receiver isn't calibrated), stop after the pass, and send the samples on to the wrapper. - File. A Python wrapper (
record_pass.py) converts rtl_sdr's 8-bit samples into the 16-bit baseband WAV format and file naming that SDR++ uses, so the group's tools open it like their own recordings. The start time comes from when the samples arrived on the network-synced clock.
Method
- Spectrum. 8192-point FFTs (125 Hz bins) averaged over each second.
- Prediction. CelesTrak orbital elements propagated with Skyfield. To keep the station private, the curve is computed for a point moved along the ISS's ground track from the station, at the same distance from the track, and lined up on closest approach. That changes the predicted shift by at most 4 Hz, against about 30 Hz of scatter in the measured points.
- Privacy. Times are shown from closest approach rather than clock time, and the station's position isn't published: an exact clock time together with the curve would locate the station to within a few km. The full recording, with exact times, is kept for the group's simultaneous comparison.
- Detection. First, seconds with a peak at least 8 dB above the noise within ±2.5 kHz of the prediction give the constant offset. Then every second is searched within ±1 kHz of prediction + offset, keeping peaks at least 3 dB above the noise. The receiver's own stationary spurs are found from each recording's time-median spectrum and skipped. The threshold was checked on the no-signal recording (29 Oct, repeater off): with the search window at 10 different offsets, 31 peaks turned up and 4 of them landed within 150 Hz of the track. That is about 0.4 false points per pass that would pass the filter.
- Offset. The constant offset is the receiver's oscillator error and the ISS transmitter's error combined. One station can't separate them, but simultaneous recordings can, because the ISS's part is shared.
- Speed and closest distance. A straight-line, constant-speed flyby fitted to the measured points only. It ignores the curve of the real path, so the page compares it with the same fit on the prediction over the same seconds. ± values are formal fit errors.