How to solve this convex problem using cvx matlab?

I have a optimization problem, which has been proved to be convex. My cvx code has been shown below:

cvx_begin 
    variable X(L,L) symmetric
    variable t;
    minimize t;
    subject to
        t*eye(Nr) - (A+B*X*C)*(A+B*X*C)' == hermitian_semidefinite(Nr);
        -0.5*gamma*eye(L)<=X<=0.5*gamma*eye(L);
        X==diag(diag(X));
        t>=0;
    cvx_end

where matrices A, B, and C are complex. gamma is a real number. For optimizing variables, X is a real diagonal matrix, and t is a real value.

The error information is shown as below:

Disciplined convex programming error:
    Only scalar quadratic forms can be specified in CVX
.

Error in test_EstChannel_MinCapacity (line 54)
        t*eye(Nr) - (A+B*X*C)*(A+B*X*C)' == hermitian_semidefinite(Nr);

The problem has been proved to be convex. I am confused about this error. And I want to know how to solve this optimization problem using cvx, or other convex optimization toolbox.

If you can help me for this problem, thank you in advance.

t*eye(Nr) - (A+B*X*C)*(A+B*X*C)' == hermitian_semidefinite(Nr);
is the Schur complement of what you want.

You want the LHS to have 4 blocks. Put t*eye(Nr) in the upper left, eye of appropriate dimension in lower right. and (A+B*X*C) and (A+B*X*C)' on the off-diagonal in the order which is dimensionally correct (conformal).

It is also better to declare variable X(L,L) diagonal (which implies symmetric) and omit X==diag(diag(X));

See section A.5.5 of https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf .

Hi Mark,

Thanks for your quick response, which is very helpful. I will try the schur complement and the mentioned reference to see whether this problem will be solved. Nice day.