clc
clear all
N=3; %number of antennas
K=2; %number of users
channel=sqrt(1/2)*(randn(N,K)+1j*randn(N,K));
SINR_constraint_dB=(0:5:40);
N0=1;
for SINR_constraint_dB=0:5:40
SINR_constraint=10.^(SINR_constraint_dB/10);
cvx_solver sedumi
cvx_begin
for i=1:K
H(:,:,i)=channel(:,i)*channel(:,i)';
end
variable T(N,N,K) hermitian semidefinite
expression a(K+1);
a(1)=0;
for k=1:K
a(k+1)=a(k)+trace(T(:,:,k));
end
minimize a(K+1);
subject to
expression b;
for ii=1:K
b=trace(H(:,:,ii)*T(:,:,ii));
expression c(K+1);
c(1)=0;
for k=1:K
c(k+1)=c(k)+trace(H(:,:,ii)*T(:,:,k));
end
b >= SINR_constraint*((c(K+1)-b)+N0);
end
cvx_end
end
There is error in this code:
Error using cvxprob/newcnstr (line 192)
Disciplined convex programming error:
Invalid constraint: {complex affine} >= {complex affine}
Error in >= (line 21)
b = newcnstr( evalin( ‘caller’, ‘cvx_problem’, ‘[]’ ), x, y, ‘>=’ );
Error in test1 (line 32)
b >= SINR_constraint*((c(K+1)-b)+N0);
How can I solve this problem?