Skip to content

GNSS observations: pseudorange, carrier phase and Doppler

By PosFlow Β· Published

A GNSS receiver measures signals before it computes a position. Pseudorange estimates signal travel distance, carrier phase tracks accumulated cycles, and Doppler measures frequency shift. Precise processing needs the original observations and their metadata; a latitude/longitude log cannot reconstruct them.

What the receiver actually records

ObservableRINEX 3/4 prefix and unitWhat to use it for
PseudorangeC β€” metresInitial position and receiver clock estimation; code-related quality checks
Carrier phaseL β€” cyclesPrecise positioning and detection of tracking discontinuities
DopplerD β€” hertzRange-rate information and consistency checks
Signal strengthS β€” see the header for unitsSignal tracking diagnostics; interpret with elevation and receiver settings

Sources: IGS: formats and standards Β· ESA Navipedia: GNSS basic observables

Why carrier phase is precise but not an absolute range

A receiver can track a small fraction of a carrier cycle, but it does not initially know the whole number of cycles between the satellite and antenna. Processing must estimate these ambiguities along with coordinates, clocks and other parameters. Losing lock can change an ambiguity and start a new continuous phase arc.

  • Keep code and phase observations together. Fine phase resolution alone does not remove clock or atmospheric errors.
  • A fixed ambiguity solution is a processing result. It is not an independent certificate that the antenna height, base coordinates or output frame are correct.
  • When comparing phase and code, convert cycles to length using the wavelength of the actual signal. Do not treat a phase value in cycles as metres.

Sources: ESA Navipedia: GNSS basic observables

Read a three-character observation code

In RINEX 3 and 4, an observation identifier combines the measurement type, a frequency-band number and a tracking attribute. For GPS, C1C identifies a code measurement on L1 C/A and L1C identifies carrier phase for that signal. The band number is constellation-dependent; it is not a universal frequency in gigahertz.

  • Check SYS / # / OBS TYPES before assuming that every satellite has every measurement.
  • Treat blank observation fields as missing measurements. Replacing them with zero creates artificial ranges or phase jumps.
  • Keep loss-of-lock indicators when converting or merging files. They help a processor identify boundaries between phase arcs.

Sources: IGS: formats and standards

A field logging checklist

  • Enable raw code and carrier-phase logging in the receiver. Verify that the particular model and firmware expose those messages.
  • Record broadcast navigation data, or plan a compatible source for it. Position messages alone are insufficient.
  • Record antenna model, radome, height measurement convention, marker identification and occupation times in the field log.
  • For PPK, record overlapping rover and base observations and retain the source and reference frame of the base coordinates.
  • Before leaving the site, convert a short sample and inspect its time span, satellite systems and phase observations.

Diagnose the missing-data problem before changing software

If a converted file contains code but no phase, check the receiver configuration and the binary message inventory first. If a file contains only NMEA position sentences, changing the RINEX output version will not recover the missing raw measurements. Preserve the original log so that a conversion issue can be distinguished from an acquisition issue.

References and methodology

Technical definitions follow the sources below. Worked examples are illustrative; product-specific thresholds are identified as PosFlow settings. For corrections, contact PosFlow with the article URL and the relevant specification.

Put this into practice