016c (1/2): Galileo E5a/E5b primary codes + QPSK(10) I/Q generator (ICD-validated 200/200) #22
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/016c-galileo"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
First increment of backlog step 016c (Galileo E1/E5 + GLONASS CDMA).
Data provenance - Galileo OS SIS ICD v2.1 (Nov 2023) fetched from GSC
(5.4 MB, 128 pages). The E5 primary codes are fully specified there:
E5a-I/E5a-Q: R1=40503 R2=50661; E5b-I: R1=64021 R2=51445;
E5b-Q: R1=64021 R2=43143; R1 start = all ones; code = R1 XOR R2,
truncated to 10230 chips (10.23 Mcps, 1 ms period)
(hex) per PRN, 50 PRNs per component, extracted per row and VALIDATED
against the initial-sequence columns: 200/200 reproduce
3CEA9D) and confirmed on all 200 rows: content shifts toward higher j,
output at c[14], feedback (XOR of tapped cells) enters at c[1], start
value loaded MSB-first into c[1..R] (documented in codes.py)
Implementation
_gal_e5_register, galileo_e5_code(prn, component) - bipolar output
Q = E5x-Q pilot) via a plain-qpsk data mode; secondary codes deferred
Deferred (documented):
codes provided ONLY in the electronic Annex C - not in the PDF
as infeasible unless a public source surfaces
Tests (7): ICD PRN-1 example, all 200 baked rows re-validated
in-process, component distinctness, period/alphabet, unknown-PRN/component
errors, E5a I recovery, E5b Q recovery.
Local verification: pytest 169 passed + 1 gui skip, ruff clean (Python 3.14).
Note (process): NOT to be merged by automation - awaiting manual review/merge.