This page is the drill page for the parent GNSS note . The parent built the theory; here we walk every kind of situation a GNSS problem can throw at you — small numbers, big numbers, zero cases, degenerate geometry, a real-world word problem, and an exam twist. Nothing new is assumed: every symbol used below was defined on the parent note, and we re-anchor each one as it appears.
Intuition What "cover every scenario" means here
A GNSS calculation has only a handful of moving parts : a time you turn into a distance with the speed of light, a clock bias that fakes that distance, a geometry (how the satellites are spread) that amplifies or tames error, and a relativity drift that quietly corrupts the clock. If you have seen each of these pushed to its extreme — tiny, huge, zero, and "broken" — nothing on an exam is new.
Definition DOP — Dilution of Precision (in-page reminder)
DOP is a single number that says how much the satellite geometry magnifies your ranging (measurement) error into position error:
σ position = DOP × σ measurement .
Think of it as a "geometry penalty." Small DOP (~1) = good spread of satellites, barely amplifies error. Large DOP = satellites bunched together, tiny errors explode. It is built from the geometry matrix H as DOP = tr ( ( H T H ) − 1 ) , where tr (trace) just means "add up the diagonal." Full derivation lives in Dilution of Precision (DOP) .
Every cell below is hit by at least one worked example. The label in each example (e.g. [Cell B2] ) tells you which case it covers.
#
Case class
What makes it tricky
Example
A1
Time → distance, normal size
plain "distance = c·t"
Ex 1
A2
Time → distance, tiny input
nanosecond ⇒ centimetres
Ex 2
B1
Clock bias in metres
1 unknown = hundreds of m
Ex 3
B2
Clock bias, zero case
perfect clocks ⇒ 3 sats
Ex 4
C1
Counting unknowns / equations
how many satellites?
Ex 4
D1
Geometry / DOP, good spread
low DOP, well-conditioned
Ex 5
D2
Geometry / DOP, degenerate
satellites bunched ⇒ singular
Ex 6
E1
Relativity drift (SR + GR)
net +38 μs/day, sign matters
Ex 7
F1
Real-world word problem
urban canyon, multi-constellation
Ex 8
G1
Exam twist / limiting value
signal at horizon, extra travel
Ex 9
Prerequisite links you may want open: Trilateration and Multilateration , Dilution of Precision (DOP) , Least Squares Estimation , Special Relativity — Time Dilation , General Relativity — Gravitational Time Dilation .
Throughout, remember the constants:
c = 3 × 1 0 8 m/s — the speed of light , our ruler. One second of travel time = 3 × 1 0 8 metres of distance.
1 μ s = 1 0 − 6 s (microsecond), 1 ns = 1 0 − 9 s (nanosecond), 1 ms = 1 0 − 3 s (millisecond).
Worked example A signal takes 67 ms to arrive. How far away is the satellite?
Forecast: guess first — is the answer closer to 100 km, 20,000 km, or 400,000 km? Jot it down.
Step 1. Convert the time to seconds: 67 ms = 67 × 1 0 − 3 s = 0.067 s .
Why this step? The speed c is in metres per second , so the time must be in seconds for the units to cancel cleanly.
Step 2. Multiply by the ruler c :
ρ = c t = ( 3 × 1 0 8 s m ) ( 0.067 s ) = 2.01 × 1 0 7 m .
Why this step? Distance = speed × time. Here ρ (pseudorange) is the raw distance the timing implies.
Step 3. Read it in km: 2.01 × 1 0 7 m = 20 , 100 km .
Why this step? Metres are hard to feel at this scale; dividing by 1000 to get kilometres lets us compare against known orbit altitudes and sanity-check the answer.
Verify: the seconds cancel: s m ⋅ s = m ✓. And 20 , 100 km sits right in MEO (~20,200 km for GPS) — the answer passes a physical sanity check.
Worked example The receiver measures the arrival time to a precision of 1 ns. How many metres of position uncertainty does that single nanosecond represent?
Forecast: a nanosecond feels invisible. Guess: millimetres, centimetres, or metres?
Step 1. Convert: 1 ns = 1 0 − 9 s .
Why this step? Same unit rule as Ex 1 — the ruler works in seconds.
Step 2.
Δ ρ = c ⋅ Δ t = ( 3 × 1 0 8 ) ( 1 0 − 9 ) = 0.30 m = 30 cm .
Why this step? The error in distance scales with the error in time by exactly the same factor c . This is the famous "light travels 30 cm per nanosecond" fact.
Verify: units s m ⋅ s = m ✓. This is why GNSS engineers obsess over timing: shave a nanosecond, save 30 cm. It also explains why the 38 μs/day relativistic drift (Ex 7) is catastrophic — 38 μs is 38,000 ns.
Before we start, re-anchor the two symbols borrowed from the parent's observation equation ρ i = r i + c b + ε i :
r i = the true geometric range — the honest straight-line distance from your position to satellite i , in metres. This is what you would measure with perfect clocks.
ε i = the residual measurement noise for satellite i (in metres) — the leftover errors from the atmosphere bending the signal, electronic noise, etc. Small and random, but never exactly zero.
Worked example The receiver's cheap quartz clock is ahead of true time by a bias
b = 1 μ s . How much fake distance does this inject into every pseudorange?
Forecast: guess — decimetres, metres, or hundreds of metres?
Step 1. Recall the observation equation: ρ i = r i + c b + ε i , where (as re-anchored above) r i is the true range and ε i is the small noise. The bias term is c b .
Why this step? The bias b is a time error; multiplying by c turns it into the distance error it fakes. It is added to every satellite equally — that is precisely what lets us solve for it as a 4th unknown.
Step 2.
c b = ( 3 × 1 0 8 ) ( 1 × 1 0 − 6 ) = 300 m .
Why this step? Plug the numbers straight into c b .
Verify: units ✓. 300 m is a football-stadium-sized error from one microsecond . This is why b must be solved (needing a 4th satellite), never assumed zero — see Ex 4. Compare with Ex 2: 1 μs = 1000 ns, and 1000 × 0.30 m = 300 m ✓, internally consistent.
Worked example Suppose your receiver carried a
perfect atomic clock synchronized to the satellites' clocks. How many satellites do you now need for a 3D fix — and why?
Forecast: 3, 4, or still 4?
Step 1. List the unknowns. In general they are x , y , z , b — four of them.
Why this step? Every unknown needs one equation (one satellite) to pin it down.
Step 2. Set the bias to its zero/known value: b = 0 . Then c b = 0 , and the observation equation collapses to ρ i = r i + ε i , a pure sphere.
Why this step? A perfect synchronized clock removes the hidden unknown. This is the degenerate "no-bias" corner of the problem.
Step 3. Count what's left: unknowns = x , y , z = 3 . Therefore 3 satellites (3 spheres intersecting at one point).
Why this step? Removing one unknown removes one required equation — pure dimension counting.
Verify: consistency check with the general case. With bias: 4 unknowns ⇒ 4 sats. Without bias: 4 − 1 = 3 unknowns ⇒ 3 sats. The arithmetic 4 − 1 = 3 ✓. (In reality no consumer clock is this good, so we always use 4 — this example isolates why the 4th is needed.)
Figure below (s01): the receiver is the slate square at the origin; four coloured arrows shoot out to four satellites (stars) that are spread widely across the sky — one low to the East, one straight overhead, two high in different directions. Because the arrows point in genuinely different directions, they brace your position from several sides (like a well-planted tripod). This wide spread is what makes DOP small.
Worked example Two satellites sit at unit line-of-sight directions
u ^ 1 = ( 1 , 0 ) and u ^ 2 = ( 0 , 1 ) — i.e. one due East on the horizon, one straight up. Treating this as a simplified 2D fix (ignoring the clock column), form the geometry matrix and estimate the position-error amplification.
Forecast: will this geometry amplify error a lot, a little, or leave it unchanged?
Step 1. Build the geometry matrix H from the line-of-sight rows. Each row is the direction to a satellite:
H = [ 1 0 0 1 ] .
Why this step? The parent note showed ∂ r i / ∂ x = ( x − x i ) / r i , the components of the unit direction. Perpendicular directions give an identity-like matrix.
Step 2. Compute H T H = [ 1 0 0 1 ] , and its inverse is the same identity.
Why this step? DOP is built from ( H T H ) − 1 — the smaller its diagonal, the less measurement error is amplified.
Step 3. DOP = tr ( ( H T H ) − 1 ) = 1 + 1 = 2 ≈ 1.41 .
Why this step? This is the smallest possible value for two perpendicular directions — the geometry adds almost nothing on top of the raw measurement noise.
Verify: 2 ≈ 1.414 ✓. So σ position = 1.41 × σ measurement : a 3 m ranging error becomes ~4.2 m of position error. Compare this with Ex 6, where the same ranging error explodes.
Figure below (s02): same receiver (slate square), but now all four arrows point into one narrow cone low on the East horizon — the satellites are bunched . The arrows are nearly parallel, so they all brace your position from the same side and give almost no leverage perpendicular to that direction (like a tripod with all three legs jammed together). This near-parallel bunching is exactly what makes DOP explode.
Worked example Now both satellites lie in almost the same direction:
u ^ 1 = ( 1 , 0 ) and u ^ 2 = ( cos 1 ∘ , sin 1 ∘ ) ≈ ( 0.9998 , 0.0175 ) . What happens to the DOP?
Forecast: will DOP stay near 1.41 , or blow up?
Step 1. Build H = [ 1 0.9998 0 0.0175 ] .
Why this step? Two nearly-parallel line-of-sight rows — the "carpenter's legs too close together" case from the parent note.
Step 2. Its determinant is det H = ( 1 ) ( 0.0175 ) − ( 0 ) ( 0.9998 ) = 0.0175 — tiny, nearly zero.
Why this step? A near-zero determinant means H is nearly singular : inverting it divides by that tiny number, so errors are amplified enormously.
Step 3. Compute ( H T H ) − 1 and its trace. Numerically the trace ≈ 6555 , so
DOP = tr ( ( H T H ) − 1 ) ≈ 6555 ≈ 81.
Why this step? This shows the amplification factor jump from ~1.4 (Ex 5) to ~81 — a 57× worse position error from the same measurements.
Verify: limiting behaviour — as the angle between satellites → 0 ∘ , det H → 0 and DOP → ∞ . Setting them exactly parallel (u ^ 2 = ( 1 , 0 ) ) makes H T H truly singular (determinant 0) — no unique fix exists. This is the mathematical face of "four satellites all near the horizon in one direction is bad." ✓
Worked example Over one day, special relativity slows the satellite clock and general relativity speeds it up. Given the standard fractional rates, show the net drift is about
+ 38 μ s/day .
Forecast: guess the sign of the net effect — does the satellite clock end up ahead or behind?
Step 1. Special relativity (the satellite is moving , so its clock runs slow — a negative contribution). For a GPS satellite v ≈ 3874 m/s :
t Δ t S R = − 2 c 2 v 2 = − 2 ( 3 × 1 0 8 ) 2 ( 3874 ) 2 ≈ − 8.3 × 1 0 − 11 .
Why this step? This is the time-dilation fraction from Special Relativity — Time Dilation : fraction of a second lost per second. Negative = slower.
Step 2. General relativity (the satellite is higher , in weaker gravity , so its clock runs fast — a positive contribution):
t Δ t GR = + c 2 GM ( r E 1 − r s a t 1 ) ≈ + 5.3 × 1 0 − 10 .
Why this step? From General Relativity — Gravitational Time Dilation : higher up = faster clock. It is bigger than the SR effect, which is why the net is positive.
Step 3. Add the fractions (they act on the same clock, so they simply sum):
t Δ t net = − 8.3 × 1 0 − 11 + 5.3 × 1 0 − 10 ≈ + 4.45 × 1 0 − 10 .
Why this step? The signs matter: SR subtracts, GR adds. GR wins, so the net rate is positive — the satellite clock gains time.
Step 4. Multiply the net rate by the number of seconds in one day, t = 86400 s , to accumulate the drift over a full day:
Δ t net = ( 4.45 × 1 0 − 10 ) ( 86400 s ) ≈ 3.8 × 1 0 − 5 s .
Why this step? Step 3 gave a dimensionless rate (seconds gained per second). To get the actual drift a receiver sees after 24 hours, we multiply by the number of seconds in a day — this turns the tiny rate into a concrete accumulated time error.
Step 5. Convert seconds to microseconds (1 μ s = 1 0 − 6 s , so multiply by 1 0 6 ):
3.8 × 1 0 − 5 s = 3.8 × 1 0 − 5 × 1 0 6 μ s = 38 μ s .
Why this step? Seconds are too coarse to feel here; microseconds give the familiar headline number +38 μs/day and let us compare against the 30 cm/ns ruler from Ex 2.
Verify: sign is positive (clock runs fast), magnitude ≈ 38 μ s/day ✓. Cross-check the damage using Ex 2's factor: 38 μ s = 38000 ns , and 38000 × 0.30 m ≈ 11 , 400 m ≈ 11 km/day of position error if uncorrected ✓. That is why satellite oscillators are pre-tuned slightly slow on the ground.
Worked example A delivery drone in a downtown "canyon" of tall buildings can only see the sky in a narrow strip overhead. With GPS alone it sees
3 satellites (not enough — Ex 4 needs 4). It switches on multi-constellation, adding GLONASS + Galileo + BeiDou, and now sees 9 satellites in that same strip. Two questions: (a) can it now get a fix, and (b) is the geometry good?
Forecast: does "more satellites" automatically mean "good position"?
Step 1. Count for the fix. With bias unknown we need ≥ 4 satellites. GPS alone: 3 < 4 ⇒ no fix . Multi-constellation: 9 ≥ 4 ⇒ fix possible .
Why this step? The 4-unknown counting rule from Ex 4 is a hard gate — you cannot solve x , y , z , b with fewer than 4 equations.
Step 2. Check redundancy. Extra satellites beyond 4 give 9 − 4 = 5 redundant measurements.
Why this step? Redundancy feeds Least Squares Estimation (better averaging of noise) and enables RAIM (spotting a faulty satellite).
Step 3. Check geometry. All 9 are in a narrow overhead strip — their line-of-sight directions are nearly parallel (like Ex 6). So even with 9 satellites, the DOP is high and horizontal accuracy is poor.
Why this step? This is the crucial nuance: satellite count fixes solvability; satellite spread fixes accuracy. They are different problems.
Verify: answer (a) yes, a fix is now possible (9 ≥ 4 ); answer (b) but the geometry is still bad (narrow strip ⇒ high DOP). This exactly matches the parent's warning that multi-constellation helps DOP in canyons but cannot beat pure sky-blockage — you need spread, not just count. The count check 9 − 4 = 5 redundancy ✓.
Worked example Exam twist. A GPS satellite at MEO altitude
h = 20 , 200 km is (a) directly overhead vs (b) right at the horizon, as seen from a receiver on Earth (radius R E = 6371 km ). How much farther does the horizon signal travel, and what extra time does that add?
Forecast: guess the extra distance — hundreds of km, or thousands?
Step 1. Overhead distance is just the altitude: d up = h = 20 , 200 km .
Why this step? Straight up, the receiver-to-satellite line is exactly the altitude — no triangle needed.
Step 2. Horizon distance uses Pythagoras on the right triangle formed by Earth's centre, the receiver, and the satellite. The satellite's distance from Earth's centre is r s a t = R E + h = 26 , 571 km . At the horizon the line of sight is tangent to the Earth, so it meets the Earth's radius at the receiver at a right angle, giving:
d horiz = r s a t 2 − R E 2 = 2657 1 2 − 637 1 2 km ≈ 25 , 795 km .
Why this step? At the horizon the line of sight grazes the Earth tangentially, forming a right angle at the receiver — the classic tangent-line right triangle. Pythagoras gives the third side.
Step 3. Extra distance:
Δ d = d horiz − d up ≈ 25 , 795 − 20 , 200 = 5 , 595 km .
Why this step? A horizon satellite is thousands of km farther — its signal is weaker and passes through more atmosphere (larger ε i ), which is why low-elevation satellites are noisier.
Step 4. Extra travel time:
Δ t = c Δ d = 3 × 1 0 8 m/s 5.595 × 1 0 6 m ≈ 0.0187 s = 18.7 ms .
Why this step? Convert the extra distance back to time with the same ruler c — this is the physical range these signals must cover.
Verify: units: km ✓ throughout; m / ( m/s ) = s ✓. Limiting sanity: as h → ∞ , d horiz → d up and Δ d → 0 (a very distant satellite looks the same distance in every direction). Here Δ d ≈ 5595 km ⇒ Δ t ≈ 18.7 ms, in the same ballpark as Ex 1's 67 ms total travel ✓.
That completes the full drill: every cell of the scenario matrix (A1 through G1) now has a worked example. You have seen the four knobs pushed to their extremes — tiny (Ex 2) and normal (Ex 1) time-to-distance, the bias in metres (Ex 3) and its zero case (Ex 4), good (Ex 5) and degenerate (Ex 6) geometry, the signed relativity drift (Ex 7), a real-world multi-constellation word problem (Ex 8), and the horizon limiting-value twist (Ex 9). Nothing on an exam should now be a genuinely new shape of problem.
Recall Self-test (click to reveal)
A signal takes 80 ms to arrive. Pseudorange in km? ::: c ⋅ 0.080 = 2.4 × 1 0 7 m = 24 , 000 km.
A clock bias of 2 μs injects how many metres? ::: c ⋅ 2 × 1 0 − 6 = 600 m.
Two satellites at exactly the same line-of-sight direction — what is the DOP? ::: Infinite: H T H is singular, no unique fix.
With a perfectly synchronized receiver clock, how many satellites for 3D? ::: Three — the bias unknown is gone.
Net relativistic satellite clock drift per day, and its sign? ::: About + 38 μ s (runs fast).
Mnemonic The four knobs of every GNSS problem
T-B-G-R: T ime→distance (×c), B ias (the hidden 4th unknown, ×c), G eometry (DOP, spread not count), R elativity (+38 μs/day). Every exam question turns one of these four knobs.