clc;
clear;
%--------ρ-----------
n0=10^(-3);
Pc=0.002;
band=1;
% Pmax=0.03; %15dbm,19.9=43dBm
Pmax=1; %30dBm
% Pmax=0.1; %20dBm
% Pmax=0.01; %10dBm
% Pmax=0.001; %0dBm
%% ---------------------------------
dBI=100;
dIU=5;
dBU=sqrt(dBI^2+dIU^2);
%----------------
M=2;
N=4;
K=2;
%-------------------------------- %L(d)=p(d/d0)^a,
A=-20;
LdBI=10^(A/10)dBI^(-3);
LdIU=10^(A/10)dIU^(-2);
LdBU=10^(A/10)dBU^(-3);
%---------Rayleigh------------------
s1 =[-0.9084 - 1.1257i 0.1177 - 1.0836i;
1.1755 - 0.3415i 1.1136 + 0.3748i;
-0.6600 + 0.8955i 0.3252 + 0.4514i;
-0.0149 + 0.1448i -0.0573 + 0.3521i];
s2 =[-1.5281 - 0.5202i;
-0.0108 - 0.5741i;
0.2731 - 1.3827i;
-0.7420 - 0.0781i];
s3 =[0.8833 - 0.2750i;
-0.3109 + 0.5178i];
% ---------------------------------------
kl=0.5;
hG=sqrt(LdBI/(kl+1))(sqrt(kl)+s1); %BS-IRS NM
hr=sqrt(LdIU/(kl+1))(sqrt(kl)+s2); %IRS-USER N1
h=sqrt(LdBU/(kl+1))(sqrt(kl)+s3); %BS-USER M*1
% --------perfect CSI-----------------
Hp=[diag(hr’)*hG;h’]; %(N+1)*M
% ---------不完美CSI--------------------------
deltaH=9.9e-12;
Hinp=Hp+deltaH; %Hk=Hk^+ΔHk;
%-------ξ------
xi=1; %(0,1)
%% ---------------------Robust-IRS-EE-------------------%%
% -------Θ0----------
phi=linspace(0,2pi,N);
theta=diag(exp(1iphi)N);
theta1=[theta ones(N,1)]’;
THETA0=theta1theta1’;
%% ------CVX1------
beta0=45;
lambda=n0;
rho1=0.1;
%% — γtar--------
gamma_tar=10e-6;
%-----ek=Rv----------
% v=randn((N+1)*M,1);
v=[-0.7187;-2.6471;-0.3570;-0.6837;-0.4792;-0.3309;-0.1779;-1.9011;2.2352;-1.7464]
% ek=sqrt(0.01)v;
ek=0.01v;
%% ---------------------------------------W-------------------------------------
cvx_begin
variable W(M,M,K) complex hermitian;
variables t(K) u(K);
expressions Rk;
%------sum_all---------
Wkk=0;
for kk=1:K
Wkk=Wkk+W(:,:,kk);
end
%------sum_k+1-K-------
Wi=0;
i=1;
for k=1:K
i=k+1;
if i<=K
Wi=Wi+W(:,:,i);
i=i+1;
end
Wk=W(:,:,k);
end
dk1=sqrt((deltaH^2)*chi2inv(1-rho1,2*M*N))*(1/2); %1*1
Qk1=kron((Wk/gamma_tar-Wi).',THETA0); %(M*N+M)*(M*N+M)
Kk1=Qk1*vec(Hp); %(M*N+M)*1
ck1=vec(Hp)'*Qk1*vec(Hp)-n0;
Qk2=kron((Wk-beta0.*Wi).',THETA0); %(M*N+M)*(M*N+M)
Kk2=Qk2*ek; %(M*N+M)*1
ck2=ek'*Qk1*ek-n0;
%------ΣRk-----
Rk=0;
for k=1:K
Rk=Rk+rel_entr(1,beta0);
end
% Rk=Klog2(1+beta0)
%-------------
result=real(Rk)-lambda(xitrace(Wk)+Pc);
%---------Subject to-------
maximize result;
subject to
%----------------C14------------
for k=1:K
W(:,:,k)==semidefinite(M);
end
%-------C1-------
trace(Wkk)<=Pmax;
%-------C4-----------------
Qk1=kron((Wk/gamma_tar-Wi).’,THETA0); %(MN+M)(MN+M)
%--------C5----------
Kk1=Qk1vec(Hp); %(MN+M)1
%-----------C6--------------------------------
ck1=vec(Hp)'Qk1vec(Hp)-n0^2; %11
%----------C7------------
for k=1:K
[Qk1+eye(MN+M)t(k) , Kk1 ;
Kk1’, ck1-t(k)dk1.^2]==hermitian_semidefinite(MN+M+1);
t(k)>=0;
end
%----------C9------------
dk1=sqrt((deltaH^2)chi2inv(1-rho1,2MN)(1/2)); %11
for k=1:K
[Qk2+eye(MN+M)u(k) , Kk2 ;
Kk2’, ck2-u(k)]==hermitian_semidefinite(MN+M+1);
end
%====CVX_end=====
cvx_end
for k=1:K
tj(k)=t(k);
uj(k)=u(k);
end
%---------------
Wkk=0;
for kk=1:K
Wkk=Wkk+W(:,:,kk);
end
%-------------
Wi=0;
i=1;
for k=1:K
i=k+1;
if i<=K
Wi=Wi+W(:,:,i);
i=i+1;
Wk=W(:,:,k);
end
end
%% ----------------------------------------------beta0-------------------------------------
%beta0<=Wk/Wi
cvx_begin
variable beta0;
expressions Rk1;
Qk2=kron((Wk-beta0.Wi).’,THETA0); %(MN+M)(MN+M)
Kk2=Qk2ek; %(MN+M)1
ck2=ek’Qk2ek-n0^2;
Rk1=0;
for k=1:K
Rk1=Rk1+rel_entr(1,beta0);
end
result2_beta0=real(Rk1)/(xitrace(Wkk)+Pc);
maximize -result2_beta0
subject to
for k=1:K
[Qk2+eye(M*N+M)uj(k) , Kk2 ;
Kk2’, ck2-uj(k)]==hermitian_semidefinite(MN+M+1);
end
beta0<=Wk/Wi;
cvx_end
I don’t know how to adjust the parameter.