Compressed Feedback
How the Steering Matrix Becomes a Stream of Angles
Explicit beamforming in 802.11 begins when the beamformer transmits a Null Data Packet (NDP) preceded by an NDP Announcement. The beamformee measures the per-subcarrier channel matrix H, computes its singular value decomposition H = UΣVH, and needs to return the right-singular-vector matrix V so the transmitter can pre-steer energy along the dominant eigenmodes. Sending V directly would mean transmitting many complex coefficients per subcarrier, which for an 80 MHz channel with 234 usable subcarriers and a 4 by 2 matrix becomes prohibitively large and consumes airtime that could carry payload.
Compressed feedback solves this by exploiting the fact that V is a unitary matrix and therefore has far fewer independent parameters than its raw element count. The matrix is factored into a product of Givens rotation matrices, each defined by a single rotation angle, plus a leading diagonal phase matrix. Only two angle types survive: phi angles that carry the column phases and psi angles that carry the rotation magnitudes. Because the receiver only needs relative phasing among transmit antennas, these angles tolerate coarse quantization, so each is packed into b or b minus 2 bits rather than full floating-point precision.
The beamformer reconstructs V from the received angles and applies it as the precoding matrix. In MU-MIMO it combines V matrices from multiple stations to form a steering solution that places nulls toward unintended users, which is why multi-user reports demand the higher 7-bit resolution; quantization error that is harmless in single-user mode directly raises inter-user interference when the access point tries to zero-force.
Givens Decomposition and Report Sizing
H = U × Σ × VH (V is the fed-back steering matrix)
Number of quantized angles (Nr × Nc matrix):
Nangles = Nc × (2Nr − Nc − 1)
Bits per subcarrier group:
Bgroup ≈ (Nφ × b) + (Nψ × (b − 2))
Subcarriers reported with grouping Ng:
Nsub ≈ ⌈NSD / Ng⌉
Where Nr = transmit antennas, Nc = streams/columns fed back, Nφ and Nψ = counts of phi and psi angles, b = angle bit-width (4 or 7), NSD = data subcarriers, Ng = grouping factor. Example: 4×2 matrix → Nangles = 2×(8−2−1) = 10 angles per group.
802.11 Compressed Feedback Parameters by Generation
| Standard | Max antennas / streams | SU angle bits (φ/ψ) | MU angle bits (φ/ψ) | Grouping Ng | Channel widths |
|---|---|---|---|---|---|
| 802.11n (HT) | 4 × 4 | 3/1, 4/2, 5/3, 6/4 | Not supported | 1, 2, 4 | 20, 40 MHz |
| 802.11ac (VHT) | 8 × 8 | 4/2, 6/4 | 7/5, 9/7 | 1, 2, 4 | 20 to 160 MHz |
| 802.11ax (HE) | 8 × 8 | 4/2, 6/4 | 7/5, 9/7 | 1, 2, 4, 16 | 20 to 160 MHz |
| 802.11be (EHT) | 16 × 16 | 4/2, 6/4 | 7/5, 9/7 | 1, 4, 16 | 20 to 320 MHz |
Frequently Asked Questions
How do the angle bit-width parameters psi and phi affect compressed feedback size?
Each Givens angle is quantized into b bits for φ and (b − 2) bits for ψ. Single-user VHT uses b = 4 (φ=4, ψ=2); multi-user uses b = 7 (φ=7, ψ=5) so the AP can null between streams. Higher resolution roughly doubles the payload but cuts the SU sum-rate quantization penalty from about 1 dB at 2-bit ψ to under 0.3 dB at 5-bit ψ. The angle count for an Nr by Nc matrix is Nc×(2Nr − Nc − 1).
Why is the steering matrix sent as Givens-rotation angles instead of raw complex coefficients?
The V matrix is unitary, so it has far fewer independent degrees of freedom than its element count. Givens decomposition expresses it with the minimum real angles, and those tolerate coarse quantization since only relative phasing matters. A 4×2 matrix over 234 subcarriers needs roughly 60 kbit as raw 16-bit complex feedback but closer to 8 to 12 kbit as compressed angles at b = 7 with grouping, a five-to-eight-fold cut. This is why the standard calls the format the Compressed Beamforming Report.
How does subcarrier grouping (Ng) trade feedback size against beamforming accuracy?
Reporting one angle set per group of Ng subcarriers, with interpolation between, shortens the report. 802.11ac allows Ng = 1, 2, 4; 802.11ax adds 16 for 160 MHz channels. Ng = 4 cuts the report to about a quarter of the Ng = 1 size. The cost is interpolation error: in dispersive multipath, Ng = 4 can lose 1 to 2 dB of array gain, so dense MU-MIMO often keeps Ng = 1 or 2 while line-of-sight links tolerate 4 or 16.