Geometric Water-Filling Peak Power Constraint

We extend the GWF algorithm to include individual peak power constraints. The proposed GWF can be incorporated and modified to the Geometric Water-Filling Peak Power (GWFPP) problem.

The problem needed to be solved is generalized as the following equation:

Similar to the GWF constraints, it is extended to 0 is less than equal to si which is less than or equal to Pi for all i. Also the sum of allocated power must be less than or equal to P.

GWFPP Algorithm

The GWFPP can provide the optimal solution to the problem. The control of this process is to use the last statement of 2) and the first statement of 3). A new state is updated in the next time stage. An optimal dynamic power distribution process through GWFPP with the state feedback is thus formed. Since the finite set E is getting smaller and smaller until the set is empty, it carries out K loops to compute the optimal solution at most.

The algorithm can be explained with the following problem to the right with multiple channels.

Step 1 of the GWFPP algorithm is solved by using the GWF algorithm to assign the allocated power of each channel. Given the constraints in the problem on the right, the allocated power cannot be greater than i, and the sum of allocated power of all channels cannot be greater than 30.

The result of the first loop is si = i, as i = 1,..., 4. The remaining entries of the solution are allocated with zero as shown in Fig 4b.

The result of the second loop is si = i, as i = 1,..., 5, where the remaining entries of the solution are allocated with zero as showin in Fig. 4c.

The result of the third loop is si = i, as i = 1,..., 5 and si = 12 - i, as i = 6, 7 , 8 as shown in Figure 4d and 3c.

MATLAB Code

To run this function, the input parameters (PT, A, PU, w) must be inputted to the GWFPP function and the function must be assigned to an array of output parameters (Sk_sorted, L) to receive an output.

The GWFPP algorithm can be accessed here.

function [Sk_sorted, L] = GWFPP(PT, A, PU,w)
%A: fading, PU: peak constraint, PT: total power
%Sk_sorted: allocated power, L: water level


[L,ans,ans,Sk] =GWF(PT, A,w);
p = 0;
N = 0;
i = 0;
while i < length(Sk) %step 4
    i = i+1;
    if Sk(i)> PU(i) 
        p=p+1;
        flag(p) = i;
        N = N+1;
        Sk(i) = PU(i) ;
        PT = PT - PU(i) ;
        A_inp = A;
        w_inp=w;
        A_inp(flag) = [];
         w_inp(flag) = [];
        if ~isnan(A_inp)
            [L,ans,ans,Sk_inp] = GWF(PT, A_inp,w_inp);
            k = 0;
            for j = 1:length(Sk)
                if all(flag ~= j)==1
                    k = k+1;
                    Sk(j) = Sk_inp(k);
                end
            end
        end
    end
end
Sk_sorted = Sk;

A user friendly script has also been developed which makes visualizing the output easier. This file (called GFWPP_call.m) can be accessed here.

MATLAB Simulation

Using the aforementioned example in the algorithm section, the GWFPP_Call file can be used to generate the optimal solution along with a figure of the output

Applications