Water-filling algorithm
This article is currently being merged. After a discussion, consensus to merge this article into Water-filling algorithm was found. You can help implement the merge by following the instructions at Help:Merging and the resolution on the discussion. Process started in 2025-07-23. |
![]() | This article is actively undergoing a major edit for a little while. To help avoid edit conflicts, please do not edit this page while this message is displayed. This page was last edited at 04:52, 23 July 2025 (UTC) (14 days ago) – this estimate is cached, . Please remove this template if this page hasn't been edited for a significant time. If you are the editor who added this template, please be sure to remove it or replace it with {{Under construction}} between editing sessions. |
Water filling algorithm is a general name given to the ideas in communication systems design and practice for equalization strategies on communications channels. As the name suggests, just as water finds its level even when filled in one part of a vessel with multiple openings, as a consequence of Pascal's law, the amplifier systems in communications network repeaters, or receivers amplify each channel up to the required power level compensating for the channel impairments. See, for example, channel power allocation in MIMO systems.
Single channel systems
In a single-channel communication system the deamplification and loss present on them can be simplistically taken as attenuation by a percentage g, then amplifiers restore the signal power level to the same value at transmission setup by operating at a gain of 1/ (1 − g). E.g. if we experience 6 dB attenuation in transmission, i.e. 75% loss, then we have to amplify the signal by a factor of 4x to restore the signal to the transmitter levels.
Multichannel systems
Same ideas can be carried out in presence impairments and a multiple-channel system. Amplifier nonlinearity, crosstalk and power budgets prevent the use of these waterfilling algorithms to restore all channels, and only a subset can benefit from them.
See also
References
- Proakis, Digital Communication Systems, 4th Ed., McGraw Hill, (2001).
Water-pouring algorithm
The water-pouring algorithm is a technique used in digital communications systems for allocating power among different channels in multicarrier schemes. It was described by R. C. Gallager in 1968[1] along with the water-pouring theorem which proves its optimality for channels having Additive White Gaussian Noise (AWGN) and intersymbol interference (ISI). For this reason, it is a standard baseline algorithm for various digital communications systems.[2]
The intuition that gives the algorithm its name is to think of the communication medium as if it was some kind of water container with an uneven bottom. Each of the available channels is then a section of the container having its own depth, given by the reciprocal of the frequency-dependent SNR for the channel.[1][3] To allocate power, imagine pouring water into this container (the amount depends on the desired maximum average transmit power). After the water level settles, the largest amount of water is in the deepest sections of the container. This implies allocating more power to the channels with the most favourable SNR. Note, however, that the ratio allocation to each channel is not a fixed proportion but varies nonlinearly with the maximum average transmit power.
References
- ^ a b Gallager, R. C. (1968). Information Theory and Reliable Communications. Wiley.
- ^ USA 6973122, Miller II et al, "Power allocation scheme for DMT-based modems employing simplex transmission", published Dec 6 2005
- ^ Biglieri, Ezio (May 2003). "Coding and modulation for a horrible channel". IEEE Communications Magazine. 41 (5): 92–98. doi:10.1109/MCOM.2003.1200107.