赞
踩
文章智能反射面RIS经典论文复现,主被动式波束赋形主要复现了IRS经典论文《Intelligent Reflecting Surface Enhanced Wireless Network via Joint Active and Passive Beamforming》中的单用户部分,本文给出其多用户部分的复现及代码,其中可能有些参数没有对齐,不过收敛趋势与原论文相近,全部代码由本人完成,基本完成复现。
该部分主要考虑在存在多用户时,如果设计基站的主动波束以及IRS的系数矩阵,使得在保证各用户Qos的情况下,使得基站的发射功率最小化。其系统结构图如下:
文章中采用的迭代优化的算法,在固定IRS系数矩阵的情况下优化基站的主动波束矩阵,然后固定优化IRS的系数矩阵。
首先当固定IRS的系数矩阵时,将从AP到用户的信道写成一个组合信道,则原优化问题退化为一个传统多用户MISO下行广播信道中的在QoS约束下的功率最小化问题,即
论文中没有详细给出具体推导的过程,只给出了求解的方法及参考文献,该问题可以转化为二阶锥规划(SOCP),半正定规划(SDP)或者是基于上下行对偶性的内点法。在此,参考文献[1]给出基于SOCP的解法,首先当给定IRS的相位时,优化AP的波束向量,使得在满足QoS约束下,最小化基站发射功率,可采用SOCP进行求解,优化问题中,目标函数是凸函数,只需要对QoS约束进行变形为凸约束即可, 由于SINR中需要取绝对值,因此和加入相位旋转后的对SINR的值并没有影响,因此可以通过该技巧,将内积通过相位旋转为正的实数,即可得到 |hkHwk|2=hkHwk≥0 ,因此有:
因此将QoS约束转化为一个二阶锥约束。
信道模型可以参考智能反射面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
当固定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
根据优化问题,写出相应的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
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
可以看出其趋势相似且最后收敛较好,数量级可能是由于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.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。