引言

Zhang Rui老师的将IRS引入无线通信安全的论文《Secure Wireless Communication via Intelligent Reflecting Surface》有较高的引用量,在此给出要论文的复现及代码。

主要问题

该论文的目的是引入IRS并联合优化基站的主动式波束和IRS的被动式波束,使得抑制窃听者信噪比的同时最大化合法用户处的信噪比。其场景如下:

系统模型图

因此可以构造出以下的优化问题:

优化问题

即在基站发射功率的约束下,优化基站和IRS的波束使得保密速率最大化。

给定IRS相位矩阵时,优化基站波束

可简单地将求绝对值的平方进行简单展开,令

将对数相减变换为真数相除,对数是单调递增函数,因此最大化对数,即是最大化真数即可。因此,可简化为以下的问题:

该结构可以参考文献[1]直接给出解的形式如下:

其中对应于矩阵的最大特征值对于的归一化特征向量。

给定基站波束,优化IRS相位矩阵

该部分推导较为复杂,可以详细阅读论文,如果有不懂的地方,可以评论或私信交流。主要是利用了分式规划将其转化为一个半正定松弛问题,求解该问题然后利用高斯随机化过程进行求解,转化后的问题如下所示:

仿真复现

仿真参数设置

clc;clear;epsilon = 1e-3; % 收敛停止条件% 天线数
M = 4; % AP天线数
Nx = 8;
Nz = 8;
N = Nx*Nz; % IRS单元个数 % 用户位置
APloc = [0;0]; % AP位置
userloc = [150;0]; % user位置
edloc= [145;0]; % 窃听者位置
IRSloc = [145;5]; % IRS位置C0 = db2pow(-30); % 参考距离时的路损
D0 = 1; % 参考距离
sigmaK2 = db2pow(-80); % 噪声功率,-80dBmL = @(d, alpha)C0*(d/D0)^(-alpha); % 路损模型% 路损参数
alpha_AU = 3;
alpha_AE = 3;
alpha_AI = 2.2;
alpha_IU = 3;
alpha_IE = 3;% 莱斯因子
K_AU = db2pow(1);
K_AE = db2pow(1);K_AI = db2pow(1);
K_IU = db2pow(1);
K_IE = db2pow(1);R = 1000; % 信道实现数P_AP = db2pow(25); % 发射功率15dBm

产生信道

论文中说明信道都为独立的莱斯信道,论文中有些信道考虑的是具有空间相关性的莱斯信道,需要在NLoS部分前后乘以一个相关系数矩阵,具体内容可以参考论文[1],为简化,在此没有考虑相关系数矩阵,则可以产生如下信道:

