Implement Galileo E1B I/NAV navigation decoding
This commit is contained in:
@@ -37,6 +37,8 @@ complex IQ; both acquisition and tracking pass on its IQ8 output. See the
|
||||
noise, and interference are future channel-model plug-ins.
|
||||
- Combined E1B/E1C tracking is represented by separate manager channels; a
|
||||
weighted combining policy is intentionally not assumed.
|
||||
- E1B I/NAV word types 1–6 are decoded from tracked RF prompts. Almanac parsing,
|
||||
OSNMA authentication, and PVT are deliberately not implemented yet.
|
||||
|
||||
## Install and test
|
||||
|
||||
@@ -63,6 +65,10 @@ python -m galileo_rx.cli track --config configs/tracking_example.yaml --input sa
|
||||
python -m galileo_rx.cli run --config configs/acquisition_example.yaml --input samples.bin
|
||||
python -m galileo_rx.cli compare-fixed --config configs/acquisition_example.yaml --input samples.bin
|
||||
python -m galileo_rx.cli validate-signalsim --signalsim-path signalsim/SignalSim --config configs/signalsim_validation.yaml --output-dir reports/signalsim_validation
|
||||
python -m galileo_rx.cli collect-navigation --config configs/navigation_collection.yaml --output-dir reports/navigation_run
|
||||
python -m galileo_rx.cli prompts-to-symbols --input verification/navigation/signalsim_navigation_multisat/prn_01/prompt_epochs.npz --prn 1 --output-dir reports/navigation_replay/prn_01
|
||||
python -m galileo_rx.cli decode-inav --input verification/navigation/signalsim_navigation_multisat/prn_01/prompt_epochs.npz --prn 1 --output-dir reports/navigation_replay/prn_01
|
||||
python -m galileo_rx.cli inspect-navigation --input verification/navigation/signalsim_navigation_multisat/prn_01
|
||||
```
|
||||
|
||||
The CLI uses synthetic codes by design. Replace the provider with
|
||||
@@ -113,6 +119,28 @@ module-level contract is duplicated close to the code in
|
||||
Exact phase-gate test and example commands are recorded in
|
||||
[development_phases.md](docs/development_phases.md).
|
||||
|
||||
## E1B navigation decoding
|
||||
|
||||
The I/NAV pipeline preserves 4 ms Prompt I/Q epochs and their sample timestamps,
|
||||
recovers confidence-bearing symbols, resolves page polarity explicitly, applies
|
||||
the official 30×8 deinterleaver and soft Viterbi decoder, validates CRC-24Q, and
|
||||
parses typed word 1–6 data. Ephemerides are committed atomically only when words
|
||||
1–4 have matching IODnav; the previous valid set survives incomplete updates.
|
||||
|
||||
The measured 32.2 s SignalSim regression decoded 70/70 CRC-valid pages. Four of
|
||||
five tracked satellites produced complete ephemerides, clocks, healthy status,
|
||||
and GST; PRN 19 correctly remained incomplete because word 1 was outside the
|
||||
observation. Post-decode comparison against SignalSim's RINEX source passed at
|
||||
the broadcast quantization resolution. No simulator truth is accepted by the
|
||||
normal decoder API.
|
||||
|
||||
See [ICD mapping](docs/inav_icd_mapping.md), the
|
||||
[hardware/software partition](docs/navigation_hardware_software_partition.md),
|
||||
the [collection report](reports/navigation_run/inav_collection_report.md), and
|
||||
the [readiness gate](reports/navigation_readiness_review.md). Saved artifacts
|
||||
under `verification/navigation/` can replay navigation decoding without RF
|
||||
acquisition or tracking.
|
||||
|
||||
## Phase completion record
|
||||
|
||||
1. Profiles, typed configuration, code providers, BOC, generator, and I/O.
|
||||
|
||||
Reference in New Issue
Block a user