JuliaGNSS/Tracking.jl: v7.0.0
Zenodo (CERN European Organization for Nuclear Research)
Abstract
7.0.0 (2026-08-18) feat(cn0)!: make NoiseRefCN0Estimator the default (7d331d8), closes #217 feat(cn0)!: measure the noise floor per band and add NoiseRefCN0Estimator (decd94d), closes #217 Bug Fixes bench: drop the removed tracked-PRN argument from NoiseUpdateContext (cbb501e) cn0: keep a NaN out of the measured noise reference's C/N₀ (62af0e3) cn0: name a missing integration time instead of throwing a MethodError (7d18c8f) dc: do not resolve the noise pass for a band the call brought no samples for (2b8583a) noise: stop dropping an observation whose number type is not Float64 (5ab085c) Features cn0: measure the band noise from samples in CorrelatorNoiseEstimator (bb3c088) Performance Improvements cn0: build the per-record CN0UpdateContext positionally (b870e78) cn0: make the noise window's read and append O(1) (72b3031) cn0: run the noise despread inside the per-satellite parallel loop (8f90139) dc: hand the parallel loop one box of noise descriptors, not copies (5453a51) dc: return the bit-wise kernels' tap sums as an SVector (c06ecb6) Tests cn0: pin the ingest path's C/N₀ under the default estimator (9106d27) BREAKING CHANGES cn0: actually alters on that path was invisible to CI: with the default estimator now noise-referenced, a producer that appends correlator outputs and nothing else gets every C/N₀ update skipped and reports -Inf dB-Hz forever. Nothing on that path can tell you so — nothing throws, nothing returns an error, and the one warning is maxlog = 1 — which is exactly why it belongs in an assertion rather than only in a docstring. Two states, differing only in whether the producer feeds the second half of the contract: the starved one is pinned at -Inf dB-Hz with an empty ring, and the fed one is pinned at the exact figure its prompt power and density imply. The pair also makes a future move of default_cn0_estimator show up here as a behaviour change instead of as silence. The existing testsets already used explicit NoiseRefCN0Estimator() instances, so they would have passed unchanged had the default been reverted. Co-Authored-By: Claude Opus 5 noreply@anthropic.com default_cn0_estimator now returns a NoiseRefCN0Estimator, so every TrackedSignal built without an explicit cn0_estimator changes estimator, and its band is provisioned a CorrelatorNoiseEstimator that track! fills from the samples. Sample-driven callers need no change and get a better estimate. Callers that feed externally supplied correlator outputs and cannot supply a noise observation must now pass cn0_estimator = NWPRCN0Estimator(signal) explicitly, or their C/N₀ will read -Inf dB-Hz (with a warning naming the fix) — see default_cn0_estimator. An unmeasured estimator now reports -Inf dB-Hz rather than 0.0 dB-Hz, matching the house convention that a missing estimate is never a finite number a lock detector might clear. Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com TrackState gains a third field, noise_estimators, and a third type parameter. Code that constructs it positionally (TrackState(groups, doppler_estimator)) or that spells the type with two parameters (TrackState{G,DE}) must be updated; every keyword constructor gained a noise_estimators = nothing keyword that derives it, so the usual construction paths are unaffected. CN0UpdateContext gains two fields, noise_density and integration_time, and two type parameters. A custom AbstractCN0Estimator dispatching on CN0UpdateContext{S,B} must be respelled. The five-field positional constructor and the convenience constructor both keep their current call shape by defaulting the new fields, so an estimator that ignores them needs no change. Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com
Authors 10
-
Soeren Schoenbrod Aachen
Affiliation as printed
RWTH Aachen University
-
Affiliation as printed
@semantic-release
-
Can Özmaden Aachen
Affiliation as printed
RWTH Aachen University
-
Affiliation as printed
@JuliaComputing
-
Affiliation as printed
@JuliaComputing
Cited by 0 stored of 0
No patents citing this paper on Lens.org (checked 2026-10-06).