Water Filling Algorithm

Version (1.75 KB) by G. Levin
The Water Filling Algorithm with a power constrain to approach Shannon capacity of the channel.


Updated 17 Jun 2003

View License

WFILL: The Water Filling algorithm.
WLINE = WFILL(VEC, PCON, TOL) performs the water filling algorithm with the given total power constrain to approach Shannon capacity of the channel.

The water filling algorithm is based on an interative procedure, so the tolerance must be assigned to determine the end-of-loop.

VEC is a noise absolute or relative level in LINEAR units at different frequencies, space or whatever bins. PCON is a total power constrain given in the same units as the VEC. TOL is an acceptable tolerance in the units of VEC. WLINE indicates the WATERLINE level in units of VEC so that:


The algorithm is built such a way that PCON>=SUM(MAX(WLINE-VEC, 0)) and never

VEC must be a row vector representing a noise level. PCON and TOL must be scalars in the same units as VEC.


Input: VEC=[1 3 5 4]

Output: WLINE=5

The function doesn't check the formats of VEC, PCON and TOL, as well as a number of the input and output parameters.

Author: G. Levin, May, 2003

T. M. Cover and J. A. Thomas, "Elements of Information Theory", John Wiley & Sons, Inc, 1991.

Cite As

G. Levin (2023). Water Filling Algorithm (https://www.mathworks.com/matlabcentral/fileexchange/3592-water-filling-algorithm), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R12.1
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Misspells correction.