dAE = norm(APloc-edloc);
hAE = sqrt(L(dAE,alpha_AE)/sigmaK2)*(sqrt(K_AE/(1+K_AE))*ones(M,1)'+sqrt(K_AE/(1+K_AE))*(randn(1,M)+1i*randn(1,M))/sqrt(2));dAU = norm(APloc-userloc);
hAU = sqrt(L(dAU,alpha_AU)/sigmaK2)*(sqrt(K_AU/(1+K_AU))*ones(M,1)'+sqrt(K_AU/(1+K_AU))*(randn(1,M)+1i*randn(1,M))/sqrt(2)); dAI = norm(APloc-IRSloc);
thetaIRS = atan(145/5);phi = 0; thetaAP = atan(5/145);
HAI = sqrt(L(dAI,alpha_AI)/sigmaK2)*(sqrt(K_AI/(1+K_AI))*URA_sv(thetaIRS, phi,Nx,Nz)*ULA_sv(thetaAP,M)'+sqrt(K_AI/(1+K_AI))*(randn(N,M)+1i*randn(N,M))/sqrt(2));dIU = norm(IRSloc-userloc);
thetaIRS = -pi/4; phi = 0;
hIU = sqrt(L(dIU,alpha_IU))*(sqrt(K_IU/(1+K_IU))*URA_sv(thetaIRS, phi,Nx,Nz)'+sqrt(K_IU/(1+K_IU))*(randn(1,N)+1i*randn(1,N))/sqrt(2));dIE = norm(IRSloc-edloc);
thetaIRS = 0; phi = 0;
hIE = sqrt(L(dIE,alpha_IE))*(sqrt(K_IE/(1+K_IE))*URA_sv(thetaIRS, phi,Nx,Nz)'+sqrt(K_IE/(1+K_IE))*(randn(1,N)+1i*randn(1,N))/sqrt(2));

迭代优化

q = 2*pi*rand(1,N); % 随机初始化IRS的相位
Q = diag(exp(1i*q));% 给定q优化W
A = (hIU*Q*HAI+hAU)'*(hIU*Q*HAI+hAU); % 公式(9)
B = (hIE*Q*HAI+hAE)'*(hIE*Q*HAI+hAE); % 公式(10)I_M = eye(M);
C = (B+1/P_AP*I_M)\(A+1/P_AP*I_M);
[V,D] = eig(C); % 特征值分解
[d,ind] = sort(diag(D));
u_max = V(:,ind(end))/norm(V(:,ind(end)));
w_opt = sqrt(P_AP) * u_max;% 给定W优化q
hU = conj(hAU)*conj(w_opt)*(w_opt.')*(hAU.');
hE = conj(hAE)*conj(w_opt)*(w_opt.')*(hAE.');
GU = [diag(conj(hIU))*conj(HAI)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIU)  diag(conj(hIU))*conj(HAI)*conj(w_opt)*(w_opt.')*(hAU.');...conj(hAU)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIU) 0];
GE = [diag(conj(hIE))*conj(HAI)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIE)  diag(conj(hIE))*conj(HAI)*conj(w_opt)*(w_opt.')*(hAE.');...conj(hAE)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIE) 0]; % 公式(18)
q = SDR(hU,hE,GU,GE,N);Q = diag(q);
R = max(0, log2(1+abs((hIU*Q*HAI+hAU)*w_opt)^2)- log2(1+abs((hIE*Q*HAI+hAE)*w_opt)^2))

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

ULA导向矢量函数

function ula_sv = ULA_sv(theta, M)m = 0:M-1;ula_sv = exp(1i*pi*m*sin(theta)).';
end

半正定松弛优化函数

SDR求解问题(22a)

function [q,cvx_optval] = SDR(hU,hE,GU,GE,N)L = 1000; % 高斯随随机化次数cvx_begin sdp quietvariable X(N+1,N+1) hermitianvariable mu1(1,1)maximize(real(trace(GU*X)+mu1*(hU+1)))subject toreal(trace(GE*X))+mu1*(hE+1)==1;for i=1:N+1En = zeros(N+1,N+1);En(i,i)=1;real(trace(En*X)) == mu1;endX ==  hermitian_semidefinite(N+1);mu1 >= 0;cvx_end% 高斯随机化过程%% method 1max_F = 0;max_q = 0;S = X / mu1;[U, Sigma] = eig(S);for l = 1 : Lr = sqrt(2) / 2 * (randn(N+1, 1) + 1j * randn(N+1, 1));q = U * Sigma^(0.5) * r;if q' * GU * q > max_Fmax_q = q;max_F = q' * GU * q;endendq = exp(1j * angle(max_q / max_q(end)));q = q(1 : N);
end

以上程序是给定发射功率的单点优化程序,仿真随着发射功率变化的完整程序以及对比算法如下:

clc;clear;epsilon = 1e-3; % 收敛停止条件% 天线数
M = 4; % AP天线数
Nx = 8;
Nz = 8;
N = Nx*Nz; % IRS单元个数 % 用户位置
APloc = [0;0]; % AP位置
userloc = [150;0]; % user位置
edloc= [145;0]; % 窃听者位置
IRSloc = [145;5]; % IRS位置C0 = db2pow(-30); % 参考距离时的路损
D0 = 1; % 参考距离
sigmaK2 = db2pow(-80); % 噪声功率,-80dBmL = @(d, alpha)C0*(d/D0)^(-alpha); % 路损模型% 路损参数
alpha_AU = 3;
alpha_AE = 3;
alpha_AI = 2.2;
% alpha_IU = 3;
alpha_IU = 2.3;
% alpha_IE = 3;
alpha_IE = 2.5;% 莱斯因子
K_AU = db2pow(1);
K_AE = db2pow(1);% K_AI = db2pow(1);
K_AI = db2pow(10);
% K_IU = db2pow(1);
K_IU = db2pow(10);
% K_IE = db2pow(1);
K_IE = db2pow(10);P = db2pow(-5:5:25); % 发射功率15dBm
frame = 10;
maxIter = 20;
RSDR = zeros(length(P),1);
RMRT = zeros(length(P),1);
RWIRS = zeros(length(P),1);
RUB = zeros(length(P),1);
for p=1:length(P)pP_AP = P(p);for fr = 1:framedAE = norm(APloc-edloc);hAE = sqrt(L(dAE,alpha_AE)/sigmaK2)*(sqrt(K_AE/(1+K_AE))*ones(M,1)'+sqrt(K_AE/(1+K_AE))*(randn(1,M)+1i*randn(1,M))/sqrt(2));dAU = norm(APloc-userloc);hAU = sqrt(L(dAU,alpha_AU)/sigmaK2)*(sqrt(K_AU/(1+K_AU))*ones(M,1)'+sqrt(K_AU/(1+K_AU))*(randn(1,M)+1i*randn(1,M))/sqrt(2)); dAI = norm(APloc-IRSloc);thetaIRS = atan(145/5);phi = 0; thetaAP = atan(5/145);HAI = sqrt(L(dAI,alpha_AI)/sigmaK2)*(sqrt(K_AI/(1+K_AI))*URA_sv(thetaIRS, phi,Nx,Nz)*ULA_sv(thetaAP,M)'+sqrt(K_AI/(1+K_AI))*(randn(N,M)+1i*randn(N,M))/sqrt(2));dIU = norm(IRSloc-userloc);thetaIRS = -pi/4; phi = 0;hIU = sqrt(L(dIU,alpha_IU))*(sqrt(K_IU/(1+K_IU))*URA_sv(thetaIRS, phi,Nx,Nz)'+sqrt(K_IU/(1+K_IU))*(randn(1,N)+1i*randn(1,N))/sqrt(2));dIE = norm(IRSloc-edloc);thetaIRS = 0; phi = 0;hIE = sqrt(L(dIE,alpha_IE))*(sqrt(K_IE/(1+K_IE))*URA_sv(thetaIRS, phi,Nx,Nz)'+sqrt(K_IE/(1+K_IE))*(randn(1,N)+1i*randn(1,N))/sqrt(2));q = 2*pi*rand(1,N); % 随机初始化IRS的相位Q = diag(exp(1i*q));R_old = 0;R_new = 10;count = 0;while(abs(R_old-R_new)/R_new > epsilon && count < maxIter)count = count + 1;% 给定q优化WA = (hIU*Q*HAI+hAU)'*(hIU*Q*HAI+hAU); % 公式(9)B = (hIE*Q*HAI+hAE)'*(hIE*Q*HAI+hAE); % 公式(10)I_M = eye(M);C = (B+1/P_AP*I_M)\(A+1/P_AP*I_M);[V,D] = eig(C); % 特征值分解[d,ind] = sort(diag(D));u_max = V(:,ind(end))/norm(V(:,ind(end)));w_opt = sqrt(P_AP) * u_max;% 给定W优化q, SDRhU = conj(hAU)*conj(w_opt)*(w_opt.')*(hAU.');hE = conj(hAE)*conj(w_opt)*(w_opt.')*(hAE.');GU = [diag(conj(hIU))*conj(HAI)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIU)  diag(conj(hIU))*conj(HAI)*conj(w_opt)*(w_opt.')*(hAU.');...conj(hAU)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIU) 0];GE = [diag(conj(hIE))*conj(HAI)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIE)  diag(conj(hIE))*conj(HAI)*conj(w_opt)*(w_opt.')*(hAE.');...conj(hAE)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIE) 0]; % 公式(18)[q,upper_bound] = SDR(hU,hE,GU,GE,N);Q = diag(q);R_old = R_new;R = max(0, log2(1+abs((hIU*Q*HAI+hAU)*w_opt)^2)- log2(1+abs((hIE*Q*HAI+hAE)*w_opt)^2));R_new = R;endRSDR(p) = RSDR(p) + R;RUB(p) = RUB(p) + log2(upper_bound);% AP MRT with IRSR_old = 0;R_new = 10;count = 0;while(abs(R_old-R_new)/R_new > epsilon && count < maxIter)count = count + 1;% 给定q优化Ww_opt = sqrt(P_AP)*HAI(1,:)'/norm(HAI(1,:));% 给定W优化q, SDRhU = conj(hAU)*conj(w_opt)*(w_opt.')*(hAU.');hE = conj(hAE)*conj(w_opt)*(w_opt.')*(hAE.');GU = [diag(conj(hIU))*conj(HAI)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIU)  diag(conj(hIU))*conj(HAI)*conj(w_opt)*(w_opt.')*(hAU.');...conj(hAU)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIU) 0];GE = [diag(conj(hIE))*conj(HAI)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIE)  diag(conj(hIE))*conj(HAI)*conj(w_opt)*(w_opt.')*(hAE.');...conj(hAE)*conj(w_opt)*(w_opt.')*(HAI.')*diag(hIE) 0]; % 公式(18)[q,~] = SDR(hU,hE,GU,GE,N);Q = diag(q);R_old = R_new;R = max(0, log2(1+abs((hIU*Q*HAI+hAU)*w_opt)^2)- log2(1+abs((hIE*Q*HAI+hAE)*w_opt)^2));R_new = R;endRMRT(p) = RMRT(p) + R;% without IRSA = (hAU)'*(hAU); % 公式(9)B = (hAE)'*(hAE); % 公式(10)I_M = eye(M);C = (B+1/P_AP*I_M)\(A+1/P_AP*I_M);[V,D] = eig(C); % 特征值分解[d,ind] = sort(diag(D));u_max = V(:,ind(end))/norm(V(:,ind(end)));w_opt = sqrt(P_AP) * u_max;R = max(0, log2(1+abs((hAU)*w_opt)^2)- log2(1+abs((hAE)*w_opt)^2));RWIRS(p) =RWIRS(p) +R;end
endplot(pow2db(P), RSDR/frame,'b-o','LineWidth',2)
hold on
plot(pow2db(P), RMRT/frame,'k-o','LineWidth',2)
plot(pow2db(P), RWIRS/frame,'r-.d','LineWidth',2)
plot(pow2db(P), RUB/frame,'m-.+','LineWidth',2)
grid on
xlabel('P_{AP} (dBm)')
ylabel('Average Secrecy Rate (bps/Hz)')
legend('Alternating Optimization with IRS','AP MRT with IRS','Optimal AP without IRS','Upper bound','Location','northwest')

