方法总述
仔细读了An Overview of Signal Processing Techniques for RIS/IRS-aided Wireless Systems关于Optimization Techniques for Continuous Phase Shifts.中Optimization Techniques for Discrete Phase Shifts的部分,文章总结归纳的可以说是十分全面了,对于RIS连续相位的优化有13种方法:
1/Relaxation and projection
放缩为
然后取解的相位
2/Semidefinite relaxation (SDR),然后用CVX求解
3/MM方法,同样讲MM,讲的很清晰,解决了我之前看Beamforming Optimization for IRS-Aided Communications With Transceiver Hardware Impairments没解决的问题
4/流型
5/BCD
6/Rank-one equivalents
7/Alternating direction method of multipliers (ADMM)
8/Penalty convex-concave procedure (CCP)
9/Barrier function penalty
10/Accelerated projected gradient
11/Gradient descent approach
12/Heuristic methods(启发式)
13/Deep reinforcement learning
SDR
这里着重将其中的引文Intelligent Reflecting Surface Enhanced Wireless
Network: Joint Active and Passive Beamforming
Design中前半部分集中式算法中涉及到的SDR semidefinite relaxation方法
参数设置
首先讲一下其中的参数设置
点到点MISO
an AP equipped with M antennas
a single-antenna user、
IRS composed of N passive elements
虽然我们关注的是从AP到用户的下行链路通信,但结果也适用于上行链路。由于IRS是无源反射设备,因此我们考虑用于上行链路和下行链路传输的时分双工(TDD)协议,并且在两个链路方向上在IRS处利用信道互易性用于CSI获取
h d H ∈ C 1 × M , h r H ∈ C 1 × N , and G ∈ C N × M \boldsymbol{h}_{d}^{H} \in \mathbb{C}^{1 \times M}, \boldsymbol{h}_{r}^{H} \in\mathbb{C}^{1 \times N} \text {, and } \boldsymbol{G} \in \mathbb{C}^{N \times M} hdH∈C1×M,hrH∈C1×N, and G∈CN×M
θ = [ θ 1 , ⋯ , θ N ] and Θ = diag ( β e j θ 1 , ⋯ , β e j θ n , ⋯ , β e j θ N ) \boldsymbol{\theta}=\left[\theta_{1}, \cdots, \theta_{N}\right] \text { and } \Theta=\operatorname{diag}\left(\beta e^{j \theta_{1}}, \cdots, \beta e^{j \theta_{n}}, \cdots, \beta e^{j \theta_{N}}\right) θ=[θ1,⋯,θN] and Θ=diag(βejθ1,⋯,βejθn,⋯,βejθN)
w ∈ C M × 1 \boldsymbol{w} \in \mathbb{C}^{M \times 1} w∈CM×1AP处线性beamforming(ULA maybe)
公式
User接收的
y
=
(
h
r
H
Θ
G
+
h
d
H
)
w
s
+
z
,
y=\left(\boldsymbol{h}_{r}^{H} \Theta \boldsymbol{G}+\boldsymbol{h}_{d}^{H}\right) \boldsymbol{w} s+z,
y=(hrHΘG+hdH)ws+z,
其中信号功率
γ
=
∣
(
h
r
H
Θ
G
+
h
d
H
)
w
∣
2
.
\gamma=\left|\left(\boldsymbol{h}_{r}^{H} \Theta \boldsymbol{G}+\boldsymbol{h}_{d}^{H}\right) \boldsymbol{w}\right|^{2} .
γ=
(hrHΘG+hdH)w
2.
文章直接说因为SNR increase with
γ
\gamma
γ ,WSR increase with
γ
\gamma
γ,所以直接优化
γ
\gamma
γ
(P1): max w , θ ∣ ( h r H Θ G + h d H ) w ∣ 2 s.t. ∥ w ∥ 2 ≤ p ˉ , 0 ≤ θ n ≤ 2 π , ∀ n = 1 , ⋯ , N . \begin{array}{l} \text { (P1): } \max _{\boldsymbol{w}, \boldsymbol{\theta}}\left|\left(\boldsymbol{h}_{r}^{H} \Theta \boldsymbol{G}+\boldsymbol{h}_{d}^{H}\right) \boldsymbol{w}\right|^{2} \\ \text { s.t. }\|\boldsymbol{w}\|^{2} \leq \bar{p} \text {, } \\ 0 \leq \theta_{n} \leq 2 \pi, \forall n=1, \cdots, N \text {. } \\ \end{array} (P1): maxw,θ (hrHΘG+hdH)w 2 s.t. ∥w∥2≤pˉ, 0≤θn≤2π,∀n=1,⋯,N.
任何
θ
\theta
θ,MRT maximum-ratio transmission为最优,因此
w
∗
=
p
ˉ
(
h
r
H
Θ
G
+
h
d
H
)
H
∥
h
r
H
Θ
G
+
h
d
H
∥
≜
w
M
R
T
\boldsymbol{w}^{*}=\sqrt{\bar{p}} \frac{\left(\boldsymbol{h}_{r}^{H} \Theta \boldsymbol{G}+\boldsymbol{h}_{d}^{H}\right)^{H}}{\left\|\boldsymbol{h}_{r}^{H} \Theta \boldsymbol{G}+\boldsymbol{h}_{d}^{H}\right\|} \triangleq \boldsymbol{w}_{\mathrm{MRT}}
w∗=pˉ
hrHΘG+hdH
(hrHΘG+hdH)H≜wMRT
将之代入
优化问题简化为
稍作变换并展开
P3是一个非凸二阶约束二阶规划问题
引入辅助变量 t t t,变换得到
对于P4这样一个NP_hard问题
这是一个标准凸半定规划(SDP),使用CVX求解,通常,松弛后问题(P5)可能不会导致秩一解,即
rank
(
V
)
≠
1
\operatorname{rank}(\boldsymbol{V}) \neq 1
rank(V)=1。这意味着(P5)的最优目标值仅用作(P4)的上界。因此,需要额外的步骤来从问题(P5)的最优较高秩解构造秩一解。具体地说,首先得到了
V
V
V的特征值分解为
V
=
U
Σ
U
H
\boldsymbol{V}=\boldsymbol{U} \boldsymbol{\Sigma} \boldsymbol{U}^{H}
V=UΣUH
大小为(N + 1)×(N + 1)
然后得到P4的次最优解
利用CVX求P5最优化代码
cvx_begin
variable V(N+1,N+1) symmetric
maximize(trace(R*V))
subject to
for n=1:N+1
V(n,n)==1;
end
V == semidefinite(N+1);
cvx_end
SVD分解,随机生成 r r r并选其最大值对P4进行近似的部分代码
[U,W,Z] = svds(V);%V=U*W*Z'
obj_max=-100;
n=length(W);
for j=1:1000
r=sqrt(1/2)*(randn(n,1)+1i*randn(n,1));%sqrt(var/2)*(randn(1,N)+1i*randn(1,N))
v_=U*sqrt(W)*r;
obj=(v_'*R*v_);
if obj>=obj_max
obj_max=obj;
v_max=v_;
end
end
总代码(是文章作者放到github上的,不是自己写的,贴在这里便于理解)
%centralized algorithm
%fig 4
clc
clear all
P=10^(5/10)/1000;%5dBm dBm转化为实际功率的绝对值W=(power(10,dBm/10))/1000
P_noise=10^(-80/10)/1000;%-80dBm
M=8;N=50;
d0=51;
dv=2;
D=0;
%
% Hr_H=(randn(1,N)+1i*randn(1,N))/sqrt(2);%Rayleigh
% Hd_H=(randn(1,M)+1i*randn(1,M))/sqrt(2);%Rayleigh
for i=1:N
Hr_H(1,i)=1;%/sqrt(2)+1i/sqrt(2);
end
for i=1:M
Hd_H(1,i)=1;%/sqrt(2)+1i/sqrt(2);
end
kdb=1000;
k=10^(kdb/10);
g=sqrt(k/(k+1))+sqrt(1/(k+1)).*(randn(1,M)+1i*randn(1,M))/sqrt(2);%Rician
%g=zeros(1,M)+1;
for j=1:N
%20*log10(51) + 20*log10(28*10^6)-147.55=35.5446dB
%g2=g.*sqrt(10^(-3).*10^(5/10).*10^(-35.5446/10));
%g2=g.*sqrt(10^(-3).*10^(5/10)./(4*pi/10^(5/10)*d0^2));
g2=g.*sqrt(10^(-3).*10^(5/10).*d0^-2.2);
G(j,:)=g2;
end
for d=15:5:50
d_hr=sqrt((d0-d)^2+dv^2);%d2
d_hd=sqrt(d^2+dv^2);%d1
hr_H=Hr_H.*sqrt(10^(-3).*10^(-10/10).*10^(5/10).*d_hr^-3);
hr=hr_H';
hd_H=Hd_H.*sqrt(10^(-3).*10^(-10/10).*d_hd^-3);
hd=hd_H';
% hr_H=Hr_H.*10^(-1.5).*10^(-5/10).*d_hr^-1.5.*10^(2.5/10);
% hr=hr_H';
% hd_H=Hd_H.*10^(-1.5).*10^(-5/10).*d_hd^-1.5;
% hd=hd_H';
Phi=diag(hr_H)*G;
R_=[Phi*Phi' Phi*hd;hd_H*Phi' 0];
R=round(R_,15);
ishermitian(R)
%%%%%%%%%%%%
cvx_begin
variable V(N+1,N+1) symmetric
maximize(trace(R*V))
subject to
for n=1:N+1
V(n,n)==1;
end
V == semidefinite(N+1);
cvx_end
% cvx_begin
% variable V(N+1,N+1) symmetric
% maximize(trace(R*V));
% subject to
% diag(V)==1;
% V == semidefinite(N+1);
% cvx_end
%%%%%%%%%%%%
[U,W,Z] = svds(V);%V=U*W*Z'
obj_max=-100;
n=length(W);
for j=1:1000
r=sqrt(1/2)*(randn(n,1)+1i*randn(n,1));%sqrt(var/2)*(randn(1,N)+1i*randn(1,N))
v_=U*sqrt(W)*r;
obj=(v_'*R*v_);
if obj>=obj_max
obj_max=obj;
v_max=v_;
end
end
t=v_max(N+1);
for j=1:N
v(j,:)=exp(1i*angle(v_max(j)/t));
%v(j,:)=v_max(j)/t;
end
% for i=n+1:N
%
% v(i,:)=0;
%
% end
w=sqrt(P).*(v'*Phi+hd_H)'./norm(v'*Phi+hd_H);
obj_final=P*(norm(v'*Phi+hd_H))^2;
obj_final2=(abs((v'*Phi+hd_H)*w))^2;
SNR=10*log10(obj_final/P_noise);%dB
D=D+1;
SNR_re(D)=SNR;
end
hold on
plot([15:5:50],SNR_re)%d~SNR
grid on
xlabel('AP-user horizontal distance, d');
ylabel('Receive SNR (dB)');
title('Fig. 4 in the Paper');
axis([])
hold off