Satellite orbits, receiver hardware, signal tracking, range errors, DOP, and the navigation processor.
Before computing a position fix, the navigation processor must know where each satellite is. The satellite position is computed from ephemeris parameters broadcast in the navigation message — a set of 16 quasi-Keplerian orbital parameters.
A satellite orbit is an ellipse with the Earth at one focus. The key parameters:
| Parameter | Describes |
|---|---|
| Semi-major axis (a) | Size of the orbit |
| Eccentricity (eo) | Shape (0 = circle, >0 = ellipse) |
| Inclination (i) | Tilt of orbital plane to equator |
| Right ascension (Ω) | Longitude where orbit crosses equator northbound |
| Argument of perigee (ω) | Orientation of ellipse within the plane |
| Mean anomaly (M0) | Satellite position at reference time |
Nine additional parameters correct for Earth's non-uniform gravity, solar radiation, and other perturbations. The range from user to satellite and the line-of-sight vector are computed from the position difference.
Even with identical range measurement quality, the geometry of the visible satellites dramatically affects position accuracy. This effect is quantified by the dilution of precision (DOP).
Imagine two satellites close together in the sky: their range circles nearly overlap, so the intersection region is long and thin — poor geometry. Satellites spread across the sky give a tight, well-defined intersection — good geometry.
DOP is computed from the geometry matrix H (line-of-sight unit vectors plus clock column). Lower DOP = better geometry.
| DOP Type | Measures | Typical Value |
|---|---|---|
| GDOP | Overall (position + time) | 2–6 |
| PDOP | 3D position only | 1.5–4 |
| HDOP | Horizontal position | 1–2 |
| VDOP | Vertical position | 1.5–4 |
| TDOP | Time (clock) | 1–3 |
GNSS receiver hardware forms the signal processing chain from antenna to digital baseband:
| Component | Function |
|---|---|
| Antenna | Converts RF signals to electrical. RHCP (right-hand circular polarization). Gain pattern matters for multipath rejection. |
| Reference oscillator | Provides the receiver's time reference. Crystal (cheap, drifty) or atomic (expensive, stable). The clock offset is solved as a navigation unknown. |
| Front-end | Amplifies (LNA), filters (bandpass), downconverts to intermediate frequency, and digitizes (ADC) the signal. |
| Baseband processor | Correlates the digitized signal with local replicas of the PRN code and carrier. This is where acquisition and tracking happen. |
The correlator is the heart of the receiver. It multiplies the incoming signal by a locally generated replica code at different phase offsets. When the phases match, correlation is maximized and the signal emerges from the noise.
Before tracking a satellite, the receiver must acquire its signal — find the correct PRN code phase and carrier Doppler frequency.
This is a 2D search problem:
| Dimension | Search Space | Resolution |
|---|---|---|
| Code phase | Full code length (e.g., 1023 chips for GPS C/A) | ½ chip steps |
| Doppler frequency | ±5 kHz (satellite motion + receiver motion) | ~500 Hz steps |
For each candidate (code phase, Doppler), the receiver correlates for a period (typically 1 ms for GPS C/A code). If the correlation exceeds a threshold, the signal is detected. The receiver then refines the estimates and transitions to tracking mode.
Cold start (no prior information): must search all satellites, all code phases, all Doppler bins. Takes 30–60 seconds.
Warm/hot start (approximate position and time known): search space is greatly reduced. Can acquire in seconds.
Assisted GNSS (A-GNSS): A server provides ephemeris and approximate position via a cellular network, enabling fast acquisition in weak-signal environments like indoors.
Once acquired, the receiver must continuously track the signal — maintaining lock on the code phase and carrier phase/frequency as they change.
Code tracking uses a delay lock loop (DLL). Three correlators (early, prompt, late) straddle the correlation peak. The difference between early and late power steers the code phase to stay centered.
Carrier tracking uses a phase lock loop (PLL) or frequency lock loop (FLL). PLL tracks the carrier phase (most accurate but sensitive to dynamics). FLL tracks frequency (more robust to dynamics, less accurate). Carrier tracking gives very precise range-rate measurements.
Carrier-phase measurements: Tracking the carrier phase gives pseudo-range measurements with millimeter-level noise (vs. meter-level for code). But there is an unknown integer number of carrier wavelengths in the range — the integer ambiguity — which must be resolved for absolute positioning.
The pseudo-range measurement is corrupted by multiple error sources:
| Error Source | Typical Magnitude | Mitigation |
|---|---|---|
| Satellite clock & ephemeris | 1–3 m | Control segment corrections, differential GNSS |
| Ionosphere delay | 2–30 m | Dual-frequency measurements, models (Klobuchar) |
| Troposphere delay | 2–10 m | Atmospheric models (Saastamoinen, Hopfield) |
| Tracking noise | 0.1–1 m (code) | Narrow correlator, longer integration |
| Multipath | 0.5–100+ m | Antenna design, receiver techniques, mapping |
Ionosphere: Free electrons in the ionosphere (60–1,000 km altitude) slow the signal's code but advance its carrier phase. The delay depends on total electron content (TEC) and is proportional to 1/f², so dual-frequency receivers can measure and remove it.
Troposphere: The neutral atmosphere (0–50 km) delays the signal independently of frequency. Cannot be removed by dual-frequency, only modeled. Worse at low elevation angles.
Multipath: Signals reflected off buildings, terrain, or the vehicle arrive later than the direct signal, distorting the correlation peak and biasing the range measurement. This is the hardest error to mitigate and often the dominant residual error in urban environments.
The navigation processor takes the corrected pseudo-ranges and computes the user's position, velocity, and time (PVT).
Single-point solution: With 4+ satellites, solve the nonlinear system of pseudo-range equations. Linearize around an approximate position and iterate using least squares:
where H is the geometry matrix (line-of-sight unit vectors + clock column), δz is the measurement residual vector, and δx is the correction to [position, clock offset].
Weighted least squares: If measurement quality varies (different elevations, different SNR), weight by inverse variance: δx = (HTWH)−1 HTW δz.
Filtered solution: A Kalman filter tracks the position, velocity, and clock states across time, using a dynamic model for prediction. This smooths out noise and can coast through brief signal outages.
Velocity: Computed from pseudo-range-rate (Doppler) measurements using the same geometry matrix structure but with range-rate equations.
Drag the satellites to see how geometry affects position accuracy. Spread satellites apart for low DOP (good); cluster them for high DOP (bad).