Module Map¶
Use this map when a signal-layer change needs an owner. The crate exposes one curated API over private regions organized by physical signal facts, code families, sample meaning, reusable DSP, observation compatibility, and errors.
Ownership Flow¶
flowchart LR
facts["catalog and physical facts"]
codes["code families"]
samples["raw-IQ and samples"]
dsp["runtime-neutral DSP"]
validation["observation compatibility"]
api["curated public API"]
receiver["receiver and validation consumers"]
facts --> api
codes --> api
samples --> api
dsp --> api
validation --> api
api --> receiver
Find the Region¶
| responsibility | owner |
|---|---|
| signal registry, components, wavelength, shared-path scaling, and default acquisition choices | physical signal catalog |
| constellation-specific primary, secondary, and multiplexed codes | code-family boundary |
| timing, oscillators, replicas, spectra, quality, front-end, and tracking math | DSP boundary |
| raw capture format, quantization, metadata, and encoded sample conversion | raw-IQ contracts and sample conversion |
| dual-frequency and inter-frequency observation compatibility | observation validation |
| reusable signal failures | signal error taxonomy |
| supported exports and streaming interfaces | curated signal API |
Code-Family Ownership¶
| signal family | implementation |
|---|---|
| GPS L1 C/A | C/A code generation and correlation |
| GPS L2C | component composition, CL code, and CM code |
| GPS L5 | L5 primary and secondary codes |
| Galileo E1 | E1 data, pilot, BOC, and CBOC behavior |
| Galileo E5 | E5 code behavior and E5 assignments |
| BeiDou B1I and B2I | B1I codes and B2I codes |
| BeiDou D1 | D1 symbol and secondary-code timing |
| GLONASS L1 | ST code and symbol behavior |
Register-state helpers and generated Galileo lookup tables remain private implementation support. Consumers use the owning family API rather than table or register internals.
DSP Ownership¶
| mathematical role | implementation |
|---|---|
| front-end filtering and measured response | front-end response |
| local-code and sample-index timing | local-code model and sample timing |
| oscillator phase progression | numerically controlled oscillator |
| carrier, code, modulation, and acquisition replicas | replica boundary |
| front-end quality and spectra | quality metrics and spectrum analysis |
| code-phase and carrier helpers | signal processing utilities |
| loop, discriminator, lock, CN0, and uncertainty math | tracking primitives |
| adaptive loop-profile decisions | tracking adaptation |
These modules own mathematical behavior, not receiver channel lifecycle. A change that requires acquisition scheduling, lock-state transitions, or artifact persistence belongs in receiver code.
Follow a Change¶
- For a new signal, start with the catalog, then add code-family and receiver evidence.
- For phase, wrapping, or sampling changes, use the DSP guide and preserve long-duration continuity.
- For capture interpretation, use the raw-IQ guide and verify metadata and sample conversion together.
- For a new export, use the public API guide and the test guide.