Skip to content

Active-chain-count energy lever sim (#135)#145

Merged
josephnef merged 1 commit into
masterfrom
chain-count-energy
Jul 2, 2026
Merged

Active-chain-count energy lever sim (#135)#145
josephnef merged 1 commit into
masterfrom
chain-count-energy

Conversation

@josephnef

Copy link
Copy Markdown
Collaborator

Summary

The active-chain-count energy lever (#135) — the energy corollary of the measured
RX-MRC finding. A multi-chain receiver can light up 1..N chains; each adds
always-on baseline draw, but combining improves delivery, so for a fixed video
rate the baseline amortises over more delivered bits. Whether the trade pays
depends on the antenna correlation ρ (fade state), so the energy-optimal chain
count adapts to motion, not just range.

Model

Reuses the calibrated power/airtime model (energy_model.py) and adds:

  • a per-chain baseline term, and
  • a diversity-improved delivery: single-chain outage (1-d1) drops to
    (1-d1)^N_eff, with N_eff = N/(1+(N-1)ρ²) (same metric as the measurement
    doc and the space×frequency sim).

Energy per delivered bit = (P_core + N·P_chain + airtime·P_pa) / (rate · deliver_N).

Result (ρ sweep)

  • Static (high ρ): diversity ≈ nil → extra chains are pure baseline cost →
    optimal N = 1.
  • Mobile (low ρ): diversity fills the fades → added chains cheapen delivery by
    more than they cost → optimal N grows, reaching all 4 chains at a deep
    marginal link (and shifting up further with cheaper chains).

Contents

  • tools/precoder/chain_count_energy_sim.py — sim, --sweep/default ρ table,
    --self-test.
  • tools/precoder/test_chain_count_energy_sim.py — pytest (N_eff, delivery,
    static→single, mobile→more, marginal→more, cheaper→more).
  • docs/adaptive-link.md — "active receive chains" as a fade-state lever.

Testing

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

🤖 Generated with Claude Code

Models the number of active RX chains as an energy lever: each chain adds
always-on baseline draw, but combining several improves delivery — so for a fixed
video rate the baseline amortises over more delivered bits and less airtime is
spent covering losses. Whether the trade pays depends on the antenna correlation
rho (fade state), so the energy-optimal chain count adapts to motion, not range.

- tools/precoder/chain_count_energy_sim.py (+ pytest): reuses the calibrated
  power/airtime model (energy_model.py), adds a per-chain baseline and a
  diversity-improved delivery (outage^N_eff). --self-test and a rho sweep.
- docs/adaptive-link.md: "active receive chains" as a fade-state lever.

Result: static (high rho) -> optimal N=1 (extra chains pure baseline cost);
mobile (low rho) -> optimal N grows, reaching all 4 chains at a deep marginal
link. The energy corollary of the measured RX-MRC finding (nil static, pays under
motion).

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 5c1ea11 into master Jul 2, 2026
13 checks passed
@josephnef josephnef deleted the chain-count-energy branch July 2, 2026 12:45
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