仿真结果

复现的结果图

论文原图

可以看出不同算法的趋势基本复现,数值上可能有些不同,可能还是信道建模部分以及反射面个数的问题,不影响对于算法整体的理解。

参考文献

[1] A. Khisti and G. W. Wornell, “Secure transmission with multiple antennas I: the MISOME wiretap channel,”IEEE Trans. Inf. Theory, vol. 56, no. 7, pp. 3088-3104, Jul. 2010.

有任何不清楚的写错或程序有误的地方,欢迎在评论区留言或私信交流!

智能反射面(IRS)在无线通信安全领域应用的论文复现相关推荐

  1. 无源域适应(SFDA)方向的领域探究和论文复现(第一部分)

    无源域适应(SFDA)方向的领域探究和论文复现(第一部分) 一.领域综述 \quad\quad领域自适应(DA)的目标是通过源数据驱动的两阶段框架为目标域重用源域知识.首先,收集源数据并进行标注,以训 ...

  2. IRS综述2:面向智能可重构环境——智能反射面辅助的无线通信网络

    本文依据Qingqing Wu和Rui Zhang的文章"Towards Smart and Reconfigurable Environment Intelligent Reflectin ...

  3. IRS综述:智能反射面研究——面向6G无线通信网络

    本文为新加坡南洋理工大学赵俊和刘洋教授名为"A Survey of Intelligent Reflecting Surfaces(IRSs):Towards 6G Wireless Com ...

  4. IRS(intelligent reflecting surface)智能反射面与无人机通信

    文章目录 前言 一.IRS 1.什么是IRS 2. IRS几种应用场景 场景1:建立新链路 场景2:消除干扰 场景3:安全通信 二.论文 1.场景 2.系统模型 坐标 信道模型 3.问题建模 数据率 ...

  5. 智能反射面(IRS)信道建模与仿真

    模型: 基站和终端借助智能反射面进行辅助通信的系统,IRS通过将来自基站S的信号反射到终端D协助通信.其中,基站S天线数为M,终端D天线数为N,IRS由K个被动的反射元件组成,这些元件可以使用面向通信 ...

  6. 华为汪涛:走向智能世界2030,无线网络未来十年十大产业趋势

    2021全球移动宽带论坛(Global MBB Forum)期间,华为常务董事.ICT基础设施业务管理委员会主任汪涛发表了题为"走向智能世界2030,无线网络未来十年十大趋势"的主 ...

  7. 公司新产品之我见(1)——智能家居中的无线充电/供电设备

    在公司技术部9月的一次会上,老板提出一个新想法,让技术部的每名员工每个月提出一个公司未来可以发展的新产品,一经采纳,将会以提出建议者为主组成新的项目组.新年的第一天,我会将2014年9~12月四个月的 ...

  8. 基于SDR的智能反射面波束成形设计

    前言 本文是对 武庆庆老师的论文 Intelligent Reflecting Surface Enhanced Wireless Network via Joint Active and Passi ...

  9. 最大化速率的智能反射面波束成形(上):分式规划

    前言 本文是对 IRS论文 Weighted Sum-Rate Optimization for Intelligent Reflecting Surface Enhanced Wireless Ne ...

