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)^{+} $$
§Multi-user downlink
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
- E. Telatar, “Capacity of multi-antenna Gaussian channels,” Eur. Trans. Telecommun., 10(6), 1999.
- 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.
- 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}$.
- Linear
Precoder - 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) andg(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 powertotal_power.