Max-Min Beamforming Problem

I want to formulate the well-known max-min (fairness) beamforming problem for multi user multiple input single output (MU-MISO) antenna system. Where {\bf{Q}}_k \in \mathbb{C}^{Mt \times Mt}, k=1,\cdots,Mr, are given channel correlation matrices for all users and noise is the variance of noise which is taken equal for all users.

I want to solve the max-min optimization problem for beamforming matrices ${\bf{X}}_k$s such that it gives the maximum SINR for all users, subject to total transmit power constraint, P.

This problem has been repeatedly announced as a convex problem in the literature but I do not know how can I formulate it as a CVX problem because the following form gives the DCP programming error for the first equality constraint, SINR(k) == sp/ip;, is there another way to write this constraint?

One may write the SINR(k) == sp-ip;, but this expression is typically negative and leads to close to zero ${\bf{X}}_k$s.

 cvx_begin 
    variable X(Mt,Mt,Mr) complex semidefinite;
    variable Power(Mr,1);
    variable SINR(Mr,1);
    
    maximize (min(SINR)) 
    
    subject to
    
    for k=1:Mr
    sp = trace(Q(:,:,k)*Xs(:,:,k));
    ip = noise;
       
        for j=1:k-1
        ip = ip + trace(Q(:,:,k)*X(:,:,j));
        end
        for j=k+1:Mr
        ip = ip + trace(Q(:,:,k)*X(:,:,j));
        end
    
    SINR(k) == sp/ip;                     % signal to interference ratio on kth user
    X(:,:,k)==hermitian_semidefinite(Mt);    
    Power(k)==trace(X(:,:,k));            % transmit power to kth user 
    
    end
    sum(Power)<=P;                        % total power constraint
    
    cvx-end

Is the problem convex?

I don’t think it is, actually; but it may be quasiconvex. Boyd & Vandenberghe talk about how you can solve quasiconvex problems by solving a sequence of convex feasibility problems; check that out.

Thanks Michael, you’re right. This problem is quasiconvex and can be solved by bisection algorithm as explained in the convex optimization book. I have not tried it with CVX yet but it should work.

were you able to solve this problem?