Pure line-of-sight is supposed to be the worst environment for MIMO. It has no scattering, so the channel matrix collapses to rank 1 and you get one stream no matter how many antennas you own. And yet the most plausible near-term home for coherent distributed MIMO is a LEO constellation — because there, and almost nowhere else, you get to choose where the antennas are.
Everything below is live. Drag the antennas, move the sliders, watch the singular values. The one equation you should leave able to re-derive is dtx·drx = λR/N.
Starlink's Ku-band user downlink has a fixed, countable number of non-colliding slots over a given patch of ground. Eight channels of 240 MHz, times two orthogonal polarisations:
One ~380 km² ground cell can therefore absorb at most 16 simultaneous beams before two of them are trying to occupy the same slot in the same place. At roughly 2 bits/s/Hz of realised spectral efficiency that is about 7.8 Gbps into the cell — and it does not matter how many satellites are overhead.
7.8 Gbps ÷ 380 km² = 20.5 Mbps/km². For scale: a single suburban street with 30 households on gigabit fibre would want more than one whole Starlink cell to itself.
You can push the ceiling up. More spectrum (Ka, V, E-band), smaller cells (narrower beams from lower orbits or larger apertures), better modulation and coding. Stack them and something like 30× is defensible. But every one of those is a multiplier on a constant — the capacity of a patch of ground still scales with how much spectrum you own, not with how many satellites you fly.
Steve Perlman — WebTV, OnLive, Mova's facial capture — published the DIDO (Distributed-Input Distributed-Output) white paper around 2011, and demoed it as pCell through Artemis Networks in San Francisco around 2014. The pitch was exactly the one above, on the ground: a scattering of cheap, unsynchronised-looking radios, jointly precoding so that a "personal cell" of constructive interference forms around each handset, every user getting the full channel rather than a slice of it.
The physics was real and the demos were real. The commercial traction never came — carrier integration, backhaul, the sheer institutional weight of the cellular standards process. Rearden still holds the patents. What killed it was not the equation.
The idea did not die; it changed names. It is now mainstream academic work under "cell-free massive MIMO", and it is one of the headline candidate technologies for 6G. The interesting question is no longer does it work — it is where does it work first. And the answer may not be on the ground.
Classical MIMO gets its multiple spatial streams from rich scattering. Walls, furniture, cars, buildings — each scatterer creates another path, and if the paths are numerous and independent enough, the channel matrix H fills up with effectively independent random entries. A random matrix is full rank almost surely. Full rank means N usable streams.
Pure line-of-sight is the opposite. One path per antenna pair, all of them nearly parallel, all of them nearly the same length. Every entry of H has almost the same phase, so every column of H is almost the same vector. The matrix is rank 1. You can bolt on sixteen antennas and still get one stream.
A satellite link is about as pure-LOS as radio gets: no scatterers, a clean vacuum path, and a range so long that every ray from a satellite to a terminal is essentially parallel. By the textbook story, LEO should be the worst possible place to try this.
Take the simplest case: two transmit antennas, two receive antennas, everything in a plane, boresight range R. Put the transmitters at transverse offsets 0 and dtx, the receivers at 0 and drx, a distance R downrange.
Each path is a straight line, so its length is just Pythagoras on the downrange distance and the transverse offset between the two endpoints:
Because R is enormously larger than the offsets — 550 km against tens of kilometres, or 2 m against 20 cm on a bench — expand the square root and keep the first correction. This is the Fresnel (parabolic) approximation:
The channel matrix is Hnm = exp(−j·2πrnm/λ): unit magnitude, all the information in the phase. Now here is the move. Multiplying a row or a column of H by a unit-magnitude scalar is a unitary operation — it changes none of the singular values. So pull out a common phase from each row and each column. Everything cancels except one number:
Substituting the Fresnel expansion, the R terms cancel four ways, the y² terms cancel, and the cross term survives:
That is the entire physics of LOS MIMO in one line. The differential path length is the product of the two array apertures divided by the range. Note what is not in it: the absolute range appears only as a divisor, and the individual apertures only as a product — a big transmit array with a tiny receive array is interchangeable with the reverse.
After the row/column phase factoring, H is unitarily equivalent to
Its two columns are c1 = (1, 1) and c2 = (1, ejψ). They carry independent streams exactly when they are orthogonal:
Two unit phasors sum to zero only when they point in opposite directions. Sweep ψ below and watch the inner product close:
| Quantity | Value |
|---|---|
| Column inner product |c1Hc2| = |1+ejψ| | — |
| σ1 = √(2 + 2|cos(ψ/2)|) | — |
| σ2 = √(2 − 2|cos(ψ/2)|) | — |
| Condition number κ = σ1/σ2 | — |
| Capacity at 20 dB SNR | — |
Set ψ = π and solve:
For N = 2 that is λR/N. The general-N case works out to the same formula. With uniform linear arrays of N elements a side, the same factoring leaves
which is a DFT matrix — perfectly conditioned, every singular value equal — exactly when ψ = 2π/N. That gives the Rayleigh spacing condition:
Different papers write λR/N, 2λR/N, or λR/2 depending on whether they mean element spacing or total aperture, and on the array geometry they assume. This page uses λR/N with d meaning the element-to-element spacing of a uniform linear array at broadside, because that is the convention under which the derivation above closes exactly.
It is checkable rather than a matter of taste. Define the dimensionless geometry number
Building H from the exact path lengths and taking a numerical SVD, the condition number at G = 1 comes out to 1.0006 for the Starlink numbers in §6 — the residual is the Fresnel approximation, not the convention. If you use 2λR/N you land at G = 2, which for N = 2 is a rank-1 null, not an optimum.
G = 1 is the smallest solution, not the only one. The DFT condition is ψ = 2πp/N with p coprime to N, i.e.
Verified numerically on exact path lengths (κ at each G, equal spacing, long range):
| N | G=1 | G=2 | G=3 | G=4 | G=5 | G=6 |
|---|---|---|---|---|---|---|
| 2 | 1.00 | 16978 | 1.00 | 4245 | 1.00 | 1887 |
| 3 | 1.00 | 1.00 | 6369 | 1.00 | 1.00 | 1593 |
| 4 | 1.00 | 2231 | 1.00 | 19738 | 1.01 | 249 |
| 5 | 1.00 | 1.00 | 1.01 | 1.01 | 1290498 | 1.02 |
Green cells are the coprime ones. This matters practically: as satellites drift the geometry number sweeps continuously, so a pass crosses several good windows, not one.
Redo Step 2 with the arrays as arbitrary 3-D vectors — transmit baseline a, receive baseline c, line-of-sight unit vector û — and the same cancellation gives
where ⊥ means the component perpendicular to û. It is a dot product, not a product of lengths. Two consequences the scalar formula doesn't show you: only the transverse component counts, so a baseline pointing along the line of sight is worth nothing; and if the two transverse baselines are mutually perpendicular, Δ = 0 and the channel is rank-1 at any spacing. The 3-D toy in §7 uses this general form, which is why its geometry number moves when nothing but orientation changes.
Four antennas, free to move. The channel matrix is built from the exact path lengths (no Fresnel approximation), and the singular values come from a numerical SVD, so nothing here is assumed. The scale is a benchtop one — centimetre wavelengths over a couple of metres — because d·d = λR/N does not care about the absolute scale. §6 runs the identical equation at 550 km.
| Path | length | in λ | phase |
|---|---|---|---|
| r11 | — | — | — |
| r12 | — | — | — |
| r21 | — | — | — |
| r22 | — | — | — |
| Δ (exact, from the four lengths) | — |
| Δ (Fresnel: −a⊥·c⊥/R) | — |
| ψ = 2πΔ/λ | — |
| Geometry number G = N·dtxdrx/λR | — |
| Required dtx for G = 1 | — |
| Condition number κ | — |
| MIMO capacity | — |
| Single-stream (SISO-equivalent) capacity | — |
| Multiplexing gain realised | — |
Same equation, six orders of magnitude up. Ku band at about 11 GHz gives λ ≈ 2.7 cm. Orbit altitude 550 km, so overhead R = 550 km. Two dishes on the terminal, 0.5 m apart. Solve for the separation the satellites need:
| Change | dtx | Why |
|---|---|---|
| Baseline: Ku, R = 550 km, N = 2, drx = 0.5 m | 15.0 km | — |
| Halve the terminal aperture to 0.25 m | 30.0 km | It is a product; shrinking one factor grows the other one-for-one. |
| Double the terminal aperture to 1.0 m | 7.5 km | The cheapest lever you control on the ground. |
| Move to Ka · 20 GHz (λ = 1.5 cm) | 8.3 km | dtx ∝ λ. |
| Move to V · 40 GHz (λ = 0.75 cm) | 4.1 km | λ shrinks 3.6×, so does the required separation. |
| Go to N = 4 satellites / 4 dishes | 7.5 km | dtx ∝ 1/N — more streams want a tighter element spacing, not a looser one. |
| Low elevation: slant range 1123 km (25°) | 30.6 km | dtx ∝ R. The condition slides as the pass progresses. |
The catch that the algebra hides: G = 1 is a knife-edge in a geometry that is moving at 7.6 km/s. Two things change through a pass. The slant range grows as the pair descends toward the horizon, which raises the required separation. And the transverse component of the baseline shrinks, because an along-track baseline rotates toward the line of sight as the satellites move away — which lowers what you actually have. Both effects push the same way.
| Elevation of pair midpoint | — |
| Slant range R | — |
| Baseline |a| (along-track) | — |
| Transverse component |a⊥| | — |
| Terminal aperture ⊥ |c⊥| (of 0.50 m) | — |
| Angle between a⊥ and c⊥ | — |
| Required |a⊥| for G = 1 | — |
| Condition number κ | — |
| Effective rank | — |
| Capacity at 20 dB SNR | — |
| Satellites above 25° mask | — |
| Pair currently selected | — |
Nothing above is a proposal. It is a demonstration that the physics does not forbid the thing. Three problems stand between that and hardware, and the second one is the reason no one has done it.
You saw it in §7. G = 1 is satisfied on a surface in configuration space, not in a region, and the satellites cross that surface at kilometres per second. Elevation change moves R; the along-track baseline rotates out of the transverse plane; the terminal's own aperture projection changes with look angle. A pair that is perfectly conditioned now is rank-deficient in tens of seconds.
This is the hard one, and it is not close to solved.
Coherent joint transmission means the satellites' emitted waveforms must arrive at the terminal with a known and controlled relative phase. From §6, the differential path length that carries the whole effect is λ/2 ≈ 1.4 cm at Ku. To hold a precoder stable you want to know the differential to a small fraction of that — call it a millimetre or two, which is picoseconds of differential timing. Sub-microsecond sync is not the bar. Sub-nanosecond, phase-level sync is the bar.
Against that you have: two platforms in independent orbits at 7.6 km/s, each with its own oscillator; Doppler shifts of order ±200 kHz at Ku, differing between the two satellites and changing continuously; relativistic and ephemeris uncertainty; thermal drift on the payload. And the channel state you precode against has to be estimated, fed back from the ground, and applied while it is still valid — the CSI-aging problem that already underdelivered CoMP on the ground, where nothing was moving.
The laser inter-satellite mesh is a plausible timing backbone — optical links between satellites can in principle carry a common phase reference with the required stability, and Starlink already flies them for routing. That is an argument that the ingredient exists, not that the dish has been cooked. No one has demonstrated coherent joint transmission from separate orbiting platforms. Treat any claim otherwise with suspicion.
From the 3-D form in §4: Δ = −(a⊥·c⊥)/R. The two transverse baselines have to be aligned, not merely long. A terminal whose two apertures happen to sit perpendicular to the satellites' along-track baseline gets nothing at all, at any spacing. On the ground you would fix this with more apertures in more orientations — which is another way of saying the terminal gets more expensive, and the "0.5 m apart" assumption that produced 15 km is doing more work than it looks like.
The most useful thing you can do with a speculative capability is find the closest analogous problem that people have been trying to solve, with more money and easier physics, and see where they got to. For coherent distributed MIMO there are three such roadmaps, and coherent joint transmission is nowhere on any of them.
IEEE 802.11bn (Wi-Fi 8) makes Multi-AP Coordination its headline feature. Five mechanisms are drafted:
| Mechanism | What it coordinates | Coherent? |
|---|---|---|
| Coordinated Spatial Reuse (Co-SR) | Transmit power, so neighbours can talk at once | No |
| Coordinated Beamforming (Co-BF) | Nulls steered toward the other AP's clients | No |
| Coordinated TDMA (Co-TDMA) | Time slots between APs | No |
| Coordinated R-TWT (Co-R-TWT) | Scheduled wake windows for latency-sensitive traffic | No |
| Coordinated Channel Recommendation | Channel selection hints | No |
| Coherent Joint Transmission (C-JTX) | Joint precoding — the thing on this page | Deferred |
All five drafted mechanisms are non-coherent: they divide the resource up more cleverly, they do not add a spatial dimension. Coherent joint transmission is explicitly pushed to "beyond 802.11bn".
And this is the second time. Multi-AP Coordination was in the original scope of 802.11be (Wi-Fi 7) and slipped out. So: two standards cycles, on stationary access points, mains-powered, on a shared wired backhaul, with cabled clock distribution physically available, in a room — and the coherent case was punted both times. That is the honest yardstick against which to price the orbital version, where the platforms are moving at 7.6 km/s.
The 2025–2026 literature is real and moving: cell-free massive MIMO formulated for LEO mega-constellations, distributed beamforming across networked LEO satellites, resource allocation for distributed MIMO-LEO systems. What does not exist is a flight demonstration of coherent joint transmission from two separate satellites. The gap between "there are papers" and "there is a link" is the whole engineering problem.
Starlink figures (8 × 240 MHz Ku user downlink, dual polarisation, ~380 km² cells, ~43 satellites above 25° elevation) are the working assumptions this page was built on; they are order-of-magnitude planning numbers, not operator-published specifications. Every derived quantity on the page is computed live in your browser from those inputs, so changing an assumption changes the answer in front of you.
A dataverse001 PAGE object. Everything renders and computes locally — no external scripts, no network calls, no tracking. Signed into the global graph; open it in the Node Viewer 🔍 to inspect the raw object.