The problem:
This problem is a convex problem when I fix other variables ,and I use CVX to solve this problem, but appear a error as follow, main error in the code is:
temp_k - temp__k >= sigma_0trace(V(:,i)'Q_aWW’Q_a’V(:,i))+sigma_rftrace(V(:,i)'Q_aQ_a’V(:,i)) +V(:,i)’ R_qqV(:,i);
The error at Matlb:
Disciplined convex programming error:
Invalid constraint: {complex affine} >= {complex constant}
出错 >= (第 21 行)
b = newcnstr( evalin( ‘caller’, ‘cvx_problem’, ‘[]’ ), x, y, ‘>=’ );
出错 FUNCSET>Get_p (第 384 行)
temp_k - temp__k >= sigma_0trace(V(:,i)'Q_aWW’Q_a’V(:,i))+sigma_rftrace(V(:,i)'Q_aQ_a’V(:,i)) +V(:,i)’
R_qqV(:,i);
The code:
function update_p = Get_p(K,V,Q_a,RF_impair,W,H_BI,IRS_impair,H_r,phi,R_qq,sigma_0,sigma_rf,gama,p_max)
cvx_begin quiet
%cvx_solver Mosek
variable p(K,1)
minimize(sum§)
subject to
for i =1:1:K
temp__k = 0;
G_i = diag(vec(H_r(:,i)));
temp_k = p(i)/gamaV(:,i)'Q_a * RF_impairWH_BIIRS_impairG_iphi(V(:,i)‘Q_a * RF_impairWH_BIIRS_impairG_iphi)’;
for j =1:1:K
if j ~= i
G_j = diag(vec(H_r(:,j)));
temp__k = temp__k + p(j)V(:,j)'Q_a * RF_impairWH_BIIRS_impairG_jphi(V(:,j)‘Q_a * RF_impairWH_BIIRS_impairG_jphi)’;
end
end
temp_k - temp__k >= sigma_0trace(V(:,i)'Q_aWW’Q_a’V(:,i))+sigma_rftrace(V(:,i)'Q_aQ_a’V(:,i)) +V(:,i)’ R_qqV(:,i);
0 <= p(i) <= p_max;
end
cvx_end