Optimal Bit Allocation

Not All Antennas Deserve the Same Number of Bits

The mixed-ADC architecture of Section 19.3 answers "how many antennas get high resolution?" with a single number Ξ±\alpha and a binary split. Section 19.4 generalizes the question: allow each antenna nn its own resolution bn∈{0,1,2,…,bmax⁑}b_n \in \{0, 1, 2, \ldots, b_{\max}\}, and optimize the vector b=(b1,…,bNr)\mathbf{b} = (b_1, \ldots, b_{N_r}) subject to a total ADC-power budget βˆ‘nc0 2bn fs≀Pbud.\sum_n c_0\,2^{b_n}\,f_s \leq P_{\text{bud}}. The optimal allocation assigns more bits to the antennas with larger channel gains (strong signals deserve precise digitization) and fewer bits to weak antennas β€” an ADC-domain analogue of water-filling.

,

Definition:

The Optimal Bit Allocation Problem

Let gn=E[∣Hn∣2]g_n = \mathbb{E}[|\mathbf{H}_{n}|^2] denote the mean per-antenna channel gain, PbudP_{\text{bud}} the ADC power budget, and PADC(b)=c0 2bfsP_{\text{ADC}}(b) = c_0\,2^b f_s the per-ADC power cost at resolution bb. The bit allocation problem is

max⁑b∈{0,…,bmax⁑}Nrβˆ‘n=1Nrlog⁑2 ⁣(1+ΞΊbngn SNR)s.t.βˆ‘n=1Nr2bn≀Bmaxβ‘β‰œPbudc0fs,\begin{aligned} \max_{\mathbf{b} \in \{0,\ldots,b_{\max}\}^{N_r}} \quad & \sum_{n=1}^{N_r} \log_2\!\left(1 + \kappa_{b_n} g_n\,\text{SNR}\right) \\ \text{s.t.} \quad & \sum_{n=1}^{N_r} 2^{b_n} \leq B_{\max} \triangleq \frac{P_{\text{bud}}}{c_0 f_s}, \end{aligned}

where ΞΊb\kappa_{b} is the Bussgang effective-gain factor of Definition DBussgang Distortion Factor. Assigning bn=0b_n = 0 means the antenna is turned off (contributes nothing and consumes one "budget unit" for the pilot stream).

The objective is the sum of per-antenna rates under MRC with perfect CSI, which decouples across antennas once the Bussgang linearization is applied. This decoupling is what makes the problem tractable β€” without it we would have to jointly optimize the resolution and the combiner, a mixed-integer nonlinear program.

Theorem: Continuous Bit Allocation is Water-Filling on Log Gains

Relax bn∈Rβ‰₯0b_n \in \mathbb{R}_{\geq 0} and approximate ΞΊbnβ‰ˆ1βˆ’c1β‹…4βˆ’bn\kappa_{b_n} \approx 1 - c_1\cdot 4^{-b_n} with c1β‰ˆ2βˆ’2/Ο€c_1 \approx 2 - 2/\pi so that log⁑2(1+ΞΊbngn SNR)β‰ˆlog⁑2(1+gn SNR)βˆ’Ο΅(bn)\log_2(1 + \kappa_{b_n} g_n\,\text{SNR}) \approx \log_2(1 + g_n\,\text{SNR}) - \epsilon(b_n) where Ο΅(bn)β‰ˆc2β‹…4βˆ’bngn SNR/(1+gn SNR)\epsilon(b_n) \approx c_2 \cdot 4^{-b_n} g_n\,\text{SNR}/ (1 + g_n\,\text{SNR}). The optimal continuous allocation satisfies

bn⋆=12log⁑2 ⁣(gn SNRμ ln⁑2)+=12log⁑2(gn SNR)βˆ’12log⁑2(μ ln⁑2),b_n^\star = \frac{1}{2}\log_2\!\left( \frac{g_n\,\text{SNR}}{\mu\,\ln 2}\right)_+ = \tfrac{1}{2}\log_2(g_n\,\text{SNR}) - \tfrac{1}{2}\log_2(\mu\,\ln 2),

