IRS中波束赋形设计源代码之AO算法学习(持续更新,多多交流)
论文:Weighted Sum-Rate Maximization for Reconfigurable Intelligent Surface Aided Wireless Networks
源代码
2020/7/12
完成:
1、搞清楚了论文中向量,矩阵的设置在代码中的对应
2、信道参数设置
function [K,N,M,chanRealNum,pathLossDire,pathLossIndire,...
pd,pid,UserArriAngle,ApTranAngle,IrsArriAngle,...
Hd_w,theta_init,RicFac,RicFac1,RicFac2,G_sig,Hr_sig] = parameters()
%重要参数生成函数
K = 4; %用户数目,单天线
N = 100; %IRS元件个数
M = 4; %发射端发射天线数目
chanRealNum = 100; %信道实现数目
%损耗
pathLossDire = [0.9, 0.95, 0.99, 1.1];
%path_d = 10^((-noise-Ld)/10) 为什么这样算路径功率损耗?
pathLossIndire = [0.00012,0.00014,0.00016,0.00018];
pd = sqrt(pathLossDire);%直接链路损耗(AP-user)
pid = sqrt(pathLossIndire);%间接链路损耗(AP-IRS-user)
pd = repmat(pd.',1,M);%repmat(A,m,n) 将矩阵A复制m x n 块,并且平铺格式是m x n
pid = repmat(pid.',1,N);
%出发角与到达角
%注:因为考虑的是MISO系统,所以用户接收端(单天线),不考虑到达角
UserArriAngle = rand(1,K); %Hd信道出发角
ApTranAngle= rand(1,1); %G信道出发角
IrsArriAngle = rand(1,1);%G信道到达角
%信道Hd(瑞利信道)初始化
Hd_w = zeros(K,M,chanRealNum); %hdk转置
theta_init = zeros(N,1,chanRealNum);
for i = 1:chanRealNum
Hd = sqrt(1/2).*(randn(K,M) + 1j.*r