Introduction
GNSS receivers produce three distinct types of measurements called observables from each tracked satellite signal. These are the pseudorange, the carrier phase, and the Doppler shift. Each observable has different characteristics: different precision, different ambiguities, and different uses. Understanding all three is essential for anyone working with precision GNSS or analysing raw receiver output.
Pseudorange: Code-Based Distance Measurement
The pseudorange is the most fundamental GNSS observable. It is the apparent distance between the satellite and the receiver, derived by measuring the time delay between the transmitted and locally-replicated Pseudo-Random Noise (PRN) code. The receiver generates an exact copy of the expected PRN code and slides it in time until it aligns with the received signal - the shift required is the code travel time, which, multiplied by the speed of light, gives the pseudorange.
The measurement is called a pseudorange because it is not a true geometric distance. It contains the receiver clock offset (which may be nanoseconds to microseconds from GPS system time), satellite clock error, atmospheric delays (ionospheric and tropospheric), and hardware biases. The receiver clock offset is solved as a fourth unknown alongside the three position unknowns, which is why a minimum of four satellites is required for a 3D position fix.
| Observable | Measurement Basis | Precision | Primary Use |
|---|---|---|---|
| Pseudorange | Code phase delay | 0.1 – 3 m | Single-point position, DGNSS |
| Carrier Phase | Carrier wave phase | 1 – 5 mm | RTK, PPP, geodesy |
| Doppler | Carrier frequency shift | 1 – 5 cm/s velocity | Velocity, cycle slip detection |
Carrier Phase: Precise but Ambiguous
The carrier phase observable measures the phase of the carrier wave itself - the radio wave at approximately 1575 MHz for GPS L1 - rather than the PRN code modulated onto it. Because the carrier wavelength is approximately 19 cm (GPS L1), tracking phase to a fraction of a cycle yields sub-centimetre precision. This is the foundation of RTK, PPP, and all high-precision GNSS techniques.
The fundamental challenge is the integer ambiguity. When the receiver begins tracking a satellite, it can measure the fractional part of the phase cycle accurately, but it does not know how many complete cycles lie between the satellite and the antenna - the integer ambiguity N. This ambiguity is constant as long as the receiver maintains continuous lock on the signal. If lock is broken by a cycle slip, N must be re-estimated. Resolving N to its correct integer value - ambiguity resolution - transforms the carrier phase from a floating-point measurement into a measurement anchored to the true integer count, enabling centimetre positioning.
Doppler: Velocity and More
The Doppler observable measures the rate of change of the carrier phase - in other words, the frequency shift of the received signal caused by the relative motion between the satellite and receiver. The satellite's orbital velocity combined with the receiver's own velocity causes each satellite's signal to arrive slightly shifted in frequency relative to the nominal carrier frequency.
The receiver's Frequency Lock Loop (FLL) or Phase Lock Loop (PLL) tracks this Doppler shift continuously. From the Doppler measurements across all tracked satellites, the receiver can compute its velocity vector with precision of 1–5 cm/s - independently of and more directly than differencing sequential position solutions.
Beyond velocity, Doppler measurements serve two additional purposes. First, they are used in signal acquisition to search the expected Doppler range when acquiring new satellites. Second, they are used in cycle slip detection: if the integrated Doppler disagrees with the carrier phase difference between two epochs, a cycle slip has likely occurred.
Code vs Carrier: When to Use Each
- Single-point navigation uses pseudorange only - no ambiguity resolution needed.
- DGNSS (differential code) uses differenced pseudoranges between base and rover - decimetre accuracy.
- RTK uses differenced carrier phase after integer ambiguity resolution - centimetre accuracy.
- PPP uses undifferenced carrier phase with precise satellite products - centimetre accuracy after convergence.
- Velocity computation uses Doppler or time-differenced carrier phase.
Vital Points
- Pseudorange is derived from code-phase tracking and gives metre-level accuracy - sufficient for single-point navigation.
- Carrier phase is far more precise but contains an unknown integer ambiguity that must be resolved for centimetre accuracy.
- Doppler measures velocity directly and assists in cycle slip detection.
- High-precision positioning depends on using all three observables together - no single observable is sufficient alone.