3.5.18 · D4Guidance, Navigation & Control (GNC)

Exercises — GPS — pseudorange, trilateration, dilution of precision

3,091 words14 min readBack to topic

For the source material see the parent: the GPS topic note. Prerequisite ideas live in Trilateration and Multilateration, Least Squares Estimation, Time of Flight and Ranging, Clock Bias and Atomic Clocks, Covariance Propagation, and Reference Frames — ECEF and WGS84.

Throughout, is the speed of light, is a pseudorange (measured, clock-contaminated distance), is a true geometric range, and is the receiver clock bias in seconds.


Level 1 — Recognition

Exercise 1.1 — Name the contamination

A satellite sends a signal at . The receiver reads arrival at using its cheap quartz clock. You compute . Is this the true range or the pseudorange ? What single quantity separates them?

Recall Solution

It is the pseudorange . The receiver clock is off by an unknown bias , so its is wrong by the same amount for every satellite. The separator is the term : The true range is the honest geometric distance ; the pseudorange adds the clock error converted to metres.

Exercise 1.2 — Count the unknowns

List every unknown a GPS receiver must solve for, and state the minimum number of satellites needed.

Recall Solution

Four unknowns: (position) and (clock bias). Four unknowns need four independent equations, so the minimum is 4 satellites. Three would pin the geometry only if the clock were perfect — it is not.

Exercise 1.3 — Convert a clock bias to a distance

A receiver clock is fast by . How many metres of error does this inject into each pseudorange?

Recall Solution

Why this tool? is a time; distance = speed × time, so multiplying by converts the clock error into the metres it corrupts every measurement by. The same m sits on every satellite's pseudorange.


Level 2 — Application

Exercise 2.1 — Remove the clock bias

Two satellites give pseudoranges and . The receiver clock is later found slow by . Find the two true ranges.

Recall Solution

Clock offset in metres: .

  • .
  • . Why add here? A slow clock makes read too small ⇒ underestimated distance ⇒ we must add back the missing m. The same correction hits both — the shared-bias insight.

Exercise 2.2 — 1D pseudorange fix

On a number line a receiver at unknown position with unknown bias sees two satellites. Satellite A at gives ; satellite B at gives . Measured: , , and the receiver is known to lie between the two satellites (). Find and .

Recall Solution

Between the satellites, and . So: Subtract: , giving . Back-substitute: , i.e. . Why two equations? Two unknowns ( and ) need two satellites — the 1D echo of "4 satellites for 4 unknowns."

Exercise 2.3 — Position error from PDOP

A receiver has (recall PDOP = Position Dilution of Precision, the geometry multiplier for 3D position) and each pseudorange has (UERE = User-Equivalent Range Error, the per-measurement noise). What is the expected position error ?

Recall Solution

Why multiply? DOP is the geometric amplification factor (from the satellite directions); UERE is the raw per-measurement noise (from the signals). Final error = geometry × noise, and they are independent factors.


Level 3 — Analysis

Exercise 3.1 — Build a 2D geometry matrix

In a flat 2D world a receiver sits at the origin. Two satellites lie along line-of-sight unit directions and . Ignore the clock column for this toy (2 unknowns: ). Write , compute , and find the DOP .

Look at Figure s01 for the two directions and the angle between them.

Figure — GPS — pseudorange, trilateration, dilution of precision
Recall Solution

Determinant: . Inverse: . Trace of : . So . Why the trace? The diagonal entries of are the per-axis variance multipliers; summing them and taking a square root gives the combined position DOP.

Exercise 3.2 — Squeeze the angle, watch DOP explode

Repeat 3.1 but with the satellites only apart: , . Show the determinant collapses and DOP blows up. Figure s02 compares the wide and narrow geometries.

Figure — GPS — pseudorange, trilateration, dilution of precision
Recall Solution

. . Trace shortcut — why for a : For any matrix , the inverse is . Its diagonal entries are and , so their sum is . That is only a convenience (the swap-diagonal inverse); in higher dimensions you must actually invert. Applying it here: — versus at . Why? for two unit directions apart. As the directions become parallel, , entries blow up — the spheres cut at a glancing angle and errors smear. Wide spread = small DOP = good.


Level 4 — Synthesis

Exercise 4.1 — Full 2D linearized least-squares step

A 2D receiver's current guess is with bias guess . Three satellites sit at , , (units: km). The predicted pseudoranges at the guess are . Measured residuals are km (all identical). Using the geometry matrix with columns , argue without heavy arithmetic what must be, then confirm the clock component.

Recall Solution

