ENGINEERING REFERENCE

GNSS Pseudorange vs Carrier Phase: What Is Actually Measured?

Pseudorange measures the apparent signal travel time using a satellite's ranging code, expressed as a distance. Carrier phase measures the phase of the received carrier relative to a receiver-generated reference, with an initially unknown whole-cycle offset. Neither is simply the geometric satellite-to-receiver distance. Position, velocity and time (PVT) are estimated navigation results produced from measurements and models, not alternative names for those observations.

For an integrator reading receiver logs or comparing output specifications, the distinction explains three otherwise puzzling situations: a stationary receiver can report changing ranges, a very precise phase measurement can remain ambiguous, and a valid position message need not contain the measurements used to calculate it.

Why a pseudorange is not a tape-measure distance

The receiver aligns a local replica of a satellite's ranging code with the received code. With the signal's transmit-time information, this establishes a travel-time measurement using the satellite and receiver clocks. Multiplying that time by the speed of light gives a pseudorange, normally expressed in metres. The correlation guide explains the alignment process; here the question is what its resulting range contains.

The two clocks are not perfectly synchronized. Atmospheric propagation, equipment delays, reflections and measurement noise also contribute. Therefore, “pseudo” does not mean an invented or unusable measurement: it means an apparent range that must be interpreted with those contributions. ESA-hosted Navipedia's basic-observables reference sets out this distinction.

A compact teaching model for a code observation is:

P = ρ + c(δtᵣ − δtₛ) + T + I + bₚ + εₚ

Here P is code pseudorange; ρ is geometric range between the transmitting and receiving antenna phase centres; c converts clock offsets to metres; T and I represent tropospheric and ionospheric contributions; bₚ collects code hardware biases; and εₚ collects remaining measurement effects in this simplified model. It is not a complete processing specification. Navipedia's measurement-modelling reference gives the fuller equations and correction conventions.

A clock error is not the same as a position error

Consider an illustrative clock-only calculation. Assume the receiver clock is 1 microsecond ahead of the reference time, while the satellite clock contribution and all other terms are held fixed. Its added pseudorange contribution is:

299,792,458 m/s × 0.000001 s ≈ 299.8 m.

This is not a prediction that the reported position will be 299.8 m wrong. In a basic single-system, unconstrained code-positioning model, the receiver estimates three position coordinates and a common receiver-clock offset from at least four suitable satellite observations. The shared clock term is part of what is solved, rather than automatically assigned to movement in one direction. More complex configurations can introduce additional unknowns. See Navipedia's code-based positioning explanation.

Likewise, a stationary antenna does not imply constant pseudoranges: the satellites move and the measurement contributions evolve. Compare an observed range with a model for the same satellite, signal and epoch, not with the expectation that a stationary platform must produce a flat range trace.

Why carrier phase is fine-grained but ambiguous

The carrier repeats much faster than the ranging code. A receiver can measure a fraction of its cycle and follow accumulated phase changes while tracking continues. But that fractional phase does not identify how many complete cycles were already present when tracking began. This unknown offset is the origin of the carrier-phase ambiguity.

NovAtel's pseudorange and carrier-phase explanation describes how code and carrier information work together in precise positioning. Carrier phase is not a separate signal that travels a shorter route; it is a different observable extracted from the received signal.

For a scale calculation, use GPS L1's nominal frequency of 1575.42 MHz from the ESA GPS signal plan:

λ = c/f ≈ 0.1903 m per cycle.

An illustrative 0.01-cycle phase change corresponds to about 1.9 mm of phase-equivalent range. That arithmetic is not a receiver precision specification or a 1.9 mm position-accuracy claim. It converts units; clocks, propagation, biases, ambiguity handling and satellite geometry still matter.

Under a common range-positive convention, the simplified carrier observation in metres has the form:

L = ρ + c(δtᵣ − δtₛ) + T − I + λN + bφ + εφ

N represents the initial whole-cycle ambiguity. Carrier hardware biases, phase wind-up and other effects must also be accounted for; the equation groups them for explanation. The first-order ionospheric contribution has the opposite sign from the code term. Accordingly, carrier phase is not obtained by taking the code pseudorange and merely adding more decimal places.

To see how these observations can be combined without fixing the initial ambiguity, compare carrier-smoothed pseudorange and its response trade-offs.

Tracking phase and resolving ambiguity are different steps

Accumulating phase changes does not by itself determine the initial offset. Precise positioning must estimate the ambiguity-related quantities, and an integer-fixing method must handle the biases that would otherwise prevent an integer interpretation. Navipedia's ambiguity-fixing explanation describes double differencing and the separate treatment required for undifferenced measurements.

An integer fix is therefore not just rounding a raw phase field to the nearest cycle. The measurements, corrections, model and consistency tests jointly support a candidate ambiguity solution. A carrier-capable receiver and a receiver currently reporting an ambiguity-fixed solution are not interchangeable descriptions.

Continuity matters too. A cycle slip interrupts the accumulated phase relationship. Processing must detect and handle the discontinuity, rather than interpreting it as genuine platform motion. Navipedia's measurement-features discussion distinguishes comparatively noisy code observations from precise but ambiguous carrier observations and their discontinuities. Keeping a smooth position trace does not prove that every underlying carrier observation remained continuous.

Compare an observation with a solution at the right level

Quantity What the value represents What it does not establish by itself
Code pseudorange A satellite/signal travel-time observation expressed as distance, including clock and propagation contributions The geometric distance with all errors removed, or the receiver's three-dimensional position
Carrier phase A tracked phase observation in cycles or equivalent metres, with an ambiguity and other bias terms An absolute unambiguous distance, an integer-fixed solution, or position accuracy equal to its displayed resolution
PVT Estimated position, velocity and time for an output epoch, with implementation-specific status information The complete per-satellite observation set or a record of every tracking discontinuity

The distinction is visible in real interfaces. NovAtel's RANGE log provides per-channel pseudorange in metres, carrier phase in cycles, Doppler, lock time and tracking status. Its BESTPOS log reports a computed position and solution information. These are documented NovAtel examples, not ResiNav message formats.

For frequency-based motion information, see how GNSS Doppler observations become a velocity estimate, and why one satellite’s Doppler is not vehicle speed.

Units and validity fields are part of the observation. RANGE documentation also warns that its tracking-error estimates cover tracking-loop thermal noise, not atmospheric or multipath errors. A small reported tracking uncertainty therefore does not certify a small total measurement error. Nor does a named carrier field remove the need to interpret its documented sign, lock and ambiguity-status conventions.

Use the distinction without buying unnecessary outputs

If host software only consumes a navigation result, a suitable PVT output may be the intended deliverable. If software must recompute a solution or inspect satellite-level measurement behavior, the relevant observations and status records are required. A saved PVT trajectory cannot reconstruct the omitted per-satellite code and phase records. The receiver interface guide carries that distinction into the output specification; it does not require every integration to buy raw-observation logging.

For later processing, the separate real-time versus post-mission trajectory guide explains acquisition and software scope. For reflected-path measurement errors, the multipath versus NLOS guide explains why continued tracking can still yield biased observations.

Where the project also needs GNSS reception protection, use the ResiNav product catalogue and the selected model's existing enquiry route for that part of the system. This measurement explanation does not assign raw-observation export, ambiguity resolution or a positioning-accuracy specification to a ResiNav product. Its practical result is to identify which evidence the job needs: a navigation result, satellite observations, or both.

NEXT STEP

Turn available platform information into an engineering review.

Use the Technology centre to frame the discussion, review relevant application scenarios, then send the available platform and receiver details for confirmation.

Request an engineering review Explore Technology