Skip to content

Per-SVC-layer spatial UEP: the third protection axis (#136)#146

Merged
josephnef merged 1 commit into
masterfrom
svc-spatial-uep
Jul 2, 2026
Merged

Per-SVC-layer spatial UEP: the third protection axis (#136)#146
josephnef merged 1 commit into
masterfrom
svc-spatial-uep

Conversation

@josephnef

Copy link
Copy Markdown
Collaborator

Summary

The third UEP axis — per-layer spatial diversity (#136). Unequal error
protection already runs on MCS (svc_tx.h ladder) and FEC rate
(svc_uep_fec.py). The spatial axis is also already in the ladder — its default
flies the critical/base layers with LDPC/STBC and leaves enhancement
single-stream — but it was a flag, not a measured axis, until #132 quantified the
STBC gain (~2–3 dB coding + diversity that widens under motion). This adds the sim
showing the three knobs compound.

Model

Analytical (no codec dependency): each layer's per-frame PHY delivery is a soft
FER transition around its MCS threshold, shifted down by the STBC coding gain when
enabled; the layer's RS block survives if per-symbol losses stay within its repair
budget (binomial). Sweeping link SNR down produces the per-layer staircase.

Result

Default ladder (critical MCS0/STBC ov1.0, T0 MCS1/STBC ov0.75, T1 MCS4 ov0.5,
T2 MCS7 ov0.25) survival SNR:

Layer survival SNR spatial (STBC) contribution
critical 3.1 dB STBC extends by 2.5 dB
T0-base 5.4 dB STBC extends by 2.5 dB
T1 16.3 dB
T2 27.1 dB

Enhancement (T2/T1) sheds first; base/critical hold deepest; the spatial knob
buys the critical/base layers ~2.5 dB more survival on top of MCS and FEC.

Contents

  • tools/precoder/svc_spatial_uep_sim.py (+ pytest): staircase sweep, --no-stbc
    A/B, --self-test.
  • docs/fused-fec.md: "The third axis: per-layer spatial diversity".

Testing

--self-test green; 6 pytest pass. Pure-Python, consistent with the sibling sims.

🤖 Generated with Claude Code

UEP already runs on MCS (svc_tx.h ladder) and FEC rate (svc_uep_fec.py). The
spatial axis is also already in the ladder — its default flies critical/base with
LDPC+STBC and leaves enhancement single-stream — but was never quantified as an
axis until #132 measured the STBC gain (~2-3 dB coding + diversity). This adds the
sim that shows the three knobs compound.

- tools/precoder/svc_spatial_uep_sim.py (+ pytest): analytical per-layer delivery
  (soft FER around the MCS threshold, STBC shifting it down by the measured coding
  gain, RS repair budget via binomial), an SNR-sweep staircase, and --no-stbc for
  an A/B of the spatial axis.
- docs/fused-fec.md: "The third axis: per-layer spatial diversity".

Result: the staircase holds on three knobs — enhancement (T2/T1) sheds first,
base/critical hold deepest, and the spatial knob extends critical/base survival
SNR by the STBC coding gain (~2.5 dB) on top of MCS and FEC.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@josephnef josephnef added enhancement New feature or request spatial-diversity Spatial-diversity axis: exploiting idle RF chains for the single-stream link labels Jul 2, 2026
@josephnef josephnef merged commit 817e617 into master Jul 2, 2026
13 checks passed
@josephnef josephnef deleted the svc-spatial-uep branch July 2, 2026 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request spatial-diversity Spatial-diversity axis: exploiting idle RF chains for the single-stream link

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant