I want to solve this problem
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
The constraints are not convex so cvx is inapplicable. (I tried CVX previously.)
I am thinking of using matlab optimization toolbox. I tried the following codes but they failed.
Nt = 4 ;
M = 64 ;
Gamma_R = 10^(3/10);
Gamma_T = 10^(3/10);
gamma_r = 0 ;
gamma_t = 0 ;
noise_variance_dBm = -70;
noise_variance = 10^(-70/10)*1E-3 ;
h_r =(randn(M,1)+1i*randn(M,1))/sqrt(2);
h_t =(randn(M,1)+1i*randn(M,1))/sqrt(2);
h_d =(randn(Nt,1)+1i*randn(Nt,1))/sqrt(2);
Phi_r =(diag(diag(rand(M,M)+1i*rand(M,M))))/sqrt(2);
Phi_t =(diag(diag(rand(M,M)+1i*rand(M,M))))/sqrt(2);
for n = 1:length(Nt)
N = Nt(n);
G = (randn(M,N)+1i*randn(M,N))/sqrt(2);
end
theta_r = zeros(M,M) ;
theta_t = zeros(M,M) ;
zeta = zeros(M,M) ;
a_r = [h_r'*Phi_r*G+h_d' , h_r'*Phi_r*G+h_d']*[eye(Nt), zeros(Nt,Nt);zeros(Nt,Nt),zeros(Nt,Nt)]; %.*[2*Nt,2*Nt] ;
a_t = [h_r'*Phi_r*G+h_d' , h_r'*Phi_r*G+h_d']*[zeros(Nt,Nt), zeros(Nt,Nt);zeros(Nt,Nt),eye(Nt)]; %.*[2*Nt,2*Nt] ;
b_r = [h_t'*Phi_t*G , h_t'*Phi_t*G ]*[eye(Nt), zeros(Nt,Nt);zeros(Nt,Nt),zeros(Nt,Nt)] ;
b_t = [h_t'*Phi_t*G , h_t'*Phi_t*G ]*[zeros(Nt,Nt), zeros(Nt,Nt);zeros(Nt,Nt),eye(Nt)] ;
%%
Asc = a_r;
bsc = sqrt(Gamma_R)*sqrt(abs(a_t).^2 + noise_variance^2);
dsc = 0;
gamma = 0 ;
conecons(2) = secondordercone(Asc,bsc,dsc,gamma);
Does anyone have ideas how Matlab toolboxes can be used to solve the problem or how the problem can be solved with matlab based libraries?
7 Commenti
Risposte (1)
Alan Weiss
il 1 Lug 2022
You can use secondordercone by making a new variable m, a linear objective m, and another second-order cone constraint:
Minimize m such that .
You have to be careful when using complex numbers. Optimization toolbox solvers generally don't work well with complex numbers. Please check that you are satisfying the assumptions of the toolbox.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
0 Commenti
Vedere anche
Categorie
Scopri di più su Mathematics and Optimization in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!