当前位置:   article > 正文

智能反射面RIS经典论文复现,主被动式波束赋形(二)_ris论文复现

ris论文复现

引言

文章智能反射面RIS经典论文复现,主被动式波束赋形主要复现了IRS经典论文《Intelligent Reflecting Surface Enhanced Wireless Network via Joint Active and Passive Beamforming》中的单用户部分,本文给出其多用户部分的复现及代码,其中可能有些参数没有对齐,不过收敛趋势与原论文相近,全部代码由本人完成,基本完成复现。

主要内容

该部分主要考虑在存在多用户时,如果设计基站的主动波束以及IRS的系数矩阵,使得在保证各用户Qos的情况下,使得基站的发射功率最小化。其系统结构图如下:

仿真场景,系统结构图

 文章中采用的迭代优化的算法,在固定IRS系数矩阵的情况下优化基站的主动波束矩阵\mathbf{W},然后固定\mathbf{W}优化IRS的系数矩阵\mathbf{\Theta}

 固定IRS相位,优化基站波束

首先当固定IRS的系数矩阵时,将从AP到用户k的信道写成一个组合信道\mathbf{h}_k^H=\mathbf{h}_{r,k}^H\mathbf{\Theta}\mathbf{G}+\mathbf{h}_{d,k}^H,则原优化问题退化为一个传统多用户MISO下行广播信道中的在QoS约束下的功率最小化问题,即

QoS约束下的功率最小化问题

 论文中没有详细给出具体推导的过程,只给出了求解的方法及参考文献,该问题可以转化为二阶锥规划(SOCP),半正定规划(SDP)或者是基于上下行对偶性的内点法。在此,参考文献[1]给出基于SOCP的解法,首先当给定IRS的相位时,优化AP的波束向量,使得在满足QoS约束下,最小化基站发射功率,可采用SOCP进行求解,优化问题中,目标函数是凸函数,只需要对QoS约束进行变形为凸约束即可, 由于SINR中需要取绝对值,因此\mathbf{w}_k和加入相位旋转后的e^{j\theta_k}\mathbf{w}_k对SINR的值并没有影响,因此可以通过该技巧,将内积\mathbf{h}_k^H\mathbf{w}_k通过相位旋转为正的实数,即可得到 |hkHwk|2=hkHwk≥0 \sqrt{\left | {\mathbf{h}}_k^H{​{\mathbf{w}}_k} \right |^2}={\mathbf{h}}_k^H{​{\mathbf{w}}_k} \geqslant 0,因此有:

\frac{1}{\gamma_k \sigma^2}\left|\mathbf{h}_k^H \mathbf{w}_k\right|^2 \geq \sum_{i \neq k} \frac{1}{\sigma^2}\left|\mathbf{h}_k^H \mathbf{w}_i\right|^2+1 \Leftrightarrow \frac{1}{\sqrt{\gamma_k \sigma^2}} \Re\left(\mathbf{h}_k^H \mathbf{w}_k\right) \geq \sqrt{\sum_{i \neq k} \frac{1}{\sigma^2}\left|\mathbf{h}_k^H \mathbf{w}_i\right|^2+1}

因此将QoS约束转化为一个二阶锥约束。

固定基站波束,优化IRS相位

IRS相位优化问题

仿真

信道模型可以参考智能反射面RIS经典论文复现,主被动式波束赋形一文,多用户的仿真中,莱斯因子与单用户的场景不同,需要注意。

系统参数

  1. clc
  2. clear
  3. Uk = 4; % 4个用户,图7仿真,假设U_k, k=1,2,3,4是活跃用户
  4. epsilon = 1e-4; % 收敛停止条件
  5. d0 = 51; % AP到IRS之间的距离
  6. dv = 2; % 两条竖线之间的距离
  7. d1 = 20; % AP到User之间的距离
  8. d2 = 3; % User到IRS之间的距离
  9. 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之间的距离
  10. 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之间的方位角
  11. 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之间的距离
  12. 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之间的方位角
  13. C0 = db2pow(-30); % 参考距离时的路损
  14. D0 = 1; % 参考距离
  15. sigmaK2 = db2pow(-80); % 噪声功率
  16. gamma = db2pow(20); % 信干噪比约束10dB
  17. L = @(d, alpha)C0*(d/D0)^(-alpha); % 路损模型
  18. % 路损参数
  19. alpha_AI = 2.8;
  20. alpha_Iu = 2.8;
  21. alpha_Au = 3.5;
  22. % 莱斯因子
  23. beta_Au = 0; % AP到User之间考虑瑞利衰落信道
  24. beta_AI = db2pow(3); % AP到RIS之间考虑莱斯信道,莱斯因子为3dB
  25. beta_Iu = db2pow(3); % IRS到User考虑瑞利莱斯信道,莱斯因子为3dB
  26. % 天线数
  27. M = 4; % AP天线数
  28. Nx = 5; % IRS单元个数
  29. Ny = 6;
  30. N = Nx*Ny;

