017: SigV3.1 output format ('sig' file, gensig-compatible) #18
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/017-sig-output"
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?
Implements backlog step 017 (docs/backlog/017-sig-output.md). Stacked on merged 009/010.
src/gengnss/core/sig_writer.py(self-contained - no gensig dependency)write_sig_header(params, num_samples): the 1024-byte SigV3.1 header perdoc/sigv3.md (field grid mirrors gensig's sig_io.py); sets Signature 'SIG 3.1',
EchantillonsVirguleFixe=1, Complexe=1, Fe/FrequenceHF/BandeFI; everything else zeroed
sig_quantize/sig_interleave: the reference mappingclip(round(c * 2**15), -32768, 32767) (asymmetric: -1 -> -32768, +1 -> 32767),
little-endian pinned
src/gengnss/core/writer.pyScenario.fmtgains 'sig':SigFileWritersink (header first, per-block fixedquantization); the two-pass flow is unchanged, with the sig-specific difference
that the pass-1 complex peak pre-conditions the float mix to full_scale_pct of
+/-1.0 (the sig range is FIXED, unlike raw IQ's configurable int scaling)
CLI:
--format sigaccepted in run/scenario/show; sidecar unchanged.Tests (9): header layout (signature/enums/Fe/FrequenceHF/BandeFI/NombreEchan,
non-applicable fields zeroed), quantization mapping and clipping, endianness,
generate_to_file integration (header + size), determinism across block sizes,
complex-peak pre-conditioning bounds (100% and 80%), and BYTE-COMPATIBILITY with
the gensig reference writer (import test-only, skipped without the ../gensig
checkout - present here and passing).
Local verification: pytest 139 passed + 1 gui skip, ruff clean (Python 3.14).
Note (process): NOT to be merged by automation - awaiting manual review/merge.
Next: 016 Tier-2 signals (v1.1) - the last open backlog step.