Add BOC-aware lock detection and E1C-aided tracking
This commit is contained in:
@@ -25,7 +25,8 @@ complex IQ; both acquisition and tracking pass on its IQ8 output. See the
|
||||
- E1 profile: 1.023 Mcps, 4092 chips, 4 ms, 1575.42 MHz.
|
||||
- BOC(1,1) is implemented; CBOC and unambiguous BOC are API extension points.
|
||||
- E1B bit-transition hypotheses and E1C secondary wipeoff/search are available
|
||||
for acquisition. E1C tracking supports known-phase wipeoff.
|
||||
for acquisition. E1C tracking jointly searches the 25-symbol phase and
|
||||
residual carrier frequency before continuous secondary-code wipeoff.
|
||||
- The code-table provider, not the DSP engine, determines whether codes are
|
||||
synthetic or official.
|
||||
- The floating-point model is executable. The fixed PCPS model is bit-true at
|
||||
@@ -35,8 +36,13 @@ complex IQ; both acquisition and tracking pass on its IQ8 output. See the
|
||||
- Channel impairments include Doppler rate, sampling-clock offset, carrier
|
||||
offset, AWGN, clipping, and quantization. Multipath, jerk, oscillator phase
|
||||
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.
|
||||
- The default navigation architecture acquires E1C, synchronizes/wipes its
|
||||
25-symbol secondary code, and drives shared carrier/code states, C/N0, and
|
||||
BOC-aware lock monitoring from E1C. A phase-coherent E1B branch supplies only
|
||||
Prompt I/Q to I/NAV decoding. E1B-only tracking remains a regression mode.
|
||||
- Code lock is derived from smoothed VE/E/P/L/VL BOC-shape powers with explicit
|
||||
metric validity, hysteresis, and side-peak/signal-loss tests; the legacy
|
||||
instantaneous Prompt/Early/Late ratio is diagnostic-only.
|
||||
- E1B I/NAV word types 1–6 are decoded from tracked RF prompts. Almanac parsing,
|
||||
OSNMA authentication, and PVT are deliberately not implemented yet.
|
||||
|
||||
@@ -66,9 +72,11 @@ python -m galileo_rx.cli run --config configs/acquisition_example.yaml --input s
|
||||
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
|
||||
python -m galileo_rx.cli collect-navigation --config configs/navigation_collection.yaml --output-dir reports/navigation_e1b --tracking-mode e1b_only
|
||||
python tools/compare_e1_tracking_modes.py --config configs/navigation_collection.yaml --output-dir reports/e1_tracking_mode_comparison
|
||||
python -m galileo_rx.cli prompts-to-symbols --input verification/navigation/signalsim_navigation_multisat_e1c_pilot_aided_e1b/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_e1c_pilot_aided_e1b/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_e1c_pilot_aided_e1b/prn_01
|
||||
```
|
||||
|
||||
The CLI uses synthetic codes by design. Replace the provider with
|
||||
@@ -103,8 +111,9 @@ not change.
|
||||
sample source -> streaming front end -> sample buffer -> PCPS acquisition
|
||||
| |
|
||||
+---- tracking manager
|
||||
+-- E1B channel
|
||||
+-- E1C channel
|
||||
+-- E1C pilot master
|
||||
+-- shared NCO phases
|
||||
+-- E1B navigation branch
|
||||
|
||||
float blocks <-> fixed block boundaries <-> cycle transactions <-> RTL
|
||||
```
|
||||
@@ -136,6 +145,8 @@ normal decoder API.
|
||||
|
||||
See [ICD mapping](docs/inav_icd_mapping.md), the
|
||||
[hardware/software partition](docs/navigation_hardware_software_partition.md),
|
||||
[BOC-aware lock design](docs/boc_aware_lock_detector.md),
|
||||
[pilot-aided tracking architecture](docs/e1_pilot_aided_tracking.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
|
||||
|
||||
Reference in New Issue
Block a user