where ΞΌβ‰₯0\mu \geq 0 is the Lagrange multiplier for the power budget and is chosen so that βˆ‘n2bn⋆=Bmax⁑\sum_n 2^{b_n^\star} = B_{\max}. The integer solution is obtained by rounding bn⋆b_n^\star and redistributing any power slack among the antennas with the largest gradient.

As with classical water-filling, we allocate more bits to antennas with larger log-gains; antennas below the water level are shut off (bn=0b_n = 0) because the marginal rate return is smaller than the marginal power cost. The 12log⁑2\tfrac{1}{2}\log_2 slope comes from the 4βˆ’b4^{-b} decay of the Bussgang distortion factor β€” each additional bit cuts the residual distortion by a factor of 4 and buys roughly 12\tfrac{1}{2} bit of rate per channel use.

,

Water-Filling Bit Allocation

Complexity: O(Nrlog⁑(1/ϡ)+Nrbmax⁑)\mathcal{O}(N_r \log(1/\epsilon) + N_r b_{\max})
Input: per-antenna gains g_1..g_Nr, per-antenna SNR rho,
total bit budget B_max = P_bud / (c_0 f_s),
maximum per-antenna resolution b_max
Output: integer bit allocation b_1..b_Nr
// Phase 1 β€” continuous relaxation
mu_lo, mu_hi <- 1e-12, 1e12
for iter = 1 .. 60: // bisection on mu
mu <- sqrt(mu_lo * mu_hi)
for n = 1 .. Nr:
b_cont[n] <- 0.5 * log2( (g[n] * rho) / (mu * ln 2) )
b_cont[n] <- clip(b_cont[n], 0, b_max)
used <- sum_n 2^b_cont[n]
if used > B_max: mu_lo <- mu
else: mu_hi <- mu
// Phase 2 β€” integer rounding
for n = 1 .. Nr:
b[n] <- floor(b_cont[n])
// Phase 3 β€” reallocate leftover budget
leftover <- B_max - sum_n 2^b[n]
while leftover > 0:
// compute marginal rate gain of giving each antenna one more bit
for n = 1 .. Nr:
gain[n] <- log2(1 + kappa[b[n]+1] * g[n] * rho)
- log2(1 + kappa[b[n]] * g[n] * rho)
cost[n] <- 2^(b[n]+1) - 2^b[n] // = 2^b[n]
n_star <- argmax_n (gain[n] / cost[n]) among n with cost[n] <= leftover
if n_star is empty: break
b[n_star] <- b[n_star] + 1
leftover <- leftover - cost[n_star]
return b_1..b_Nr

Phase 1 is a one-dimensional bisection and converges in ∼60\sim 60 iterations to double-precision tolerance. Phases 2 and 3 together form a greedy integer rounding that is provably within log⁑2bmax⁑\log_2 b_{\max} of the continuous optimum (Roth et al. 2018, Proposition 4).

,

Water-Filling Bit Allocation Across Antennas

Generate a random per-antenna gain profile (sorted in decreasing order), run the water-filling allocator, and plot the resulting integer bit assignment bnb_n vs antenna index. Try different power budgets to see antennas getting switched off or upgraded as the water level moves.

Parameters
64
0
15
4
6

Example: Water-Filling on 8 Antennas

An 8-antenna receiver sees per-antenna gains g1,…,g8=(10,8,6,4,3,2,1,0.5)g_1,\ldots,g_8 = (10, 8, 6, 4, 3, 2, 1, 0.5) at per-antenna SNR SNR=1\text{SNR} = 1 (0 dB). The total bit budget is Bmax⁑=32B_{\max} = 32 (equivalent to an average of 2 bits per antenna or 2bΛ‰=42^{\bar b} = 4 per-antenna). Find the continuous and integer allocations, rounded to the nearest bit, with bmax⁑=5b_{\max} = 5.

Bit Allocation is a Refinement of Mixed-ADC

