RIS的连续相位优化方法之一——SDR方法

方法总述

仔细读了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方法

参数设置

首先讲一下其中的参数设置

RIS的连续相位优化方法之一——SDR方法_第1张图片
点到点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} hdHC1×M,hrHC1×N, and GCN×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} wCM×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. w2pˉ0θn2π,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)HwMRT

将之代入
优化问题简化为
RIS的连续相位优化方法之一——SDR方法_第2张图片

稍作变换并展开
RIS的连续相位优化方法之一——SDR方法_第3张图片

RIS的连续相位优化方法之一——SDR方法_第4张图片
P3是一个非凸二阶约束二阶规划问题

引入辅助变量 t t t,变换得到

RIS的连续相位优化方法之一——SDR方法_第5张图片
对于P4这样一个NP_hard问题

RIS的连续相位优化方法之一——SDR方法_第6张图片
RIS的连续相位优化方法之一——SDR方法_第7张图片
这是一个标准凸半定规划(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的次最优解
在这里插入图片描述
RIS的连续相位优化方法之一——SDR方法_第8张图片

利用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上的,不是自己写的,贴在这里便于理解)

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









你可能感兴趣的:(RIS,beamforming,优化,信息与通信)