How can we do instead of using real instruction to let the complex become meaningful?

First of all,the meaningful in the topic means don’t delete the real part or imaginary part only to the complex number,you can combine them like using abs


There is a code about this formula above

c10_left_hand_up = 0;
sum_10_up = 0;
for j = 1:K
    sum_10_up= sum_10_up +  h_k{k}' * Fk_up{j} * h_k{k};
end
c10_left_hand_up = real(c10_left_hand_up + sum_10_up+nois_var_ak_2pow(1))
c10_right_hand_up=hat_p_up*inv_pos(rho_k_up(k))
c10_left_hand_up>=  c10_right_hand_up

The h_k is a complex gaussian,but in here i can just use the “real” to let the c10_left_hand_up become noncovex or the code can’t run

However,we all know that if we real the complex number,the result will only remain the real part of the complex number,if that,why do i have to set the h_k must be complex in every optimize problem in the communication ?there is no meaning about producing the imaginary part of channel if i use the real instruction.

If i want to let the complex become meaningful,i mean don’t delete the real part or imaginary part only,what can i do instead of just using the “real” instruction?I have try using “abs”,but this will cause the c10_left_hand_up become convex,and the code won’t run