Skip to content

Commit 7b809d5

Browse files
secupclaude
andcommitted
docs(papr): ACE rig A/B result — safe (guaranteed non-negative) but +8% inside epoch noise; PAPR arc closed, SNR-gated clip filed as the big-gain lever (§11)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019btwFxDt7D19SZSqPYvZnk
1 parent 833185e commit 7b809d5

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

docs/CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,33 @@ Verified: ctest 85/85; good@20 PASS 1600 bps.
8484

8585
---
8686

87+
## 2026-07-13 — feat(papr): ACE built + rig A/B — proven SAFE (guaranteed non-negative), gain ~0.8 dB below the 3-pair noise floor; stays default-off
88+
89+
ACE (src/ofdm/papr_ace.hpp, ULTRA_ACE_PAPR, default off) extends outer
90+
constellation points OUTWARD to shave peaks. Unit-proven (test_papr_ace):
91+
0.7-0.9 dB PAPR reduction, and the two invariants that make it SAFE — every
92+
point moves only outward (never toward a decision boundary), pilots/empty bins
93+
untouched. This is a GUARANTEE, not a measurement: ACE mathematically cannot
94+
increase BER, so the crude clip's −58% clean-channel crater is IMPOSSIBLE for
95+
ACE by construction.
96+
97+
Rig A/B (F273-F278, interleaved 16QAM natural MPG@30): pairs +1.20/+0.34/−0.65
98+
kbps, mean ACE 2.97 vs OFF 2.74 (+8%) — INSIDE the ±25% fade-epoch noise, so
99+
inconclusive (as predicted: 0.8 dB is too small to resolve in 3 pairs). The
100+
−0.65 pair is 100% epoch (F278 hit 441 channel CW-fails; ACE cannot cause
101+
them). Stays default-off — won't flip a default on an unresolved small gain —
102+
but it is a ZERO-RISK option (worst case neutral), unlike the clip (footgun).
103+
104+
PAPR arc CLOSED: tone reservation doesn't fit our packed spectrum (frame
105+
redesign); crude clip = big gain but channel-state-dependent harmful (net −12%,
106+
default-off); ACE = safe but small. No free lunch. NEXT (filed §10/§11): the
107+
best NET is likely ACE-always-on (free safety) + SNR-gated clip for the
108+
marginal case (rig-measured +39% where starved) — needs the peer-margin
109+
plumbing (RX usable-SNR → TX). A many-pair ACE campaign could still justify
110+
default-on if the +8% holds.
111+
112+
---
113+
87114
## 2026-07-13 — experiment(papr): rig A/B of ULTRA_COHERENT_PAPR_DB — crude clip is CHANNEL-STATE-DEPENDENT harmful (net −12%); stays default-off, tone-reservation is the real fix
88115

89116
The 2026-07-02 PAPR disable was a SIM verdict that structurally cannot show the

docs/SNR_CALIBRATION_HANDOFF_2026_07_08.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,22 @@ bound). Cheaper interim: SNR-gate the existing crude clip (enable only when the
274274
RX-reported usable SNR is within ~2 dB of the active constellation's floor —
275275
exactly the marginal state where it helped). Evidence: CHANGELOG 2026-07-13.
276276

277+
## §11 (2026-07-13): PAPR endgame — ACE (safe, small) + SNR-gated clip (big, marginal-only)
278+
279+
Built + rig-tested (CHANGELOG 2026-07-13). ACE is default-off, proven-safe,
280+
~0.8 dB (below the 3-pair noise floor). The remaining levers:
281+
1. Longer ACE campaign (10+ pairs) to resolve the +8% — if real, ACE default-on
282+
is FREE (guaranteed non-negative).
283+
2. SNR-gated crude clip: the clip's rig-measured +39%-when-marginal is the big
284+
number; gate it to fire ONLY when the RX-reported usable SNR is within ~2 dB
285+
of the active constellation floor (the marginal state where it helped),
286+
off otherwise (avoids the −58% clean crater). Needs peer-margin plumbing:
287+
the receiver knows its usable SNR (already commands the rung via authority);
288+
add a PAPR-request bit to the ACK, or have the connection set
289+
modem_.setPaprReductionEnabled dynamically from the peer's reported SNR.
290+
3. ACE tuning: lower clip_ratio / more iters for QPSK/8PSK (all points
291+
extendable → more room than QAM) — could push the lower rungs' gain higher.
292+
277293
## §9 (external review 2026-07-10): TNC SNR reporting semantics — FILED
278294

279295
The TNC's polled SNR reads ProtocolEngine::getMeasuredSNR (Connection default

0 commit comments

Comments
 (0)