引言
文章智能反射面RIS经典论文复现,主被动式波束赋形主要复现了IRS经典论文《Intelligent Reflecting Surface Enhanced Wireless Network via Joint Active and Passive Beamforming》中的单用户部分,本文给出其多用户部分的复现及代码,其中可能有些参数没有对齐,不过收敛趋势与原论文相近,全部代码由本人完成,基本完成复现。
主要内容
该部分主要考虑在存在多用户时,如果设计基站的主动波束以及IRS的系数矩阵,使得在保证各用户Qos的情况下,使得基站的发射功率最小化。其系统结构图如下:
![](https://i-blog.csdnimg.cn/blog_migrate/92f656700a242022f1c06010d5798739.png)
文章中采用的迭代优化的算法,在固定IRS系数矩阵的情况下优化基站的主动波束矩阵,然后固定
优化IRS的系数矩阵
。
固定IRS相位,优化基站波束
首先当固定IRS的系数矩阵时,将从AP到用户的信道写成一个组合信道
,则原优化问题退化为一个传统多用户MISO下行广播信道中的在QoS约束下的功率最小化问题,即
![](https://i-blog.csdnimg.cn/blog_migrate/af525a23103bc7f5346e6be862601226.png)
论文中没有详细给出具体推导的过程,只给出了求解的方法及参考文献,该问题可以转化为二阶锥规划(SOCP),半正定规划(SDP)或者是基于上下行对偶性的内点法。在此,参考文献[1]给出基于SOCP的解法,首先当给定IRS的相位时,优化AP的波束向量,使得在满足QoS约束下,最小化基站发射功率,可采用SOCP进行求解,优化问题中,目标函数是凸函数,只需要对QoS约束进行变形为凸约束即可, 由于SINR中需要取绝对值,因此和加入相位旋转后的
对SINR的值并没有影响,因此可以通过该技巧,将内积
通过相位旋转为正的实数,即可得到 |hkHwk|2=hkHwk≥0
,因此有:
因此将QoS约束转化为一个二阶锥约束。
固定基站波束,优化IRS相位
![](https://i-blog.csdnimg.cn/blog_migrate/3b36728936814869bf41dc518e07d1ca.png)
仿真
信道模型可以参考智能反射面RIS经典论文复现,主被动式波束赋形一文,多用户的仿真中,莱斯因子与单用户的场景不同,需要注意。
系统参数
clc
clear
Uk = 4; % 4个用户,图7仿真,假设U_k, k=1,2,3,4是活跃用户
epsilon = 1e-4; % 收敛停止条件
d0 = 51; % AP到IRS之间的距离
dv = 2; % 两条竖线之间的距离
d1 = 20; % AP到User之间的距离
d2 = 3; % User到IRS之间的距离
d_Au = [d1; sqrt((d0-d2*cos(2*pi/5))^2+(d2*sin(2*pi/5)^2));d1;sqrt((d0-d2*cos(pi/5))^2+(d2*sin(pi/5)^2))]; % AP和User之间的距离
theta_Au = [7*pi/4;2*pi-atan(d2*sin(2*pi/5)/(d0-d2*cos(2*pi/5)));pi/4;2*pi-atan(d2*sin(pi/5)/(d0-d2*cos(pi/5)))]; % AP和User1,2,3,4之间的方位角
d_Iu = [sqrt((d0-d1*cos(pi/4))^2+(d1*sin(pi/4)^2));d2;sqrt((d0-d1*cos(pi/4))^2+(d1*sin(pi/4)^2));d2]; % IRS和User之间的距离
theta_Iu = [atan(d1*sin(pi/4)/(d0-d1*cos(pi/4)));2*pi/5;-atan(d1*sin(pi/4)/(d0-d1*cos(pi/4)));pi/5]; % IRS和User1,2,3,4之间的方位角
C0 = db2pow(-30); % 参考距离时的路损
D0 = 1; % 参考距离
sigmaK2 = db2pow(-80); % 噪声功率
gamma = db2pow(20); % 信干噪比约束10dB
L = @(d, alpha)C0*(d/D0)^(-alpha); % 路损模型
% 路损参数
alpha_AI = 2.8;
alpha_Iu = 2.8;
alpha_Au = 3.5;
% 莱斯因子
beta_Au = 0; % AP到User之间考虑瑞利衰落信道
beta_AI = db2pow(3); % AP到RIS之间考虑莱斯信道,莱斯因子为3dB
beta_Iu = db2pow(3); % IRS到User考虑瑞利莱斯信道,莱斯因子为3dB
% 天线数
M = 4; % AP天线数
Nx = 5; % IRS单元个数
Ny = 6;
N = Nx*Ny;
产生信道
G = sqrt(L(d0,alpha_AI))*(sqrt(beta_AI/(1+beta_AI))*ones(N,M)+sqrt(1/(1+beta_AI))*((randn(N,M)+1i*randn(N,M)/sqrt(2)))); % AP和RIS之间的角度都为0°
Hr = zeros(N,Uk);
Hd = zeros(M,Uk);
for i=1:Uk
Hr(:,i) = sqrt(L(d_Iu(i),alpha_Iu)/sigmaK2)*(sqrt(beta_Iu/(1+beta_Iu))*URA_sv(theta_Iu(i),0,Nx,Ny)+sqrt(1/(1+beta_Iu))*((randn(N,1)+1i*randn(N,1)/sqrt(2)))); % IRS-User
Hd(:,i) = sqrt(L(d_Au(i),alpha_Au)/sigmaK2)*((randn(M,1)+1i*randn(M,1)/sqrt(2))); % AP-User
end
仿真主循环
优化基站波束和优化IRS的被动波束交替迭代进行,直至迭代次数大于最大迭代次数或者前后两次迭代的值小于某个阈值:
theta = 2*pi*rand(1,N); % 随机初始化IRS的相位
Theta = diag(exp(1i*theta));
H = zeros(Uk,M);
P_old = 0 ;
P_new = 100;
maxIter = 30;
P = zeros(maxIter);
count = 0;
while(abs(P_old-P_new)>epsilon && count < maxIter)
count = count + 1
for i=1:Uk
H(i,:) = Hr(:,i)'*Theta*G+Hd(:,i)'; % 级联信道
end
W = PMQoSSOCP(H, gamma,M,Uk);
P_opt = pow2db(norm(W,"fro")^2);
P(count) = P_opt;
P_old = P_new;
P_new = P_opt;
v = IRS_MultiUser(W,Hr,Hd,G,N,Uk,gamma);
Theta = diag(v');
end
plot(1:count,P(1:count),'-or','LineWidth',2)
xlabel('Number of iterations')
ylabel('Transmit power at the AP (dBm)')
grid on
优化W函数
当固定IRS系数时,优化W ,需要求解SOCP问题,根据上文分析,信道与波束向量相乘后,虚部为0,在满足K个二次锥约束的情况下,最小化W,主要代码如下:
function W = PMQoSSOCP(H, gamma,M,Uk)
cvx_begin quiet
variable W(M,Uk) complex
minimize(norm(W,"fro"))
subject to
for i=1:Uk
imag(H(i,:)*W(:,i)) == 0; % 保证为只有实部
real(H(i,:)*W(:,i)) >= sqrt(gamma)*norm([1 H(i,:)*W(:,[1:i-1 i+1:Uk])]); % 二次锥约束
end
cvx_end
end
优化IRS系数
根据优化问题,写出相应的CVX函数,由于数SDR问题,需要考虑秩一问题,对得到的解进行高斯随机化操作,即可得到最终的IRS系数矩阵,其代码如下:
% 当给定AP的波束向量时,优化IRS的相位v,求解问题(P4')
function v = IRS_MultiUser(W,Hr,Hd,G,N,Uk,gamma)
L = 1000; % 高斯随机化过程次数
b = Hd'*W;
R = cell(Uk,Uk);
for k=1:Uk
for j=1:Uk
a = diag(Hr(:,k)')*G*W(:,j);
R{k,j} = [a*a' a*b(k,j)';a'*b(k,j) 0];
end
end
cvx_begin quiet
variable V(N+1,N+1) hermitian
variable alpha1(Uk,1)
expression RV(Uk,Uk)
for k=1:Uk
for j=1:Uk
RV(k,j)=trace(R{k,j}*V);
end
end
maximize(sum(alpha1))
subject to
for i=1:Uk
trace(R{i,i}*V)+square_abs(b(i,i))>=gamma*sum(RV(i,[1:i-1 i+1:Uk]))+gamma*(b(i,[1:i-1 i+1:Uk])*b(i,[1:i-1 i+1:Uk])'+1) + alpha1(i);
alpha1(i) >= 0;
end
diag(V) == 1;
V == hermitian_semidefinite(N+1);
cvx_end
% 高斯随机化过程
max_F = 0;
max_v = 0;
[U, Sigma] = eig(V);
for l = 1 : L
r = sqrt(2) / 2 * (randn(N+1, 1) + 1j * randn(N+1, 1));
v = U * Sigma^(0.5) * r;
s = 0;
Vp = v*v';
RVp = zeros(Uk,Uk);
for k=1:Uk
for j=1:Uk
RVp(k,j)=trace(R{k,j}*Vp);
end
end
for i=1:Uk
s = s + real(v'*R{i,i}*v+b(i,i)'*b(i,i)-gamma*sum(RVp(i,[1:i-1 i+1:Uk]))-gamma*(b(i,[1:i-1 i+1:Uk])*b(i,[1:i-1 i+1:Uk])'+1));
end
if real(s)> max_F
max_v = v;
max_F = real(s);
end
end
v = exp(1j * angle(max_v / max_v(end)));
v = v(1 : N);
end
IRS导向矢量产生
URA的导向矢量,表示方位角,
表示俯仰角默认天线距离是半波长。
function ura_sv = URA_sv(theta, phi,Nx,Ny)
m = 0:Nx-1;
a_az = exp(1i*pi*m*sin(theta)*cos(phi)).';
n = 0:Ny-1;
a_el = exp(1i*pi*n*sin(phi)).';
ura_sv = kron(a_az,a_el);
end
实验结果
![](https://i-blog.csdnimg.cn/blog_migrate/5ff789f75fa02d508a6fb6498164201e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/46653c83689efdc51538b2292aa3d327.png)
可以看出其趋势相似且最后收敛较好,数量级可能是由于IRS单元个数,以及信道产生参数等问题,并不影响对优化算法的理解。
总结
本文对经典的IRS文献的多用户场景进行了复现,结果与论文给出的结果基本相近,通过对该论文的复现,增加了对IRS的理解。
欢迎大家批评指正,有不清楚的地方欢迎留言或私信交流。
参考文献
[1] Björnson E, Bengtsson M, Ottersten B. Optimal multiuser transmit beamforming: A difficult problem with a simple solution structure [lecture notes][J]. IEEE Signal Processing Magazine, 2014, 31(4): 142-148.
[2] Luo Z Q, Ma W K, So A M C, et al. Semidefinite relaxation of quadratic optimization problems[J]. IEEE Signal Processing Magazine, 2010, 27(3): 20-34.