feat(chirp): normalise the Double Chirp to full scale; band-filter constants 512 taps / 1.08 shape factor #39
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
ykp/gensig!39
Loading…
Reference in a new issue
No description provided.
Delete branch "double-chirp-normalize"
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?
Operator-requested follow-up: a normalisation step for the Double Chirp plus two band-filter constant changes.
1. Double Chirp normalisation (revises the ticket-41 A1 default)
generate_double_chirpnow adds a normalisation step: after summing the up + down bases at the optimal phaseθ*, the combined base's peak is scaled to full scale (1.0) before the phase-2 repeat. Each component still carries its full bandLevelgain (the ticket-41 semantics), but without the step the sum can approach 2× a single chirp's peak — the normalisation keeps the phase-2 repeat and the CFR/PAPR post-chain unclipped. Docstring and spec §5.2.1c updated to the revised semantics.2. Band-filter constants (operator request)
bandpass.MAX_TAPS: 4096 → 512bandpass.SHAPE_FACTOR: 1.1 → 1.08pipeline.pydocstring follows; thetest_pipeline.pyreference helpers consume the constants dynamically so the bitwise-pinned band-stage comparisons stay exact.Tests
test_bandpass.py: the*_FTRANSfixtures now derive frombandpass.SHAPE_FACTORinstead of a hardcoded 1.1 (future constant changes propagate); docstring/comment updates.test_double_chirp.py: the A1 no-compensation test is replaced bytest_combined_base_normalised_to_full_scale(peak == 1.0 for both the single-block and repeated outputs); the element-wise base test normalises its expected vector the same way.Gate
pytest: 1239 passed / 63 skipped (headless tier, includes the #38 stack)ruff+mypy: clean (69 files)