Skip to contentSkip to Content
ProjectsPRJ-001Methodology

Methodology

Active

Design

A simulation study on real ephemeris, paired with an analytic bound that the simulation is checked against.

The pairing is the point. HYP-001 predicts a Cramér–Rao bound, so the simulation’s job is to show the estimator attains it rather than to discover what the resolution is. HYP-002 is a linear-algebra identity, so the simulation’s job is to look for a counterexample across geometry the derivation did not see. A simulation that can only confirm is not testing anything; both are set up so they can fail.

Real Starlink elements are propagated with SGP4 rather than a synthetic constellation, because the geometry is the object of study and a synthetic constellation would beg the question.

Independent and dependent variables

RoleVariableLevels or rangeInstrument
IndependentTiming measurement precision στ\sigma_\tau1 ns, 10 ns, 100 ns, 1 μsSwept; Gaussian noise on synthesised pseudoranges
IndependentRelay size MM2, 3, 5, 8, 10, 20, 50, 100, 500Adversary model
IndependentPer-cell quota qq1, 2, 5Detector policy parameter
IndependentLegitimate terminal density1, 10, 100, 1000 per km²Uniform placement
IndependentGround site latitude1.4°N to 69.7°N, plus 33.9°SFive sites
DependentHorizontal position RMS errormetresEstimator output vs. ground truth
DependentApparent displacement under spoofingmetresEstimator output vs. true position
DependentRelay detection rate and identities caughtfractionDetector output
DependentFalse-positive ratefractionDetector output on honest population
ControlledConstellation, epoch, elevation mask, link budget, seedFixed per runArchived TLE, source constants
NuisanceTerminal clock biasFixed offset per sessionEstimated jointly, not assumed away

Estimating the clock bias rather than assuming it away is not a nuisance control but the mechanism under test: the bias column is what absorbs the spoofer’s offset.

Baseline

A comparison with no named baseline is not a comparison.

ClaimBaselineWhy it is the fair one
Estimator efficiencyThe Cramér–Rao lower bound from the Fisher information of the same observation modelThe strongest possible baseline: no unbiased estimator can beat it, so attaining it means the estimator is not the limiting factor
Satellite selectionSelecting the six highest-elevation satellitesThe intuitive choice, and the one an implementer would reach for first
Spoofing immunityZero, exactlyThe prediction is an identity, so the baseline is the identity itself; anything non-zero refutes it

There is no prior geometric method for the Sybil-bounding claim to compare against — the literature study that produced this project found none — so the detector is characterised against its own operating envelope rather than against a competitor. That is a real weakness and is stated in limitations.

Measurement and uncertainty

  • Position error is reported as RMS over Monte Carlo trials at each στ\sigma_\tau, aggregated across 96 epochs spanning a full orbital period, so the figure covers the geometry distribution rather than one favourable moment.
  • Spoofing displacement is reported as the worst case across all 384 attempts, not the mean. A mean would hide exactly the counterexample the test exists to find.
  • HDOP is reported as min, median and max across epochs rather than a single value, because its spread is the finding in the selection comparison.
  • Randomness is a hand-rolled seeded xorshift64* with Box–Muller, chosen over a crate so that a seed reproduces identical noise across machines and across dependency updates.

Analysis plan

Written before the data existed, and one part of it changed after seeing results. The change is recorded rather than quietly applied.

  1. Sweep στ\sigma_\tau; compare empirical RMS against CRLB; ratio near 1 supports HYP-001.
  2. For every epoch and aim point, apply the spoofer’s best uniform offset and record displacement; any value above floating-point noise refutes HYP-002.
  3. Sweep relay size against quota; report detection rate and fraction caught.
  4. Sweep honest density against στ\sigma_\tau; report false positives.
  5. Repeat the whole evaluation on an independently derived element set.

Recorded change. The detector originally quantised position fixes onto a fixed grid of pitch δ\delta and flagged over-occupied cells. On 200 relayed identities the modal cell held only 45 of them, because fixes scatter with standard deviation of order δ\delta and a relay at an arbitrary offset straddles cells. Detection was changed to density-based — count fixes within 2δ2\delta, then merge overlapping dense neighbourhoods — which is translation-invariant and has no boundary artefact. This was a correction to a flawed instrument, not a change made to improve a result, and it was found by a test failing rather than by inspection.

Threats to validity

ThreatTypeMitigationResidual risk
Results are an artefact of one constellation snapshotExternalEntire evaluation repeated on an independently derived element set at a later epoch, from a different orbit-determination pipelineNone material; every headline figure reproduced
Results hold only at one latitudeExternalRepeated at five sites from 1.4°N to 69.7°NNone material; HDOP varies only 1.01 to 1.10
Simulation does not model real beam hopping, scheduling or proprietary handoverExternalNot mitigatedLive. Stated in limitations; the evaluation is simulation on public ephemeris and does not claim operational validation
Noise model parameters chosen to flatter the resultConstructστ\sigma_\tau swept across three decades rather than fixed, so the result is an envelopeLow; a reader disputing a value disputes a region of a reported curve
Estimator implemented to match its own boundInternalCRLB derived from the observation model independently of the solver; the solver is generic Gauss–NewtonLow
Theorem verified only where it was derivedInternalChecked across 96 epochs of live geometry the derivation never saw, plus a separate algebraic assertion that (HH)1H1=e3(\mathbf{H}^\top\mathbf{H})^{-1}\mathbf{H}^\top\mathbf{1} = \mathbf{e}_3Low
Test suite passes vacuouslyInternalConfirmed the suite can fail by breaking the clock column and observing the Theorem 1 test go redLow
Last updated on