Sphere Decoding
Searching a Sphere, Not a Cube
Exhaustive ML search visits every vertex of the -dimensional hypercube . Sphere decoding visits only those lattice points that lie inside a sphere of radius around the received vector. Because the noise is Gaussian, most of the probability mass on the distance to the true transmit vector concentrates on with β so a well-chosen radius captures the ML solution almost surely while pruning the search tree aggressively. At moderate-to-high SNR, the expected number of visited points grows polynomially in ; at low SNR, it degenerates to exponential.
Definition: The MIMO Lattice
The MIMO Lattice
The set of all noise-free received vectors, as ranges over (after rescaling/shifting the constellation into an integer grid), is the lattice The MIMO detection problem becomes a closest-vector problem within a bounded region corresponding to the constellation .
Real-valued sphere decoders work in with -valued integers by stacking real and imaginary parts. QAM constellations map naturally to integer lattices after scaling.
Theorem: QR Decomposition Enables Depth-First Pruning
Let be the economy QR factorization with upper-triangular and having orthonormal columns. Let . Then for any candidate , The sum is triangular: its -th term depends only on .
The triangular structure lets us bound the total metric by partial sums. If the partial sum from level down already exceeds the current best radius, every extension is hopeless β we prune.
Rotate the observation
Because has orthonormal columns, the Euclidean norm is preserved under multiplication by on the image of . A projection onto the null space contributes a constant term depending only on , which we absorb into "const."
Use upper-triangularity
The -th component of involves only because for .
Decompose the metric
Since , each summand is a function of only.
Pruning principle
Enumerating from the last coordinate backward to , the partial sum is non-decreasing in . If it ever exceeds (the current best known radius), any completion of yields a worse candidate β we prune the subtree.
Schnorr-Euchner Sphere Decoder
Complexity: Expected at moderate SNR; worst caseThe Schnorr-Euchner enumeration orders children by increasing metric, which causes the best candidates to be found first and shrinks aggressively. Radius updating (line 9) is the key speed-up over the original Viterbo-Boutros decoder with fixed radius.
Theorem: Sphere Decoding is ML-Optimal on Termination
If the initial radius is chosen so that at least one lattice point in lies within distance of , the Schnorr-Euchner sphere decoder terminates and returns .
The algorithm enumerates every point inside the sphere whose partial metric does not already exceed the current best. The radius is only ever decreased when an improvement is found. Nothing can be missed that was not provably worse.
Pruning is safe
A subtree is pruned only when its partial metric at some level exceeds . Since partial metrics are non-decreasing in completion, no descendant can achieve a total metric smaller than the current . Hence no potential improvement is discarded.
Radius updates maintain feasibility
When a new best candidate is found, is tightened to the exact distance of that candidate, guaranteeing at least one lattice point still lies within the (new) sphere.
Finite termination
The search tree is finite β there are at most leaves. Depth-first traversal with pruning visits a subset, terminating in finitely many steps.
Optimality
At termination, is the candidate with the smallest observed metric. Pruning guarantees no discarded candidate had a smaller metric. Hence .
Expected Complexity and Its Honest Limit
Hassibi and Vikalo (2005) showed that under i.i.d. Rayleigh channels and fixed SNR, the expected number of lattice points inside the sphere grows as for some SNR-dependent exponent . JaldΓ©n and Ottersten (2005) proved, however, that the expected complexity is exponential at any fixed SNR β the polynomial behavior only holds when the SNR scales up with . The practical message: sphere decoders are fast where practical wireless systems operate (moderate-to-high SNR), but one should not call them "polynomial" without qualification.
Sphere Decoder Nodes Visited vs. SNR
Average number of tree nodes visited by the Schnorr-Euchner sphere decoder as a function of SNR. At high SNR, the search is nearly linear in ; at low SNR it approaches exhaustive.
Parameters
Sphere Decoder: -Triangular Search and Pruning
Example: Two-Dimensional Sphere Decoder by Hand
With , , alphabet , and initial radius , trace the Schnorr-Euchner search and report .
Level $k = 2$: Babai estimate
. SE order: first (distance ), then (distance ). Try : partial . OK, continue.
Level $k = 1$ under $x_2 = +1$
. SE order: (distance ), then (distance ). Try : total . Leaf! Update , .
Level $k = 1$ with $x_1 = -1$
Partial on : . Prune. Backtrack to .
Level $k = 2$ with $x_2 = -1$
Partial: . Prune. No candidates remain at level 2. Terminate.
Result
with metric . Out of possible leaves, only one was fully evaluated β the other three were pruned by partial-metric bounds. This is the sphere decoder in action.
Historical Note: From Fincke-Pohst to Wireless Receivers
1985β1999Sphere decoding originated in number theory: Fincke and Pohst (1985) introduced the lattice enumeration algorithm for computing short vectors. Viterbo and Boutros (1999) adapted it to wireless communications, presenting the first sphere decoder for MIMO-like problems. Schnorr and Euchner (1994), working independently in cryptographic lattice contexts, introduced the zig-zag enumeration order that dramatically accelerates the search. The combined algorithm β Viterbo-Boutros structure with Schnorr-Euchner ordering β is what most modern MIMO implementations use.
Common Mistake: Choosing the Wrong Initial Radius
Mistake:
One picks an initial radius too small, and the sphere decoder returns "no candidate found."
Correction:
A safe choice is with , calibrated to cover the typical noise norm with high probability. Alternatively, initialize from the Babai / ZF estimate: compute , snap to the alphabet, and use . This guarantees at least one lattice point inside the sphere and provides an immediate radius tightening on the first leaf.
Sphere Decoders in Hardware
Commercial MIMO receivers ship sphere decoders only when and the constellation is 16-QAM or smaller. Above that, the variable throughput (a data-dependent node count per channel use) becomes incompatible with deterministic latency budgets. FPGA implementations typically use a K-best variant: keep only the best partial candidates at each level, sacrificing ML optimality for fixed throughput.
- β’
K-best: deterministic latency, near-ML for and
- β’
Pure sphere decoder: variable latency, unusable in fixed-rate pipelines
Sphere Decoding
A depth-first lattice search that enumerates only lattice points within a given radius of the received vector, using QR-based triangular metric bounds to prune subtrees. ML-optimal when it terminates with a candidate.
Related: Closest Vector Problem, Schnorr-Euchner Enumeration
Schnorr-Euchner Enumeration
A zig-zag ordering of lattice candidates at each level, visiting points in order of increasing distance from the Babai / continuous estimate. Accelerates sphere decoding by finding good candidates early and tightening the radius faster.
Related: Sphere Decoding, Babai Estimate
Quick Check
Sphere decoding prunes a subtree when:
The partial metric already exceeds the current best radius squared
The candidate symbol is not the nearest to the Babai estimate
The QR decomposition has zero diagonal entries
A random threshold is met
Partial metrics are non-decreasing, so the best completion cannot beat the current incumbent.