Add optional full-band Galileo E1 CBOC support
This commit is contained in:
@@ -2,7 +2,8 @@
|
||||
|
||||
This repository is a modular Python reference model for a Galileo receiver
|
||||
baseband and a starting point for bit-true/RTL verification. It currently
|
||||
implements E1B data and E1C pilot processing with a BOC(1,1) local replica,
|
||||
implements E1B data and E1C pilot processing with selectable BOC(1,1) or
|
||||
full-band CBOC(6,1,1/11) local replicas,
|
||||
streaming real-IF or complex-IQ front ends, FFT PCPS acquisition, independent
|
||||
tracking channels, fixed-point boundary models, and hardware sizing models.
|
||||
The floating reference uses `numpy.float64`/`numpy.complex128` throughout;
|
||||
@@ -23,7 +24,9 @@ complex IQ; both acquisition and tracking pass on its IQ8 output. See the
|
||||
## Status and limitations
|
||||
|
||||
- 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.
|
||||
- BOC(1,1) remains the default regression mode. Full-band CBOC is enabled
|
||||
explicitly per acquisition/tracking configuration. Unambiguous BOC remains
|
||||
an API extension point.
|
||||
- E1B bit-transition hypotheses and E1C secondary wipeoff/search are available
|
||||
for acquisition. E1C tracking jointly searches the 25-symbol phase and
|
||||
residual carrier frequency before continuous secondary-code wipeoff.
|
||||
@@ -74,6 +77,7 @@ python -m galileo_rx.cli validate-signalsim --signalsim-path signalsim/SignalSim
|
||||
python -m galileo_rx.cli collect-navigation --config configs/navigation_collection.yaml --output-dir reports/navigation_run
|
||||
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 tools/run_cboc_validation.py --output-dir reports --duration-s 0.30
|
||||
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
|
||||
@@ -136,10 +140,9 @@ the official 30×8 deinterleaver and soft Viterbi decoder, validates CRC-24Q, an
|
||||
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 post-CBOC 32.2 s raw-IQ SignalSim regression decoded 75/75 CRC-valid pages.
|
||||
All five tracked satellites produced complete ephemerides, clocks, healthy
|
||||
status, and GST. Post-decode comparison against SignalSim's RINEX source passed at
|
||||
the broadcast quantization resolution. No simulator truth is accepted by the
|
||||
normal decoder API.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user