Pose, paths, and one shared clock

Rotate the receiver candidate, inspect the equations, and solve the position and clock block.

Estimated UE position · mLoading…
Estimated clock · ns—
Coarse residual RMS · m—
Linear rank / unknowns—

Physical scene and conditional estimate

■ BS● Single bounce● UE estimate○ UE truth┄ Double bounce

Drag to orbit · scroll to zoom. Dashed arrival rays use the candidate orientation. Scene truth supplies observations and error checks only.

Loading the local numerical model…

What the numerical solve does

A shared offset in every path

For path i, the measured pseudorange is ρᵢ = cτᵢ = Lᵢ + B, where B = cb. One nanosecond adds 0.299792458 metres to every pseudorange. Changing the scene clock regenerates the measurements. The estimator receives those measurements, not the clock setting.

Paper Eqs. (2)–(3)

The paper's clock sign

The paper stacks [Mᵢ, −(vᵢ−uᵢ)] [t; −cb]. This lab uses the equivalent positive-clock convention [Mᵢ, vᵢ−uᵢ] [t; B]. Both equal ρᵢ(vᵢ−uᵢ). The SVD returns all four unknowns jointly.

Paper Eqs. (14)–(18), (23)–(24)

Orientation stays nonlinear

Rotating the receiver changes vᵢ and Mᵢ. The scan recomputes the linear solution at each yaw. The local refinement applies the left SO(3) update from Eqs. (25)–(27). This lab's yaw scan is a slice through orientation space. The paper also uses twist–swing initialization.

Paper Eqs. (19), (25)–(30)

Scope of this experiment

This is an independent teaching implementation of the coarse equations. It starts from extracted angle-delay observations. The browser lab does not run the paper's exhaustive subset selection, final physical IRLS, or QAIC model comparison. Those stages are explained in the presentation. The double-bounce path deliberately violates the single-bounce model.

Presentation and complete method

Measured snapshot and synthetic reference