Sign convention first (flag it explicitly, 3B1B-style). We follow the parent's definitions exactly, so no sign is left to guess:

  • Residual: (measured minus predicted). A positive residual means the measured pseudorange was longer than the guess predicted.
  • Line-of-sight entries: — the parent's convention, pointing from satellite to receiver. Evaluated at the guess .
  • Clock column entry , because ; a positive lengthens every predicted range.

Compute the unit vectors at . For : . For : . For , : . Key insight: an identical positive residual on every satellite looks exactly like a pure clock error — the column of 1's (all ) absorbs it. The model with gives , matching the data with zero position change. So . The positive sign says "our clock guess made predictions too short by 300 m ⇒ correct the bias upward." Why is this the unique least-squares answer? is and invertible (satellites well spread), so the system is exact: is unique, and we exhibited a solution — it must be the solution. A common signal on all channels is diagnosed as clock, not position — precisely the job of the 1's column.

Exercise 4.2 — Turn a DOP into an error budget

Your receiver reports (Horizontal DOP — geometry multiplier for the two horizontal axes) and (Vertical DOP — multiplier for the up/down axis). The dominant error source is ionospheric delay giving (User-Equivalent Range Error). Compute horizontal and vertical errors and the total 3D position error (via PDOP).

Recall Solution

Horizontal: . Vertical: . PDOP combines them: . Total: . Why does VDOP dominate? Satellites are all above you — none below the horizon — so the vertical direction is always poorly bracketed. That is the structural reason GPS altitude is worse than horizontal position.


Level 5 — Mastery

Exercise 5.1 — Degenerate geometry: coplanar satellites

Suppose all four satellites happen to lie (as seen from the receiver) in a single plane through the receiver — their line-of-sight vectors are coplanar. What happens to and to one component of the DOP? Which coordinate becomes unobservable?

Recall Solution

If the four unit directions all lie in one plane, they span only a 2D subspace of the 3D direction space. The columns of the position part of are then linearly dependent (rank ), so is singular: . Consequently does not exist — formally the DOP along the direction perpendicular to the plane. That perpendicular coordinate is unobservable: no combination of these ranges constrains motion out of the plane. Physical picture: if every satellite lies on your horizon plane, nudging your altitude changes all four ranges by the same second-order amount only — first order it's invisible. You need at least one satellite well out of the common plane (e.g. overhead) to observe the third dimension. This is the continuous version of the L3 "angle " blow-up, now in 3D.

Exercise 5.2 — Zero-baseline / identical satellites

Two of your four satellites report the exact same position and pseudorange (a data-repeat glitch). You still have "4" measurements. Can you get a fix? Explain via the rank of .

Recall Solution

No. Two identical satellites contribute two identical rows to . Identical rows are linearly dependent, so has rank at most , and is singular (). You effectively have only 3 independent equations for 4 unknowns — underdetermined, exactly the failure mode of "3 satellites" from the parent note. Why "4 measurements" isn't enough: what matters is independent rows (distinct geometry), not the raw count. A duplicated measurement adds no new constraint. You must have four geometrically distinct line-of-sight directions.

Exercise 5.3 — Common-elevation clustering wrecks TDOP

In the plane-plus-clock model, put all satellites at the same elevation angle (only their azimuth differs), so each one couples to the clock column (the all-ones column) in nearly the same way. Intuitively — and via the near-parallel-column argument — explain why clustering satellites at a common elevation specifically inflates TDOP (Time DOP, the clock/time component of the DOP), and state the cure.

Recall Solution

Statement of the mechanism. DOP blows up in a coordinate when the corresponding column of is nearly parallel to (nearly a linear combination of) the other columns — that is the multi-column version of the L3 "two directions parallel ⇒ " story. The clock column is all ones. TDOP is large precisely when a shift in receiver position mimics a clock shift, i.e. when the all-ones column is nearly reproducible from the position columns.

Why common elevation triggers it. Each line-of-sight unit vector makes the same angle with the local vertical (same elevation). Its coupling to a vertical position change is therefore identical across all satellites — and a vertical move then changes every predicted range by nearly the same amount, which is exactly what a clock bias does (adds the same to all ranges). So "you moved up/down" and "your clock drifted" produce almost the same residual pattern; the estimator cannot separate them, and the clock variance (hence TDOP ) inflates.

The cure. Mix high and low elevation satellites. A satellite directly overhead couples strongly to vertical position but weakly reproduces the flat common-mode clock signature; a satellite near the horizon does the opposite. That contrast makes the all-ones clock column no longer expressible from the position columns, breaks the position–clock ambiguity, and shrinks TDOP.

Why this is the right diagnosis (and not "just add satellites"): adding more satellites at the same elevation keeps the columns near-parallel and does nothing — the fix is angular diversity in elevation, matching the L3 lesson that spread, not count, controls DOP. See Covariance Propagation for how this ambiguity appears as an ill-conditioned .