Teaching tool: place 2–8 base stations and a transmitter on a Cartesian grid, then compare absolute range circles, TDOA hyperbolas, AOA bearing rays, and fused position estimates.
Choose a preset to load a reproducible teaching case. Loading is undoable.
Placement buttons select a persistent mode. In BTS mode, every empty click adds another station. Switch to target mode to place or move the transmitter. Use Navigate map to pan/zoom without placing points.
Noise sliders scale with the grid width.
Undo/redo records scene edits. Locked BTS cannot be dragged but remain active in the solver.
The same Cartesian simulation is projected onto OpenStreetMap using a spherical azimuthal-equidistant map centered on the selected origin. X is east, Y is north, and all solver calculations remain in meters rather than map pixels.
| Method | X m | Y m | Error m | MSE m² | RMSE m | Conf. major m | Conf. minor m | Angle ° |
|---|
| BTS | True m | Measured m | Error m |
|---|
| Pair | Δrange m | Δtime µs |
|---|
| BTS | True ° | Measured ° | Error ° |
|---|
| ID | X m | Y m | Locked | Copy | Delete |
|---|
Visible TDOA pair colors
Blue circles use the measured absolute range shown below. With circle noise set to 0 m, every circle passes exactly through the red transmitter. TDOA uses the pair-colored hyperbolas listed above.
A radio signal travels approximately at the speed of light, c = 299,792,458 m/s. If transmitter and BTS clocks were perfectly synchronized, one arrival time would imply an absolute range:
The unknown transmit time t₀ makes absolute ranging difficult. TDOA removes it by subtracting two arrival times.
For the blue-circle exercise, this simulator assumes each BTS does know an absolute measured range:
When circle range noise is zero, εᵢ = 0, so the transmitter lies exactly on every circle. With noise, the circles generally no longer meet at one point.
Choose one BTS as reference r. For every other BTS i, measure:
All points p = (x,y) with the same distance difference form a hyperbola. The two BTS are its foci. Each colored curve on the grid is one such constraint.
With N BTS and one reference, there are N−1 TDOA equations.
Nearly collinear BTS or a transmitter far outside the BTS perimeter can still produce a weak or ambiguous geometry.
Displaying every BTS pair produces N(N−1)/2 hyperbolas. These pair equations are useful visually but are algebraically redundant; the TDOA solver uses the independent reference-BTS set.
For a candidate point p, the simulator computes one residual per non-reference BTS:
This transparent search is useful for teaching. Production systems often use Gauss–Newton, Levenberg–Marquardt, closed-form initialization, robust weighting, and clock/calibration models.
The result table reports MSE = J(p̂) and RMSE = √MSE separately for TDOA, AOA, and hybrid solutions.
At light speed, 1 ns ≈ 0.30 m, 10 ns ≈ 3.0 m, and 100 ns ≈ 30 m of equivalent range-difference noise before geometry amplification.
Real systems also face multipath, NLOS bias, BTS timing offsets, antenna delays, bandwidth limits, sampling error, and uncertain BTS coordinates. These errors are not all zero-mean Gaussian noise.
AOA estimates the direction from each BTS toward the transmitter. This page uses Cartesian angles: 0° is +X and 90° is +Y.
A measured bearing defines a ray from BTS i. For direction dᵢ = (cos θᵢ, sin θᵢ), a perpendicular unit normal is nᵢ = (−sin θᵢ, cos θᵢ).
The AOA solver minimizes squared distance to each directional bearing ray. A candidate behind a BTS is measured to the ray origin rather than its backward line extension. Two non-parallel bearings are the 2D minimum; three or more improve robustness.
Each method gets a local 2×2 covariance approximation around its estimate. TDOA uses the range-difference Jacobian and the configured timing noise. AOA converts angular noise to cross-track uncertainty using BTS-to-estimate distance. Hybrid adds the two information matrices.
The major axis a shows the weak-error direction; the minor axis b shows the stronger direction. A long narrow ellipse reveals geometry weakness that an average confidence circle hides.
The background evaluates the local covariance at many candidate points without using the known transmitter position or the current random noise realization. TDOA uses a nominal 1 m range-difference standard deviation; AOA uses a nominal 1° bearing standard deviation; hybrid combines both information matrices.
The value q(p) is the average one-axis standard deviation predicted by the local geometry model. Blue and green mean lower geometry amplification; yellow and red mean higher expected error. Transparent cells are singular or insufficient.
The optional contour layer evaluates the selected estimator's objective J(p) throughout the visible grid. Each contour joins candidate positions with equal mean squared residual.
Levels are logarithmically spaced from low to high MSE so the shape near a minimum remains visible while also showing the wider landscape. A tight isolated basin indicates a well-defined solution. A long valley indicates weak geometry. Two separate basins can reveal global ambiguity even when the local covariance at either basin is finite.
The OSM panel does not change the solver. It uses a spherical azimuthal-equidistant projection centered on the selected map origin (φ₀, λ₀). For local point (x,y):
Here R = 6,371,008.8 m, X points east, and Y points north. This projection preserves distance and direction from the map origin. Its inverse converts a map click back into local X/Y before measurement generation and position estimation.