最新文章

  1. 云平台设计系统,助力业务快速开发
  2. 我对序列化(Serializable)的理解
  3. Xamarin Android布局文件没有智能提示
  4. python笔记基础-Python基础知识
  5. 【解决】Authentication plugin 'caching_sha2_password' cannot be loaded
  6. js利用localStorage和sessionStorage完成记住我功能
  7. T-SQL编程基础之一:变量与基本语句
  8. linux之文件类型
  9. awk实战:文件里面全是数字,实现大于100的求和并打印出所在行和这些数字的总和...
  10. 后置三摄!郭明錤再曝新一代iPhone:屏幕变化不大
  11. C++自学11:命名空间(using namespace)
  12. vue-cli构建项目使用 less
  13. 新手如何使用Docker来搭建PHP开发环境?
  14. HDU 1358 (所有前缀中的周期串) Period
  15. Python的Numpy库简述
  16. python毕业论文答辩ppt_如何制作优秀的毕业论文答辩 PPT?
  17. 软件系统服务器端要求用千兆宽带,【硬核分享】升级千兆网络而速度却达不到?这些操作你做对了吗?...
  18. 大话西游2玩家最多的服务器,大话西游2最火爆的服务器凌烟阁,玩家一次预约成功...
  19. win10如何重装系统(联想笔记本)
  20. Google的GDrive美如水中之月

热门文章

  1. 华东理工计算机类在哪个校区,华东理工大学有几个校区及校区地址 哪个校区最好...
  2. bilibili封面
  3. 虚幻4渲染编程(光线追踪篇)【第一卷:光线追踪篇开篇综述】
  4. PhalAPI学习笔记拓展篇 ———ADM模式中NotORM实现简单CURD
  5. 彻底理解numpy中的axis
  6. 第 7 章网络可扩展性
  7. 秒杀抢红包的思考和总结
  8. 计算机网络: IP地址,子网掩码,默认网关,DNS服务器详解
  9. C++ 匠心之作 从0到1入门学编程
  10. mac电脑修改网卡mac地址