Logo der Uni Stuttgart
Water-filling algorithm
When CSI is known at the transmitter, the maximum capacity of MIMO channels can be achieved by using the water-filling algorithm. The capacity is then given by $$C=\sum_{k=1}^{\rm{min}\left(N_t ,N_r\right)}\log_2(1+\frac{P_k}{\sigma ^2}\lambda _k)$$ where $P_k$ is the allocated power to the $k$-th eigenmode of the channel matrix $\mathbf{H}$, which is given by $$ P_k= \left ( \mu -\frac{\sigma ^2}{\lambda _k} \right )^+ $$ where $(x)^+=\max(0,x)$ and $\mu$ denotes the "Water Level". Furthermore, $\mu$ should be chosen such that the total power budget is not exceeded, that is $$\sum P_k=P_T$$