DOC // NL-TN-2026-007VECTOR -Z1P / 1U · MATERIALS · ORBITAL
STATUS: PUBLISHED // REV 0.1

Pass geometry and Doppler for small-satellite ground stations

How long a pass lasts, how far away the satellite is, and why a 437 MHz signal slides by 20 kHz

Author
nadir lab.
Published
Reading time
10 min
Level
Basic
Tags
  • Orbital mechanics
  • Doppler
  • Ground station
  • SatNOGS
  • UHF
  • Grizu-263A

Abstract

Everything a ground station does with a low Earth orbit satellite is set by a few lines of geometry. For a 525 km Sun-synchronous orbit, a pass lasts at most 11.9 minutes above the horizon and 7.7 minutes above 10°, and the range shrinks from 2641 to 525 km, a 14 dB swing in path loss. At 437.19 MHz the Doppler shift sweeps from +10.2 to −10.2 kHz, fastest at closest approach, where it changes by up to 148 Hz per second. A station at 41.45° N sees 3.3 passes a day above 10°, about 20 minutes in total, with gaps of up to 13 hours; one at Svalbard sees 11. We derive these numbers, show how a Doppler curve measures the orbit, and close with rules for tracking PocketQubes and CubeSats.

Contents

The orbit in numbers#

We take the orbit that many PocketQubes and CubeSats share: circular, 525 km, Sun-synchronous, the orbit of the Transporter rideshares that carried Grizu-263A and Delfi-PQ[1].

Circular orbit at 525 km: key numbers
Orbital period95.1min
Orbital velocity7.60km/s
Revolutions per day15.1
Longest eclipse (β = 0°)35.7 min, 37.5% of the orbit
Sun-synchronous inclination97.50°
Slant range at the horizon2,641km
Longest pass above 0°11.9min
Longest pass above 10°7.7min
Largest Doppler shift at 437.19 MHz±10.24kHz
Geomagnetic field, equator to pole23–47µT
Air density, low to high solar activity8.2 × 10⁻¹⁴ – 1.1 × 10⁻¹²kg/m³

Two-body circular orbit over a spherical Earth; centred-dipole field; Kennewell density model.

The satellite circles the Earth 15 times a day at 7.6 km/s. A ground station sees it only when it rises above the local horizon, or above the elevation mask the station sets to clear buildings, trees and the noisiest low-angle directions.

How far, and for how long#

Seen from the centre of the Earth, the station and the point under the satellite are separated by the central angle . The satellite is visible above elevation while[2][3]

At 525 km that is 22.5° for the horizon, a circle of about 2500 km radius on the ground, and 1600 km for a 10° mask. The distance to the satellite, the slant range, follows from the triangle formed by the Earth’s centre, the station and the satellite:

Slant range and free-space loss at 525 km, 437.19 MHz
Elevation (°)Slant range (km)Free-space loss (dB)Extra loss vs. zenith (dB)Overhead pass above this elevation (min)
02,641153.714.011.9
52,143151.912.29.5
101,756150.210.57.7
201,244147.27.55.2
30951144.85.23.6
45716142.42.72.2
60599140.81.11.3
90525139.70.0—

Spherical Earth. Halving the distance gains 6 dB, and most of the range penalty is paid below 20° elevation.

The longest pass, with the satellite going straight overhead, lasts the fraction of the orbital period: 11.9 minutes above the horizon and 7.7 minutes above 10°. Most passes are shorter, because the ground track misses the station.

Elevation during a pass#

  • Maximum elevation 90°
  • Maximum elevation 45°
  • Maximum elevation 20°
  • Maximum elevation 10°
Pass elevation profiles at 525 km0153045607590−6−4−20246Time from closest approach (min)Elevation (°)90°45°20°10°
Show the data as a table
Time from closest approach (min)Maximum elevation 90°Maximum elevation 45°Maximum elevation 20°Maximum elevation 10°
−6————
−49.08.25.11.7
−227.123.314.07.2
090.045.020.010.0
227.123.314.07.2
49.08.25.11.7
6————
Elevation seen from a ground station during passes of different maximum elevation, 525 km circular orbit, Earth rotation neglected.

