3.5.18 · D5Guidance, Navigation & Control (GNC)

Question bank — GPS — pseudorange, trilateration, dilution of precision

1,653 words8 min readBack to topic
Recall Symbols used on this page (revealed for safety)

Nothing here uses notation the parent didn't build. Quick reminders:

  • = pseudorange to satellite ; = true geometric distance; = receiver clock bias in seconds; = speed of light; = per-satellite range-error size.
  • Line-of-sight unit vector : the gradient of the range with respect to the receiver position. Sign convention: since increases as the receiver moves away from satellite , points from the satellite toward the receiver. It has length 1.
  • Geometry matrix : an matrix (one row per satellite, ). Each row is — three direction components plus a clock-bias column of 1's. That final is , identical for every satellite.
  • DOP = dilution of precision, a geometry-only error multiplier. The named flavours split : PDOP (Position) uses the three position diagonals, GDOP (Geometric) adds the clock diagonal, HDOP/VDOP (Horizontal/Vertical) split position into ground and height, TDOP (Time) is the clock alone.
  • = the diagonal entries of (the position variances and the clock variance, per unit input variance). E.g. , .

True or false — justify

A pseudorange is always at least as large as the true range.
False. The bias term can be negative (slow clock), making smaller than ; the pseudorange can even come out physically absurd, and that's fine because is solved later.
The clock-bias correction is a different number for each satellite.
False. There is one receiver clock, so the same contaminates every pseudorange identically — that shared-ness is exactly what lets us solve for with one extra equation.
If the receiver clock were a perfect atomic clock, 3 satellites would suffice.
True. With known to be zero there are only 3 unknowns , so 3 true-range spheres pin the point — the 4th satellite exists purely to compute the clock error.
DOP depends on how noisy the pseudorange measurements are.
False. DOP is built from , which contains only satellite directions. Measurement noise lives entirely in ; the final error is their product .
Lower DOP is always better.
True. DOP is a multiplier on your range error, so smaller means less amplification; good spread-out geometry gives PDOP ≈ 1–2, clustered satellites give 10+.
Adding a 5th satellite can only help, never hurt, the geometry.
True (for geometry). Extra rows in can only shrink the entries of , so DOP cannot increase; more independent directions sharpen the intersection.
The line-of-sight unit vector points from the satellite toward the receiver.
True. It is , the direction of increasing range as the receiver moves; since range grows as you retreat from the satellite, that direction runs from satellite to receiver, and it has unit length.
GDOP is always larger than or equal to PDOP.
True. includes the clock term that PDOP drops, so it can only be equal or bigger.

Spot the error

"Pseudorange equals the distance to the satellite, so I can read position straight off it."
The word pseudo is the warning: carries an unknown clock offset worth hundreds of metres, so it is not the true distance until is estimated.
"We linearize the GPS equations, so the answer is only a rough approximation."
The linearization is used iteratively: each step re-linearizes at a better guess and , converging to the exact nonlinear solution — the approximation is per-step, not final.
"DOP has 'precision' in the name, so a good DOP means the receiver measured accurately."
DOP measures how geometry amplifies whatever error exists; it says nothing about measurement quality. Good DOP with a noisy receiver still gives a poor fix.
"A clock that runs fast makes the computed range too short."
Backwards. A fast clock makes the arrival time read too large, so is overestimated — the range comes out too long, and you subtract to fix it.
"To improve geometry, cluster all satellites directly overhead."
Clustering makes line-of-sight vectors nearly parallel, driving and DOP up. You want wide angular spread — some overhead, some near the horizon in different directions.
"The column of 1's in is just a bias/padding trick with no physical meaning."
That column is — the clock direction. It encodes that the bias affects all satellites equally, and it's precisely why is recoverable.
"Starting from , the two geometry factors cancel to leave ."
No. The middle simplifies as , so the result is not the identity. The geometry matrix survives, which is the entire point of DOP.

Why questions

Why does GPS need a fourth satellite when 3 spheres already fix a point in 3D?
Because the receiver clock adds a fourth unknown ; with 4 unknowns you need 4 equations, and the extra one's job is literally to compute the clock error.
Why is the same subtracted from every satellite in Example A?
One physical clock produces one bias, so every pseudorange is corrupted by the identical amount — the shared-bias insight made concrete.
Why do we multiply the clock bias by before comparing it to distances?
is a time; multiplying by the speed of light converts seconds into metres so it lives in the same units as and .
Why does a near-zero signal bad geometry?
A tiny determinant means the line-of-sight vectors are nearly linearly dependent (almost parallel), so their intersecting spheres cut at a glancing angle and small errors smear over a large region — DOP blows up.
Why does DOP multiply the range error rather than add to it?
The mapping from range error to position error is linear through , so covariance propagation scales the input error by a geometry factor — a multiplicative gain, hence .
Why does the least-squares solution use instead of just ?
With satellites is tall and non-square, so it has no ordinary inverse; the pseudoinverse gives the best least-squares fit across all measurements.
Why can we form at all — what must be true of ?
is invertible only when has full column rank 4, i.e. at least four satellites whose line-of-sight directions are not coplanar/degenerate. If rank drops below 4, and the inverse — and hence DOP — is undefined.

Edge cases

What happens to the fix if all satellites are on one side of the sky, none overhead?
The vertical geometry weakens: VDOP grows large so the height estimate becomes very uncertain, even while horizontal position may stay decent.
What if only 3 satellites are visible — is a position ever possible?
Only by supplying the missing 4th constraint externally (e.g. a known altitude on WGS84, or an external clock). Otherwise has only 3 rows, cannot reach column rank 4, and the system is underdetermined with 4 unknowns and 3 equations.
What if a satellite sits exactly at the receiver's zenith (straight overhead)?
Its line-of-sight vector is nearly vertical, contributing strongly to VDOP but weakly to horizontal geometry — great for height, poor for east/west, so you still need spread-out companions.
What does DOP do in the limit where two satellite directions coincide?
The two rows of become identical, so loses full column rank, , and diverges — DOP → ∞ and the fix is undefined along the unresolved direction.
What happens to the iterative solver if the initial guess is very far off?
The first-order Taylor step is inaccurate, so early may overshoot, but re-linearizing at each new point still typically converges because GPS geometry is well-behaved near Earth's surface.
If the true clock bias is exactly zero, does the 4th satellite become useless?
No. You don't know in advance; the 4th equation is what lets the solver discover that , and its extra geometry also lowers DOP.
In the hypothetical limit with DOP → ∞, what is the position error?
The product is an indeterminate , so you cannot just call it zero — you must take the limit carefully. In practice noiseless ranges never occur, and any real singular geometry (rank ) leaves the fix genuinely undefined along the unresolved direction.
If the true clock bias is exactly zero, is the 4th satellite's clock column redundant?
No. The clock column stays in regardless of the bias value; it encodes that the solver treats as unknown. Removing it would drop a needed column and break the rank-4 requirement.