Skip to main content

Module precoding

Module precoding 

Source
Expand description

Linear precoding: eigenmode transmission with water-filling, and the zero-forcing precoders of the multi-user downlink.

§Eigenmodes

With the SVD $H = U \Sigma V^{H}$, sending $x = V P^{1/2} s$ and filtering with $U^{H}$ turns the channel into parallel scalar channels of gains $\sigma_{i}$: $\tilde y_{i} = \sigma_{i} \sqrt{p_{i}}\, s_{i} + \tilde w_{i}$. Water-filling chooses the powers that maximise $\sum_{i} \log_{2}(1 + p_{i} g_{i})$ under $\sum_{i} p_{i} = P$, with $g_{i} = \sigma_{i}^{2} / \sigma^{2}$:

$$ p_{i} = \left(\mu - \frac{1}{g_{i}}\right)^{+} $$

The rows of $H$ are the channels of single-antenna users. Zero forcing $W \propto H^{H} (H H^{H})^{-1}$ removes the interference between users; the regularised version $W \propto H^{H} (H H^{H} + \alpha I)^{-1}$, with $\alpha = K \sigma^{2} / P$ for $K$ users, maximises the signal-to-leakage ratio. Both are scaled to the total power $\lVert W \rVert_{F}^{2} = P$.

§Reconfigurable intelligent surface

A RIS of $N$ elements reflects $\sum_{i} g_{i} e^{j\phi_{i}} h_{i}$ (comnum_channel::ris): ris_co_phasing gives the phases $\phi_{i} = -\arg(h_{i} g_{i})$ that align every product, which maximise the SNR to $(\sum_{i} |h_{i}| |g_{i}|)^{2} E_{s}/N_{0}$ (Basar et al. 2019, eqs. (11)–(13), as maximal-ratio combining).

§Examples

use comnum_mimo::precoding::water_filling_powers;
let p = water_filling_powers(&[4.0, 1.0, 0.1], 1.0)?;
assert!((p.iter().sum::<f64>() - 1.0).abs() < 1e-12);
assert_eq!(p[2], 0.0);                       // the weakest mode stays off

§References

  1. E. Telatar, “Capacity of multi-antenna Gaussian channels,” Eur. Trans. Telecommun., 10(6), 1999.
  2. C. B. Peel, B. M. Hochwald and A. L. Swindlehurst, “A vector-perturbation technique for near-capacity multiantenna multiuser communication — Part I: channel inversion and regularization,” IEEE Trans. Commun., 53(1), 2005.
  3. E. Basar, M. Di Renzo, J. de Rosny, M. Debbah, M.-S. Alouini and R. Zhang, “Wireless communications through reconfigurable intelligent surfaces,” IEEE Access, 2019 (arXiv 1906.09490).

Structs§

Eigenmode
Eigenmode (SVD) transmission: precoder $V P^{1/2}$ and receive filter $U^{H}$.
LinearPrecoder
A linear precoder $x = W s$ (one column of the streams at a time).

Functions§

ris_co_phasing
The phases $\phi_{i} = -\arg(h_{i} g_{i})$ (rad) of the elements of a RIS that align the products of its hops h (source to element) and g (element to destination): the gain $\sum_{i} g_{i} e^{j\phi_{i}} h_{i}$ is then $\sum_{i} |h_{i}| |g_{i}|$.
water_filling_powers
The water-filling powers of parallel channels of gains gains (SNR per unit power) under the total power total_power.