Elevation rises slowly at the start, sweeps through its maximum quickly and falls slowly again. An overhead pass spends only 3.6 minutes above 30°. For a station with an azimuth–elevation rotator, a pass near zenith is the hardest case: the azimuth has to swing through almost 180° within seconds around culmination, faster than many rotators can follow. Prediction software usually flips the antenna, or the station accepts a short loss of pointing.

The Doppler shift#

A signal from a source moving along the line of sight at range rate is received shifted by

The shift is largest at the horizon, where the line-of-sight component of the orbital velocity is , and zero at closest approach. At 525 km and 437.19 MHz the satellite arrives about 10.2 kHz high and leaves 10.2 kHz low, a total sweep of 20.5 kHz.

  • Maximum elevation 90°
  • Maximum elevation 30°
  • Maximum elevation 10°
Doppler shift at 437.19 MHz−15−10−5051015−6−4−20246Time from closest approach (min)Doppler shift (kHz)90°30°10°
Show the data as a table
Time from closest approach (min)Maximum elevation 90°Maximum elevation 30°Maximum elevation 10°
−6———
−410.119.237.27
−29.127.164.61
0−0.00−0.00−0.00
2−9.12−7.16−4.61
4−10.11−9.23−7.27
6———
Doppler shift of a 437.19 MHz downlink during passes at 525 km. The overhead pass has the steepest slope at closest approach.

The curve is steepest at the moment of closest approach. For an overhead pass the range acceleration there is , and the largest rate is1From with : differentiating twice and setting at gives , and .

which is 148 Hz/s at 437 MHz and 525 km. A lower pass is gentler, because the closest distance is larger. Both the shift and the rate scale with frequency:

Doppler shift and Doppler rate by band, 525 km circular orbit
BandFrequency (MHz)Largest shift (kHz)Largest rate, overhead pass (Hz/s)Largest rate, 30° pass (Hz/s)
VHF145.9±3.44927
UHF437.2±10.214881
L1,268±29.7430236
S2,250±52.7763418
X8,200±192.02,7801,523

Both scale with frequency: an S-band receiver tracks five times the Doppler of a UHF one. Earth rotation, neglected here, changes the values by a few per cent.

A ±10 kHz drift moves a narrow telemetry signal by about its own bandwidth or more. A receiver has two choices. It can open its filter wide enough to keep the signal inside for the whole pass, at a price: every doubling of the noise bandwidth costs 3 dB of signal-to-noise ratio, more than the margin of a typical PocketQube link budget. Or it can follow the predicted Doppler curve, which ground-station software does by retuning continuously from the orbital elements. Open networks such as work this way, recording each scheduled pass with Doppler correction[4], and decoders such as gr-satellites then demodulate the recordings[5].

The uplink has the mirror problem. A small satellite’s receiver rarely searches in frequency, so the ground station pre-corrects its transmit frequency by the Doppler shift the satellite will see.

Coherent demodulators add a second requirement: their carrier loop must follow the Doppler rate, 148 Hz/s at UHF, 760 Hz/s at S-band and close to 3 kHz/s at X-band on an overhead pass.

Doppler as a measurement#

The Doppler curve carries information about the orbit. Its zero crossing marks the time of closest approach, and its slope there gives the closest distance through the rate formula above. A single well-recorded pass therefore measures where the satellite is along its track and how close the ground track came to the station.

That matters most right after a , when dozens of objects are released within minutes and catalogue elements cannot yet be assigned to individual satellites. Fitting the Doppler curves of individual passes resolves which object is which[1]: Grizu-263A was tracked under a temporary identifier for days before it received its number. It matters again late in a mission, because elements degrade for light spacecraft as drag grows[6]. Timing errors appear directly as frequency errors near closest approach: elements that place the satellite 10 s late, 76 km along its track, misplace the received frequency by up to 1.5 kHz at 437 MHz. In the waterfall images that SatNOGS archives for every observation[7], this shows up as a trace that drifts off the predicted curve.

flowchart LR
  A["Orbital elements"] --> B["Pass prediction"]
  B --> C["Rotator and Doppler schedule"]
  C --> D["Recording of the pass"]
  D --> E["Demodulated frames"]
  D --> F["Measured Doppler curve"]
  F --> G["Time of closest approach, closest range"]
  G --> H["Refined orbit, object identification"]
  H --> A

