Water-filling algorithm

From Wikipedia, the free encyclopedia
(Redirected from Water filling algorithm)
Jump to navigation Jump to search

The water-filling 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-filling 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, such as MIMO wireless 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.

See also

[edit | edit source]

References

[edit | edit source]
  • Proakis, Digital Communication Systems, 4th Ed., McGraw Hill, (2001).
  1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ USA 6973122, Miller II et al, "Power allocation scheme for DMT-based modems employing simplex transmission", published Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value). 
  3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).