# Simple power control in communication systems via GP.

Jump to: Source code Text output Plots Library index

    % Boyd, Kim, Vandenberghe, and Hassibi, "A Tutorial on Geometric Programming"
    % Written for CVX by Almir Mutapcic 02/08/06
    % (a figure is generated)
    %
    % Solves the power control problem in communication systems, where
    % we want to minimize the total transmitter power for n transmitters,
    % subject to minimum SINR level, and lower and upper bounds on powers.
    % This results in a GP:
    %
    %   minimize   sum(P)
    %       s.t.   Pmin <= P <= Pmax
    %              SINR >= SINR_min
    %
    % where variables are transmitter powers P.
    % Numerical data for the specific examples was made up.

    % problem constants
    n = 5;                 % number of transmitters and receivers
    sigma = 0.5*ones(n,1); % noise power at the receiver i
    Pmin = 0.1*ones(n,1);  % minimum power at the transmitter i
    Pmax = 5*ones(n,1);    % maximum power at the transmitter i
    SINR_min = 2;          % threshold SINR for each receiver

    % path gain matrix
    G = [1.0  0.1  0.2  0.1  0.0
         0.1  1.0  0.1  0.1  0.0
         0.2  0.1  2.0  0.2  0.2
         0.1  0.1  0.2  1.0  0.1
         0.0  0.0  0.2  0.1  1.0];

    % variables are power levels
    cvx_begin gp
      variable P(n)
      % objective function is the total transmitter power
      minimize( sum(P) )
      subject to
        % formulate the inverse SINR at each receiver using vectorize features
        Gdiag = diag(G);          % the main diagonal of G matrix
        Gtilde = G - diag(Gdiag); % G matrix without the main diagonal
        % inverse SINR
        inverseSINR = (sigma + Gtilde*P)./(Gdiag.*P);
        % constraints are power limits and minimum SINR level
        Pmin <= P <= Pmax;
        inverseSINR <= (1/SINR_min);
    cvx_end

    fprintf(1,'\nThe minimum total transmitter power is %3.2f.\n',cvx_optval);
    disp('Optimal power levels are: '), P

    Successive approximation method to be employed.
       For improved efficiency, sedumi is solving the dual problem.
       sedumi will be called several times to refine the solution.
       Original size: 98 variables, 36 equality constraints
       26 exponentials add 208 variables, 130 equality constraints
    -----------------------------------------------------------------
     Cones  |             Errors              |
    Mov/Act | Centering  Exp cone   Poly cone | Status
    --------+---------------------------------+---------
     21/ 21 | 3.182e+00  3.069e-01  0.000e+00 | Unbounded
     25/ 25 | 3.207e+00  6.778e-01  2.356e-07 | Solved
     26/ 26 | 5.268e-01  1.997e-02  4.381e-08 | Solved
     20/ 26 | 2.964e-02  6.215e-05  4.628e-08 | Solved
      5/ 26 | 2.139e-03  3.770e-07  4.631e-08 | Solved
      0/ 26 | 1.527e-04  4.709e-08  4.630e-08 | Solved
    -----------------------------------------------------------------
    Status: Solved
    Optimal value (cvx_optval): +17.0014

    The minimum total transmitter power is 17.00.
    Optimal power levels are:

    P =

        3.6601
        3.1623
        2.9867
        4.1647
        3.0276