Recently, I have formulated a beamforming problem and successfully solved it by using SDR method and CVX solver.
The problem in CVX is shown as below,
Z = J^2/gamma;
cvx_begin
variable F(J,J) hermitian semidefinite
variable u nonnegative
A = (as_ele_Tx * as_ele_Tx').';
minimize( u )
subject to
trace(A * F) >= Z;
for i = 1:(K_num)
temp_H = [];
temp_H = Hm(i,:)' * Hm(i,: );
trace(temp_H * F) <= u;
end
for ii=1:J
Q = zeros(J,J);
Q(ii,ii) = 1;
trace(Q * F) == 1;
end
cvx_end
where gamma, K_num and J \in \mathbb{R}^{+} are known scalars. as_ele_Tx \in \mathbb{C}^{J} is the known steering vector (beamforming term, which represents the phase difference of the signal that arrives at the array antennas due to different angle of arrivals), where the modulus of each entry of it is 1 and the phase difference between each entry will varies due to different angles. Hm \in \mathbb{C}^{J\times J} is a known matrix. And J is 36 in my specific simulation condition.
As for the formulation above, I utilized the SDR method, which means I relaxed the rank-1 constraint and the original variable is \mathbf{f}\in \mathbb{C}^{J},\ \mathbf{F}=\mathbf{ff}^H.
However, when I was recovering the solution of \mathbf{f} (by choosing the eigenvector of the largest eigenvalue), I found that the sum of the eigenvalues of the solved PSD matrix is always 36, even for different as_ele_Tx and gamma (By different as_ele_Tx I mean, for my simulation, the signal might have different angles of arrival, then the phase different in as_ele_Tx could be different. gamma is a parameter between 1 and 2 for different situations). And I can’t figure out why. Could anyone enlighten me a little bit?