← Tutorials

Tutorial Series · Part 9 of 27

How GPS/GNSS Positioning Works Without Equations First

An intuitive explanation of satellite ranging, pseudoranges, trilateration, and clock bias in GNSS.

Series Context

Navigation from First Principles

This article is part of an ordered course. Use the previous and next links to stay in sequence.

GNSS positioning starts with a surprisingly simple idea: measure how long a satellite signal took to arrive, multiply by the speed of light, and use that as an apparent distance. ESA Navipedia explains this apparent distance as a pseudorange because clock errors and other effects mean it is not the exact geometric range.1

Why this matters

A receiver does not ask satellites where it is. Satellites broadcast signals. The receiver listens, estimates signal travel time, and solves for its own position and clock offset. A GPS receiver determines position, velocity, and time by processing satellite signals and extracting propagation time.2

The basic model

For a transmitter at known position si\mathbf{s}_i and receiver at r\mathbf{r}, the ideal range is:

ρi=rsi\rho_i = \lVert \mathbf{r}-\mathbf{s}_i \rVert

With a clock bias term bb, the pseudorange is:

Ri=ρi+bR_i = \rho_i + b

In 2D with no clock bias, one range gives a circle of possible receiver locations. Two ranges produce two intersections. Three usually give one useful solution. In real 3D GNSS with receiver clock error, at least four satellites are needed to solve three position coordinates plus clock offset.1

Interactive demo

The demo below implements that geometry in 2D. Each transmitter defines a pseudorange circle, and the estimate comes from a live least-squares solve over receiver position and, optionally, receiver clock bias.

Interactive Demo

GNSS Trilateration Playground

Start by dragging the true receiver, then compare a position-only solve against a solve that also estimates receiver clock bias. The range circles are pseudorange measurements, so extra bias pushes every circle outward together.

Drag lighthouses or the true receiver Thin circles are the measured pseudoranges

Controls

Try this: add clock bias, turn off clock solving, then reroll the noise.

Readouts

Transmitters used4
Position error0.0 m
Estimated clock term0.0 m
Solver statebias estimated

What to watch

  • With one transmitter, the receiver could be anywhere on a circle.
  • With two, the geometry narrows but still leaves ambiguity.
  • With three transmitters and no clock bias, the estimate is well constrained.
  • When clock bias is enabled, you need enough measurements to solve the extra unknown robustly.

Try it

Set clock bias to zero and use three transmitters. Then add a clock bias. The circles no longer intersect at the true point. Enable bias solving and add a fourth transmitter to recover a good estimate.

Limits of this picture

Real GNSS uses satellite ephemerides, relativistic corrections, ionospheric and tropospheric effects, receiver noise, multipath and Earth rotation corrections. Those are intentionally postponed. The purpose here is to make pseudorange geometry feel intuitive before introducing real measurement models.

Footnotes

  1. ESA Navipedia, “An intuitive approach to the GNSS positioning”. https://gssc.esa.int/navipedia/index.php/An_intuitive_approach_to_the_GNSS_positioning - Beginner-friendly explanation of pseudorange geometry, clock offset, 3D positioning and DOP. Accessed 2026-06-11. 2

  2. ESA Navipedia, “GPS Receivers”. https://gssc.esa.int/navipedia/index.php/GPS_Receivers - Explains GNSS receivers, PVT, ephemeris, clocks and signal processing blocks. Accessed 2026-06-11.