indent preformatted text by 4 spaces
Nt = 10;
Nrf = 4;
h = rand(Nt,1)+1i*rand(Nt,1);
f1 = rand(Nrf,1)+1i*rand(Nrf,1);
F1 = rand(Nt,Nrf)+1i*rand(Nt,Nrf);
cvx_begin
variable F(Nt,Nrf) complex
minimize (real(h'*F*(f1*f1')*F'*h))
subject to
norm(F,'fro')<=1
cvx_end
the hessisan matrix of the objective function is 2(\mathbf{f}\mathbf{f}^H )\otimes(\mathbf{h}\mathbf{h}^H) is semidefinite, thus the objective function is a convex function
sorry, it is convex. so you can only minimize it in CVX.
minimize(norm(h'*F*f1,'fro'))
thanks you very much, i have got it
The norm(,‘fro’) trick works here, and is especially useful when there is trace(matrix). It is a good formulation here.
But in this case, it would also be sufficient to apply “grouping” via parentheses, which ensure that a vector transpose is multiplied by itself, which is allowed by CVX as constituting a convex expression because it is a convex quadratic.
minimize((f1'*F'*h)'*(f1'*F'*h))
as a side bonus, the real
is not necessary when doing it this way.
or
x = f1'*F'*h;
minimize(x'*x)
ok, thank you very much, i have got it