-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfunc_opt_2RISs_wu.m
More file actions
35 lines (26 loc) · 834 Bytes
/
Copy pathfunc_opt_2RISs_wu.m
File metadata and controls
35 lines (26 loc) · 834 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function [PR_wu, PR_pc] = func_opt_2RISs_wu(HT,HR,H21,typeRIS,NG)
% Optimize RIS with widely used model and evaluate on widely used and physics-compliant models
[N, NT] = size(HT);
NR = size(HR,1);
T2 = -eye(N);
PR_loop = zeros(1,1e3);
for iIter = 1:1e3
% Optimize T1
HR1 = HR*T2*H21;
HT1 = HT;
[~, T1] = func_opt_RIS_MIMO(zeros(NR,NT),HR1,HT1,typeRIS,NG);
% Optimize T2
HR2 = HR;
HT2 = H21*T1*HT;
[~, T2] = func_opt_RIS_MIMO(zeros(NR,NT),HR2,HT2,typeRIS,NG);
% Compute PR at this iteration
PR_loop(iIter+1) = norm(HR*T2*H21*T1*HT) ^ 2;
% Stopping condition
if (PR_loop(iIter+1) - PR_loop(iIter))/PR_loop(iIter) < 1e-3
%iIter
break;
end
end
PR_wu = PR_loop(iIter+1);
PR_pc = norm(HR*(T2-eye(N))*H21*(T1-eye(N))*HT) ^ 2;
end