How much contact a station gets#

A Sun-synchronous orbit crosses each latitude at roughly the same two local times every day, once going north and once going south, so passes come in two clusters about twelve hours apart. How many fall in each cluster depends on latitude:

Daily contact of one ground station with a 525 km Sun-synchronous orbit, 10° elevation mask
Station latitude (°)Passes per dayContact per day (min)Mean pass (min)Longest gap (h)
02.4156.111.8
202.9175.811.9
41.453.5216.013.0
605.5325.911.3
78.211.0716.59.5

Ten-day propagation with Earth rotation, two-body motion and a spherical Earth. 41.45° is the latitude of the ZBEÜ station that tracked Grizu-263A; 78.2° that of Svalbard.

A mid-latitude station like the one in Zonguldak that operated Grizu-263A gets about three passes a day above 10°, some 20 minutes of contact, and waits up to 13 hours between clusters. At Svalbard, near the turning latitude of polar orbits, the same satellite passes 11 times a day. Lowering the mask to 0° at 41.45° N would raise the count to 5.5 passes and 50 minutes, but the added minutes are the low-elevation ones, where the link budget is weakest. Networks change the picture more than any single site: a few dozen stations spread over latitudes and longitudes turn minutes per day into hours.

Rules for tracking a small satellite#

  1. Start from the best elements available. After deployment, use the deployer’s state vector or the first catalogue elements, and refine with Doppler fits until the object is identified.
  2. Correct Doppler in software, on the downlink and the uplink, rather than widening filters.
  3. Choose the elevation mask from the link budget, not only from the horizon: 10° is a common compromise at UHF.
  4. Budget contact minutes, not passes. Three passes a day at mid-latitude amount to about 20 minutes above 10°, which bounds the data a single station can collect.
  5. Plan for the overhead pass, which brings the strongest signal and the most demanding rotator motion.

The ground segment entry describes station hardware and networks, and the G/T article quantifies how much a better station buys.

References

  1. [1]nadir lab. (2026). PocketQube picosatellites: A review of standards, mission trends and miniaturization constraints, with lessons learned from Grizu-263A, Türkiye’s first PocketQube [Preprint]. nadir lab.Read on nadir lab.
  2. [2]Vallado, D. A. (2013). Fundamentals of Astrodynamics and Applications (4th ed.). Microcosm Press.
  3. [3]Wertz, J. R., Everett, D. F., & Puschell, J. J. (Eds.). (2011). Space Mission Engineering: The New SMAD. Microcosm Press.
  4. [4]White, D. J., Giannelos, I., Zissimatos, A., Kosmas, E., Papadeas, D., Papadeas, P., Papamathaiou, M., Roussos, N., Tsiligiannis, V., & Charitopoulos, I. (2015). SatNOGS: Satellite Networked Open Ground Station. Valparaiso University, Engineering Faculty Publications 40.scholar.valpo.edu
  5. [5]Estévez, D. (n.d.). gr-satellites: a GNU Radio out-of-tree module with decoders for amateur satellites.github.com(accessed 20 October 2026)
  6. [6]Kahr, E., Montenbruck, O., & O’Keefe, K. (2013). Estimation and analysis of two-line elements for small satellites. Journal of Spacecraft and Rockets, 50, 433–439.doi:10.2514/1.A32352
  7. [7]Libre Space Foundation. (2026). SatNOGS DB — satellite and transmitter database.db.satnogs.org(accessed 20 October 2026)

Cite this article

@misc{nadirlab2026doppler,
  author       = {{nadir lab.}},
  title        = {{Pass geometry and Doppler for small-satellite ground stations}},
  year         = {2026},
  month        = oct,
  howpublished = {nadir lab. nadir lab. technical note SQ-TN-2026-007},
  url          = {https://nadirlab.space/en/articles/doppler-pass-geometry/},
  language     = {english},
  note         = {Licence: CC BY 4.0}
}
DOI
Not assigned
Identifier
SQ-TN-2026-007
Licence
CC BY 4.0