Skip to content

Beam-steer feasibility study for a moving broadcast source (#137)#148

Merged
josephnef merged 1 commit into
masterfrom
beamsteer-feasibility
Jul 2, 2026
Merged

Beam-steer feasibility study for a moving broadcast source (#137)#148
josephnef merged 1 commit into
masterfrom
beamsteer-feasibility

Conversation

@josephnef

Copy link
Copy Markdown
Collaborator

Summary

The last (speculative) roadmap item, #137 — a feasibility study for TX
beam-steering a moving broadcast source, grounded in a small sim rather than
hand-waving.

The question

Coherent N-element beamforming buys up to 10·log10(N) dB directive gain (and its
EIRP-per-PA-watt scales with N — the #135 energy lever at its strongest). But it
must point, and a broadcast FPV downlink has no per-packet CSI — only a slow,
coarse direction from the return channel, on a moving platform. Does the
realised gain, after the pointing error a moving source suffers, beat the
feedback-free diversity (STBC/MRC) we already measured — which needs no pointing?

Model & result

Array-factor roll-off vs pointing error, and a pointing-error budget
= rate × update-latency + CSI resolution, compared to the measured STBC gain
(2.5 dB).

  • N=4 needs pointing within ~12° to beat STBC.
  • Moving drone (90°/s, 0.2 s return-channel latency, 10° CSI resolution):
    pointing error 28° → beam lands in a null, -17 dB — far worse than a
    single antenna.
  • Slow / known geometry (5°/s, 50 ms, 3°): ~5.8 dB, clears STBC.

Verdict

No-go for a moving broadcast source — the pointing budget blows long before
the beam pays, so feedback-free diversity (STBC/MRC, measured to work) wins.
Beam-steering is only viable for a slow or known-geometry case (fixed relay,
stabilised gimbal). This closes #137 as assessed.

Idealisation caveat: an ideal λ/2 ULA — an upper bound, since real adapter
antennas aren't a calibrated phased array.

Contents

  • tools/precoder/beamsteer_feasibility_sim.py (+ pytest): --sweep, --self-test.

--self-test green; 5 pytest pass. This completes the spatial-diversity
roadmap (#127): #128#136 landed, #137 assessed no-go.

🤖 Generated with Claude Code

…lative)

Quantifies the go/no-go: an N-element array buys up to 10log10(N) dB directive
gain, but it must point, and a broadcast FPV downlink has no per-packet CSI —
only a slow, coarse return-channel direction, on a moving platform. The sim
models the array-factor roll-off vs pointing error and a pointing-error budget
(rate x update-latency + CSI resolution), and compares the realised beam gain
against the measured feedback-free STBC gain (2.5 dB, no pointing).

Verdict: for a moving drone (e.g. 90 deg/s, 0.2 s return-channel latency, 10 deg
CSI resolution) the ~28 deg pointing error lands the beam in a null (-17 dB) —
far worse than a single antenna. Beam-steering a moving broadcast source is a
no-go; feedback-free diversity (STBC/MRC, measured) wins. Only a slow /
known-geometry case (fixed relay, stabilised gimbal) clears STBC.

tools/precoder/beamsteer_feasibility_sim.py + pytest; --sweep and --self-test.

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 7cd094a into master Jul 2, 2026
13 checks passed
@josephnef josephnef deleted the beamsteer-feasibility branch July 2, 2026 13:13
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.

TX beam-steer feasibility study for a moving broadcast source (speculative)

1 participant