寒假总结工作

2022/3/1 23:21:31

本文主要是介绍寒假总结工作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

智能反射面增强无线网络的加权和速率优化

模型

  • 仿真当中假设所有相关信道的CSI已知。

 

正在上传…重新上传取消

  • 对象:IRS辅助的多用户多输入单输出的下行通信系统,考虑到了实际的IRS情况,无源元件只能将入射信号偏移到离散的相位水平

  • 方式:通过联合优化基站的有源波束形成和IRS的无源波束形成

  • 目标:最大化所有用户的加权和速率

  • 目前研究:

    • 通过联合波束形成最小化发射功率

    • 最大化总速率和能效

    • 最大化用户的最小信噪比

    • 最大用户加权和速率

  • 对于目标函数的处理:

    • 通过拉格朗日对偶变换解耦合问题

    • 交替优化主被动波束形成

    • 基于分式规划方法优化基站的主动波束形成

    • 提出三种基于封闭表达式的被动波束形成算法

      • 理想反射系数假设

      • 连续相移假设

      • 离散实际相移假设

  • 设计统一的无源波束形成子问题算法:适用于连续和离散相移假设,即将反射系数约束放宽到理想凸集,三种相移的可行集F:

    • 理想RC:只限制RC的峰值功率

      F1={θn|θn|2≤1}
    • 连续相移器:假设反射元件的反射信号强度最大,反射元件仅能调节入射信号相位

      F2={θn|θn=ejϕn, ϕn∈[0,2π)}.
    • 离散相移:θn仅在θn=ejϕn上取等距的τ个离散值

      F3={θn|θn=ejϕn, ϕn∈ {0,2π/τ ,...,2π(τ−1)/τ}}

目标即问题的表述

  • 发射功率约束,联合设计波束形成,最大化所有用户的WSR:

正在上传…重新上传取消

  • 思路:由香农公式得到最大化加权和速率,目标函数和约束均是非凸的,接下来通过拉格朗日对偶函数解耦,再通过二次分式规划转化得到最优解。

  • 通过引入一个人工辅助变量, α = [ α1 ,..., αk , ... , αK ] T,(P1)目标函数可以转化为:

正在上传…重新上传取消

  • 转换的意义:当固定后续α进行交替优化迭代时,对 W , Θ 的优化的目标函数就等效为:

    正在上传…重新上传取消

  • 拉格朗日对偶转化:(在Fractional Programming for Communication Systems—Part II: Uplink Scheduling via Matching 一文中给出的定理)

    正在上传…重新上传取消

  • 二次转换:

    正在上传…重新上传取消

  • 这样转换的优势在于, 转换后的问题已经不再有逆矩阵的棘手形式, 从而简化了求解。

  • 利用这一定理, f 2 (W) 即可重写为: 正在上传…重新上传取消

  • 对 f 2 (W) 的优化也是使用了交替优化。 而当固定其他变量时, f 2 (W) 对于 β 和 w 都是凹函数, 因此,可以直接用求导为0,求出两者的闭式解。

优化IRS系数

  • 固定了其他变量之后, 我们提取出原目标函数中和 IRS 系数矩阵相关的项, 即:

正在上传…重新上传取消

利用:正在上传…重新上传取消

简化:

正在上传…重新上传取消

  • 利用分式规划二次转换:

正在上传…重新上传取消

固定θ时, ε 的最优解就可以通过求导为0来推出。最后目标函数改写:

正在上传…重新上传取消

其中,正在上传…重新上传取消

  • 三种子问题算法:

    • 最近点投影(NPP)

      这里 U 是半正定已知矩阵,v 是已知向量。显然可知, f4a 是一个关于 θ的凹函数。那么如果当 F 为凸集时,则可以通过 SDR 方法, 直接进行求解。 然而 SDR 方法有个较大的问题在于,复杂度过高, 且存在一定的性能损失。因此作者旨在提出更先进的算法。由于∣θn∣2 ∈F1是凸集, 而 ∣θn∣2 ∈ F2和∣θn∣2∈ F3 并不是, 因此作者的思想是,先以∣θn∣2∈F1求解问题,然后将该解投影到 F2 和 F3上来取得一个次优解。因此,这个算法也被命名为最近点投影。

    • 元素迭代

      由于限制条件都是针对 θ的单一元素的(和其他元素并不耦合), 因此一个直接的想法就是可以固定向量中的其余元素,单独优化一个元素, 并循环往复进行迭代.

    • ADMM(交替方向乘子法)

      正在上传…重新上传取消

    • g 此处是 F的示性函数。 那么其对应的拉格朗日增广函数为:

正在上传…重新上传取消

我们开始以 G 为目标进行求解这一对偶问题如下:

正在上传…重新上传取消

如果 F =F1那么原问题和对偶问题的最优解是一致的, 即没有 duality gap. 否则, 是存在一定最优性损失的。 这个可以参考博客【凸优化关于 KKT 条件 及其最优性。 接下来, 通过 ADMM 算法求解该对偶问题,为:

正在上传…重新上传取消

  • 第二步是关于q的凸函数,很容易得到闭式解:

正在上传…重新上传取消

  • 看第一步, 把 G 中 与 θ 相关的项取出, 问题可写为: 正在上传…重新上传取消

加入无关的常数项,问题改写:

正在上传…重新上传取消

想要最大化上式,结果为:

正在上传…重新上传取消

仿真

  • 仿真场景:

    正在上传…重新上传取消

  • 产生随机信道分为三部分:

    • “generate_location.m":用户位置的随机

      %% generate new location for the K users
      close all
      clear all
      ​
      K=4;
      %%
      Pt=zeros(K,2);
      %%
      Lroom=200;
      Wroom=30;
      k1=[1,0];
      k2=[0,1];
      R=10;
      %%
      for k0=1:K
          r=rand(1,1)*R; %产生一个一行一列的随机数乘以半径
          theta=rand(1,1)*2*pi; %数值
          px=r*cos(theta);%数值
          py=r*sin(theta);%数值
          pt=[Lroom,Wroom]+px*k1+py*k2; %产生一行两列一组的随机用户位置
          Pt(k0,:)=pt; %产生四组随机位置
      end
      %%
      save('user_location.mat','K','Pt','Lroom','Wroom','R');
      figure
      plot(Pt(:,1),Pt(:,2),'ro');
      xlim([Lroom-R,Lroom+R]);ylim([Wroom-R,Wroom+R]);
      hold on
      theta=linspace(0,1,100).*2.*pi; %1*100
      hold on
      plot(Lroom+R*cos(theta),Wroom+R*sin(theta),'r.') 
    • 结果图

    正在上传…重新上传取消

    • ”generate_pathloss.m":根据用户位置计算路径损失

      %% compute the pathloss according to the users' locations
      close all
      clear all
      ​
      load('user_location.mat','K','Pt','Lroom','Wroom','R');
      %% 
      AP=[0,0];%基站的位置
      %%
      IRS=[200,0];%IRS位置
      d_g=sqrt(sum(abs(AP-IRS).^2));%相当于AP到RIS路径空间距离
      L_g=path_LOS( d_g ); %AP到RIS路损
      %% IRS-assist link
      Lu=zeros(1,K);
      for k0=1:K
          pt=Pt(k0,:)-IRS;
          du=sqrt(sum(abs(pt).^2)); %irs到第k个用户空间上的距离
          Lu(k0)=path_LOS( du ); %RIS到每个用户路径损耗
      end
      Lu=Lu+L_g; %级联G和hr,k路径的损耗
      %% direct link
      Ld=zeros(1,K);
      for k0=1:K
          pt=Pt(k0,:)-AP;
          dk=sqrt(sum(abs(pt).^2));
          Ld(k0)=path_NLOS( dk );
      %     Ld_test(k0)=path_LOS( dk );
      end
      Lu-Ld
      %%
      save('user_pathloss.mat','K','Lu','Ld');

    • “generate_channel.m":产生理想随机信道

       %% Generate the channel coefficients
      close all
      clear all
      ​
      %%
      load('user_pathloss.mat','K','Lu','Ld');
      %%
      noise=-170+10*log10(180*1e3); 
      path_d=10.^((-noise-Ld)/10);%ris
      path_i=10.^((-noise-Lu)/10);%BS-User
      %%
      ite=1e2;
      %%
      N=100;
      M=4;
      %%
      pd=sqrt(path_d);%ris
      pd=repmat(pd.',1,M); 
      ps=sqrt(path_i);%BS-User
      ps=repmat(ps.',1,N);
      %% theta_init, channel Hd
      Hd_w=zeros(K,M,ite);
      theta_init=zeros(N,1,ite);
      for j0=1:ite 
          Hd=sqrt(1/2).*(randn(K,M)+1j.*randn(K,M));
          theta=exp(1j.*rand(N,1).*2.*pi);
          %%
          Hd_w(:,:,j0)=Hd; %产生的100个快照
          theta_init(:,:,j0)=theta;
      end
      %%
      eb=10;
      eb2=1/(1+eb);
      eb1=1-eb2;
      eb1=sqrt(eb1);
      eb2=sqrt(eb2);
      %% channel G
      AP_angle=rand(1,1);
      IRS_angle=rand(1,1);
      G_sig=zeros(N,M,ite);
      for i0=1:ite
          G_sig(:,:,i0)=sqrt(1/2).*(randn(N,M)+1j.*randn(N,M));
      end
      %% channel Hr_w
      User_angle=rand(1,K);
      Hr_sig=zeros(K,N,ite);
      for i0=1:ite
          Hr_sig(:,:,i0)=sqrt(1/2).*(randn(K,N)+1j.*randn(K,N));
      end
      %%
      save('user_channel.mat','K','N','M','ite','pd','ps','Hd_w','theta_init','AP_angle','IRS_angle',...
          'G_sig','User_angle','Hr_sig','eb1','eb2','path_d','path_i');

  • 算法主代码:

    • 无RIS

    • 随机相位RIS

    • 完美CSI设置下算法

  • 仿真结果图



这篇关于寒假总结工作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程