Notice that the mixed-ADC architecture of Section 19.3 is a special case of bit allocation with the constraint bn∈{1,bH}b_n \in \{1, b_H\}. Allowing bnb_n to take intermediate integer values gains a small amount of rate at the same power budget but complicates the RF front-end (multiple ADC reference designs on the same chip). In practice deployments usually pick two resolutions; the bit-allocation formulation is a useful upper bound on what mixed-ADC can achieve.

Common Mistake: Don't Use Long-Term Gains for Fast-Fading Channels

Mistake:

A common mistake is to compute the bit allocation once, based on the long-term average gains gn=E[∣Hn∣2]g_n = \mathbb{E}[|\mathbf{H}_{n}|^2], and then freeze it for all coherence blocks.

Correction:

The water-filling analysis depends on the instantaneous effective channel gain when MRC is applied, which fluctuates rapidly in fast-fading environments. Freezing the allocation wastes budget on antennas that are currently in a deep fade and starves antennas that have just come out of one. Practical systems either (i) compute the allocation once per coherence interval TcT_c using the short-term estimates, or (ii) use the long-term allocation but permute which antennas hold which resolution via the same RF-switch hardware of Section 19.3. The switch-based approach is preferred when TcT_c is comparable to the switching latency.

⚠️Engineering Note

Can We Actually Build Per-Antenna Different ADCs?

Strictly per-antenna resolution is hard to implement: it requires either physically different ADC chips on different ports or a reconfigurable ADC whose output can be re-quantized on the fly. Reconfigurable ADCs exist (cost a power premium) but are usually limited to 2–3 resolution settings. A pragmatic compromise is: assign each antenna to one of three classes β€” 1 bit, 4 bits, 8 bits β€” and cast the optimization as a discrete mixed-ADC with three levels. The Roth-Nossek algorithm specializes cleanly to this three-level case and is the basis of most published 1-bit/mixed-ADC testbeds.

Practical Constraints
  • β€’

    Typical deployments use {1,4}\{1,4\}-bit or {1,4,8}\{1,4,8\}-bit sets, not arbitrary bnb_n

  • β€’

    Per-antenna calibration cost grows with the number of distinct resolutions

  • β€’

    RF switch matrix permutes antenna-to-ADC mapping dynamically

πŸ“‹ Ref: Prototyping literature, Studer lab 2018-2020
,

Historical Note: From Signal Processing to Massive MIMO

1990s-2020s

Bit-allocation methods have a long history in audio/video source coding, where each transform coefficient gets its own precision (classical rate-distortion allocation). Widrow and KollΓ‘r's 1996 textbook on quantization theory applied the framework to signal processing, and the Massey–Goodman type inequalities made the allocation rule look like bn∝12log⁑2Οƒn2b_n \propto \tfrac{1}{2}\log_2\sigma_n^2. The translation to MIMO receivers came roughly 20 years later: Choi et al. (2016) and Roth and Nossek (2018) formulated the bit allocation across antennas, connecting it to water-filling. The interesting twist specific to MIMO is that each antenna carries a sum over the users (rather than a single coefficient), so the allocation interacts with the multi-user combiner design β€” a subject still under active research.

,

Quick Check

In the continuous bit-allocation water-filling formula bnβ‹†βˆ12log⁑2(gn SNR)b_n^\star \propto \tfrac{1}{2}\log_2(g_n\,\text{SNR}), what does the factor 1/21/2 represent?

Division between I and Q rails

Bandwidth factor from Nyquist sampling

Slope relating bits to log⁑2\log_2 of effective SNR (6 dB per bit / 2)

Half-rate coding overhead

Key Takeaway

Optimal bit allocation water-fills over per-antenna log gains: strong antennas get more bits, weak ones get turned off. Under the relaxed continuous formulation the optimal resolution is bnβ‹†βˆ12log⁑2(gn SNR)b_n^\star \propto \tfrac{1}{2}\log_2(g_n\,\text{SNR}), which integer-rounds to 2–5 bits for the top antennas and 0–1 bits for the rest. Mixed-ADC with a small Ξ±\alpha is the best-known discrete implementation of this principle.