产生信道 

  1. 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°
  2. Hr = zeros(N,Uk);
  3. Hd = zeros(M,Uk);
  4. for i=1:Uk
  5. 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
  6. Hd(:,i) = sqrt(L(d_Au(i),alpha_Au)/sigmaK2)*((randn(M,1)+1i*randn(M,1)/sqrt(2))); % AP-User
  7. end

仿真主循环

优化基站波束和优化IRS的被动波束交替迭代进行,直至迭代次数大于最大迭代次数或者前后两次迭代的值小于某个阈值:

  1. theta = 2*pi*rand(1,N); % 随机初始化IRS的相位
  2. Theta = diag(exp(1i*theta));
  3. H = zeros(Uk,M);
  4. P_old = 0 ;
  5. P_new = 100;
  6. maxIter = 30;
  7. P = zeros(maxIter);
  8. count = 0;
  9. while(abs(P_old-P_new)>epsilon && count < maxIter)
  10. count = count + 1
  11. for i=1:Uk
  12. H(i,:) = Hr(:,i)'*Theta*G+Hd(:,i)'; % 级联信道
  13. end
  14. W = PMQoSSOCP(H, gamma,M,Uk);
  15. P_opt = pow2db(norm(W,"fro")^2);
  16. P(count) = P_opt;
  17. P_old = P_new;
  18. P_new = P_opt;
  19. v = IRS_MultiUser(W,Hr,Hd,G,N,Uk,gamma);
  20. Theta = diag(v');
  21. end
  22. plot(1:count,P(1:count),'-or','LineWidth',2)
  23. xlabel('Number of iterations')
  24. ylabel('Transmit power at the AP (dBm)')
  25. grid on

 优化W函数

当固定IRS系数时,优化W ,需要求解SOCP问题,根据上文分析,信道与波束向量相乘后,虚部为0,在满足K个二次锥约束的情况下,最小化W,主要代码如下:

  1. function W = PMQoSSOCP(H, gamma,M,Uk)
  2. cvx_begin quiet
  3. variable W(M,Uk) complex
  4. minimize(norm(W,"fro"))
  5. subject to
  6. for i=1:Uk
  7. imag(H(i,:)*W(:,i)) == 0; % 保证为只有实部
  8. real(H(i,:)*W(:,i)) >= sqrt(gamma)*norm([1 H(i,:)*W(:,[1:i-1 i+1:Uk])]); % 二次锥约束
  9. end
  10. cvx_end
  11. end

 优化IRS系数

根据优化问题,写出相应的CVX函数,由于数SDR问题,需要考虑秩一问题,对得到的解进行高斯随机化操作,即可得到最终的IRS系数矩阵,其代码如下:

  1. % 当给定AP的波束向量时,优化IRS的相位v,求解问题(P4')
  2. function v = IRS_MultiUser(W,Hr,Hd,G,N,Uk,gamma)
  3. L = 1000; % 高斯随机化过程次数
  4. b = Hd'*W;
  5. R = cell(Uk,Uk);
  6. for k=1:Uk
  7. for j=1:Uk
  8. a = diag(Hr(:,k)')*G*W(:,j);
  9. R{k,j} = [a*a' a*b(k,j)';a'*b(k,j) 0];
  10. end
  11. end
  12. cvx_begin quiet
  13. variable V(N+1,N+1) hermitian
  14. variable alpha1(Uk,1)
  15. expression RV(Uk,Uk)
  16. for k=1:Uk
  17. for j=1:Uk
  18. RV(k,j)=trace(R{k,j}*V);
  19. end
  20. end
  21. maximize(sum(alpha1))
  22. subject to
  23. for i=1:Uk
  24. 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);
  25. alpha1(i) >= 0;
  26. end
  27. diag(V) == 1;
  28. V == hermitian_semidefinite(N+1);
  29. cvx_end
  30. % 高斯随机化过程
  31. max_F = 0;
  32. max_v = 0;
  33. [U, Sigma] = eig(V);
  34. for l = 1 : L
  35. r = sqrt(2) / 2 * (randn(N+1, 1) + 1j * randn(N+1, 1));
  36. v = U * Sigma^(0.5) * r;
  37. s = 0;
  38. Vp = v*v';
  39. RVp = zeros(Uk,Uk);
  40. for k=1:Uk
  41. for j=1:Uk
  42. RVp(k,j)=trace(R{k,j}*Vp);
  43. end
  44. end
  45. for i=1:Uk
  46. 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));
  47. end
  48. if real(s)> max_F
  49. max_v = v;
  50. max_F = real(s);
  51. end
  52. end
  53. v = exp(1j * angle(max_v / max_v(end)));
  54. v = v(1 : N);
  55. end

 IRS导向矢量产生

URA的导向矢量,\theta表示方位角,\phi表示俯仰角默认天线距离是半波长。

  1. function ura_sv = URA_sv(theta, phi,Nx,Ny)
  2. m = 0:Nx-1;
  3. a_az = exp(1i*pi*m*sin(theta)*cos(phi)).';
  4. n = 0:Ny-1;
  5. a_el = exp(1i*pi*n*sin(phi)).';
  6. ura_sv = kron(a_az,a_el);
  7. 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.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/399394
推荐阅读
相关标签
  

闽ICP备14008679号