可重构智能表面RIS/智能反射面IRS 代码思路讲解与分析

大家好,我是convexRIS,一个专注于代码与讲解的博主。随着无线通信技术的快速发展,越来越多的无线设备涌入到了互联网中,不仅对日益稀缺的频谱资源造成了巨大压力,而且使得能量消耗不断提升。可重构智能表面(RIS)因其低功耗、低成本和可重新配置无线传播环境等特性,成为了下一代无线通信中极具前景的革命性技术。近年来,学术圈已对RIS展开了充分的讨论与研究,这篇博客将对一篇关于RIS和物理层安全的文章展开代码思路的讲解与分析,希望各位能多多点赞和支持!

论文题目:Secrecy Rate Maximization for Intelligent Reflecting Surface Assisted Multi-Antenna Communications

发表期刊:IEEE COMMUNICATIONS LETTERS 

首先简单介绍一下论文,这篇论文考虑了一个RIS辅助的下行安全传输系统,包括一个多天线的发射端,一个单天线的用户和一个单天线的窃听(作者也对多天线窃听的情况展开了讨论,本代码只考虑单天线窃听),利用交替优化和MM算法,最大化用户的安全速率。首先设置系统参数:

    Alice=[0,0];%BS location
    IRS=[5,5];%IRS location
    Bob=[30,0];%Bob location
    Eve=[20,-20];%Eve location
    M=3;%number of antennas at the Alice
    P=db2pow(30)*1e-3;%maximum transmit power at the BS
    sigmaB=db2pow(-79)*1e-3;%AWGN at the Bob
    sigmaE=db2pow(-79)*1e-3;%AWGN at the Eve
    C0=db2pow(-30);%path loss
    kr=10;%rician factor
    N=20;%IRS elements
    epsilon=1e-4;%convergence threshold
    Lmax=200;%maximum iteration number

 随后系统参数建模,反射链路莱斯信道,直接链路瑞利信道。为了方便起见,莱斯信道中的Los分量全部设为了1。

%% Channel
HAI=sqrt(C0*(1/norm(IRS-Alice)^2.2))*(sqrt(kr/(kr+1))*ones(N,M)+sqrt(1/(kr+1))*(sqrt(1/2)*randn(N,M)+sqrt(-1/2)*randn(N,M)));
hIB=sqrt(C0*(1/norm(IRS-Alice)^2.6))*(sqrt(kr/(kr+1))*ones(N,1)+sqrt(1/(kr+1))*(sqrt(1/2)*randn(N,1)+sqrt(-1/2)*randn(N,1)));
hIE=sqrt(C0*(1/norm(IRS-Eve)^2.6))*(sqrt(kr/(kr+1))*ones(N,1)+sqrt(1/(kr+1))*(sqrt(1/2)*randn(N,1)+sqrt(-1/2)*randn(N,1)));
hAB=sqrt(C0*(1/norm(Alice-Bob)^3.6))*(sqrt(1/2)*randn(M,1)+sqrt(-1/2)*randn(M,1));
hAE=sqrt(C0*(1/norm(Alice-Eve)^3.6))*(sqrt(1/2)*randn(M,1)+sqrt(-1/2)*randn(M,1));

设置完信道参数后,就要准备交替优化的相关参数设置。首先,设置迭代次数ite=0,一个全为0的空向量obj用来存放目标函数,以及初始化RIS系数向量v:

ite=0;%initialize iteration number 
obj=zeros(1,Lmax);%store objective value in each iteration
v=ones(N,1);%initialize RIS coefficients

接着,第一个子问题是在给定RIS系数的情况下优化基站波束成形向量w,这里论文给出了w的闭式解:

%% step1:optimize w
hB=HAI'*diag(v')*hIB+hAB;
hE=HAI'*diag(v')*hIE+hAE;
A=P*(hB*hB')+sigmaB*eye(M);
B=P*(hE*hE')+sigmaE*eye(M);
[V,D]=eig(A,B);
[~,idx]=max(abs(diag(D)));
w=V(:,idx);
w=P*w/norm(w);

获得基站端的beamforming闭式解后,开始优化RIS的相位。同样的,优化问题可等价于最大化SINR,也等价于最小化SINR的倒数:

 紧接着,利用Dinkelbach并引入辅助变量\mu,将该问题重新构造为:

 显然,将平方项展开并合并同类项后,该优化问题可转化为最小化一个二次型,根据MM原理可找到该二次型的上界并将问题重新构造:

 显然,当\theta向量上每个元素与\beta向量对应元素相位相同时,可获得最优解:

 值得注意的是,\theta会随着\mu的改变而变化,所以论文称获得了RIS相位的semi-closed form expression,是一个准闭式解。子问题2代码如下:

%% step2:optimize v
iteDin=0;
objDin=zeros(1,Lmax);            
mu=0;           
aB=diag(hIB')*HAI*w;
aE=diag(hIE')*HAI*w;
a_B=hAB'*w;
a_E=hAE'*w;
v_=v;
while 1
    iteMM=0;
    objMM=zeros(1,Lmax);
    Phi=aE*aE'-mu*(aB*aB');
    [phi1,eigphi,phi2]=svd(Phi);
    while 1                    
       beta=(eigphi(1,1)*eye(N)-Phi)*v_+mu*a_B'*aB-a_E'*aE;
       v=exp(1i*angle(beta));
       iteMM=iteMM+1;
       objMM(iteMM)=norm(v-v_);
       v_=v;
       if iteMM>1 && (objMM(iteMM)<=epsilon*1e-1 || iteMM>=Lmax)
          break
       end
    end
    mu=(norm(v'*aE+a_E)^2+sigmaE)/(norm(v'*aB+a_B)^2+sigmaB);
    iteDin=iteDin+1;
    objDin(iteDin)=log2(1/mu);
    if iteDin>1 && (abs(objDin(iteDin)-objDin(iteDin-1))/abs(objDin(iteDin-1))<=epsilon 
    || iteDin>=Lmax)
         break
    end
end%endig of Dinkelbach
v=conj(v);

MM算法收敛表现:

Dinkelbach算法收敛表现:

 交替优化收敛表现:

 本期分享就到这里,如有疑问请在评论去留言或私信,再次感谢各位的支持!

猜你喜欢

转载自blog.csdn.net/convexRIS/article/details/131601784