# ADMM_optimize_1 **Repository Path**: s978351805/admm_optimize_1 ## Basic Information - **Project Name**: ADMM_optimize_1 - **Description**: 开源竞赛原创开源软件赛道 - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 55 - **Created**: 2026-05-21 - **Last Updated**: 2026-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 面向 6G 近场 XL-RIS 辅助物理层密钥生成的联合优化仿真框架(MATLAB) ## 项目简介 本项目围绕**近场超大规模可重构智能表面(XL-RIS)辅助物理层密钥生成(PKG)展开,面向 6G 高频通信场景,针对传统远场模型在 XL-RIS 部署下不再适用、且现有 XL-RIS 辅助 PKG 研究较少的问题,构建了考虑窃听者存在的近场 XL-RIS 辅助 PKG 系统模型**。 项目基于论文中的建模与算法思路,实现了: * 近场 / 远场信道建模; * KGR(Key Generation Rate,密钥生成速率)计算; * 基站波束赋形向量 `w` 与 XL-RIS 反射系数 `v` 的交替优化; * 基于 **Dinkelbach + ADMM + AO(Alternating Optimization)** 的 ADA 求解流程; * 不同 Eve 位置、不同阵列规模下的仿真与绘图分析。 项目代码全部基于 MATLAB 编写,适合作为以下工作的复现与扩展基础: * XL-RIS 辅助 PKG 近场建模; * 近场 / 远场 KGR 对比实验; * 窃听者位置敏感性分析; * 波束赋形与 RIS 联合优化算法验证。 \--- ## 项目结构 ADMM\_optimize/ ├── main.m # 主实验脚本:近场/远场 KGR 对比与 ADA 迭代优化 ├── main\_different\_eve.m # Eve 位置扫描实验 ├── main\_test.m # 早期测试脚本/辅助验证脚本 ├── RD.m # Rayleigh Distance(瑞利距离)计算脚本 │ ├── generate\_Har\_near\_field\_channel.m # Alice → RIS 近场信道生成 ├── generate\_Har\_far\_field\_channel.m # Alice → RIS 远场信道生成 ├── generate\_hrk\_near\_field\_channel.m # RIS → Bob/Eve 近场信道生成 ├── generate\_hrk\_far\_field\_channel.m # RIS → Bob/Eve 远场信道生成 │ ├── deduced\_secret\_key\_rate\_w.m # KGR 计算函数 ├── optimize\_w.m # 固定 v 时优化基站波束赋形向量 w ├── optimize\_v.m # 固定 w 时优化 RIS 反射系数 v ├── update\_y.m # ADMM 对偶变量更新 ├── lagrange\_rho.m # 拉格朗日函数/辅助分析函数 │ ├── cvx\_solve\_pw.m # w 子问题中的 p 更新(CVX) ├── cvx\_solve\_w.m # w 子问题中的 w 更新(CVX) ├── cvx\_solve\_pv.m # v 子问题中的 p 更新(CVX) ├── cvx\_solve\_v.m # v 子问题中的 v 更新(CVX) │ └── res/ ├── plot\_figure.m # 绘制迭代收敛曲线 ├── plot\_figure\_eve.m # 绘制不同 Eve 位置下的 KGR 对比图 ├── \*.mat # 示例仿真结果数据 └── \*.png # 示例结果图片 \--- ## 系统流程 \[系统参数设置] 阵列规模 N / M、载波频率、天线间距、Alice/Bob/Eve 位置、功率、噪声方差 ↓ \[信道生成] 近场模型 / 远场模型 H\_ar, h\_rb, h\_re ↓ \[等效信道构造] H\_rb = H\_ar^T diag(h\_rb) H\_re = H\_ar^T diag(h\_re) ↓ \[KGR 建模] 基于 Bob 与 Eve 的相关统计量,计算 Key Generation Rate ↓ \[联合优化] 固定 v 优化 w 固定 w 优化 v 交替迭代(AO) ↓ \[子问题求解] Dinkelbach 分式规划 + ADMM 分裂 + CVX 凸优化求解 ↓ \[结果输出] 近场/远场 KGR 收敛曲线、不同 Eve 位置对比结果、示例图像与 .mat 数据 \--- ## 模块说明 ### 1\. 近场 / 远场信道生成模块 项目分别实现了 Alice→RIS、RIS→Bob/Eve 的近场与远场信道模型: * `generate\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_Har\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_near\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_field\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_channel.m`:生成 Alice 到 XL-RIS 的近场 LoS 信道; * `generate\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_Har\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_far\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_field\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_channel.m`:生成 Alice 到 XL-RIS 的远场平面波信道; * `generate\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_hrk\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_near\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_field\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_channel.m`:生成 XL-RIS 到 Bob/Eve 的近场 LoS 信道; * `generate\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_hrk\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_far\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_field\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_channel.m`:生成 XL-RIS 到 Bob/Eve 的远场信道。 这部分对应论文中的核心建模假设,用于体现 XL-RIS 部署下近场传播特性与传统远场模型的差异。 ### 2\. KGR 计算模块 * `deduced\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_secret\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_key\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_rate\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_w.m`:根据 Bob / Eve 的统计量矩阵计算密钥生成速率; * 当前代码中 `w` 和 `v` 两类变量优化都统一调用该 KGR 表达式进行性能评估。 ### 3\. 联合优化模块 项目采用交替优化(AO)框架: * `optimize\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_w.m`:在固定 RIS 反射系数 `v` 时优化基站波束赋形向量 `w`; * `optimize\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_v.m`:在固定 `w` 时优化 RIS 反射向量 `v`; * `update\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_y.m`:执行 ADMM 对偶变量更新; * `cvx\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_solve\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_pw.m / cvx\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_solve\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_w.m / cvx\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_solve\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_pv.m / cvx\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_solve\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_v.m`:完成各子问题的 CVX 求解。 从实现角度看,代码将复数变量先做实数化处理,再在 Dinkelbach 迭代与 ADMM 分裂框架下,调用 CVX 求解带约束的凸子问题。 ### 4\. 主实验脚本 #### `main.m` 主复现实验脚本,完成: * 近场 / 远场信道生成; * ADA 迭代优化; * KGR 收敛过程记录; * 近场与远场结果对比。 #### `main\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_different\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_eve.m` 用于分析 Eve 在不同位置时系统性能的变化,输出不同 `ye` 下的近场 / 远场 KGR 结果,适合复现论文中的窃听者位置敏感性实验。 #### `RD.m` 用于计算瑞利距离(Rayleigh Distance),辅助说明 XL-RIS 场景下近场区域显著扩大这一物理背景。 ### 5\. 结果与绘图模块 * `res/plot\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_figure.m`:绘制迭代收敛曲线; * `res/plot\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_figure\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_eve.m`:绘制不同 Eve 位置场景下的近场 / 远场 KGR 对比图; * `res/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*.mat`:保存示例实验结果; * `res/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*.png`:保存示例输出图像。 \--- ## 运行环境 ### 基础环境 * MATLAB R2022a 或更高版本 * CVX(已正确安装并完成 `cvx\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_setup`) ### 建议工具箱 本项目主体为 MATLAB 脚本与函数实现,核心依赖为 **CVX**。如需进一步扩展仿真、绘图或并行实验,可按需安装相关 MATLAB 工具箱。 \--- ## 快速开始 ### 1\. 克隆或下载项目 将项目下载到本地后,进入工程根目录: ```matlab cd('你的项目路径/ADMM\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_optimize'); addpath(genpath(pwd)); ``` ### 2\. 配置 CVX 确保已在 MATLAB 中正确配置 CVX,例如: ```matlab cd('你的CVX安装路径/cvx'); cvx\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_setup; ``` ### 3\. 运行主实验 #### 方式 A:近场 / 远场 KGR 对比 ```matlab run('main.m'); ``` #### 方式 B:不同 Eve 位置扫描实验 ```matlab run('main\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_different\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_eve.m'); ``` #### 方式 C:Rayleigh Distance 计算 ```matlab run('RD.m'); ``` ### 4\. 绘制示例图像 如已存在 `res/` 中的结果文件,可直接运行: ```matlab run('res/plot\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_figure.m'); run('res/plot\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_figure\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_eve.m'); ``` \--- ## 关键参数说明 项目中的主要参数可在 `main.m` 与 `main\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_different\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_eve.m` 中修改: * `Nv, Nh`:Alice 阵列垂直 / 水平维度; * `Mv, Mh`:XL-RIS 阵列垂直 / 水平维度; * `f`:载波频率; * `lambda`:波长; * `xa, ya, za`:Alice 位置; * `xb, yb, zb`:Bob 位置; * `xe, ye, ze`:Eve 位置; * `PA, PB`:Alice/Bob 发射功率; * `sigma2`:噪声方差; * `iter`:总迭代步数; * `N\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_AO`:交替优化轮数; * `rho`:ADMM 相关惩罚参数。 研究中如需复现实验图,可优先固定论文中的阵列规模、位置关系与功率设置,再逐项修改 Eve 位置、阵列维度或初始化方式。 \--- ## 输出结果说明 项目当前可输出的典型结果包括: 1. **近场与远场模型下的 KGR 收敛曲线**; 2. **不同 Eve 位置下的 KGR 变化趋势**; 3. **不同阵列规模下的示例结果图**; 4. **中间仿真数据 `.mat` 文件**,便于后续重复绘图与进一步分析。 `res/` 目录中已经提供了部分示例 `.mat` 与 `.png` 文件,可作为论文图表复现的参考基础。 \--- ## 代码与论文对应关系 本项目与论文中的主要对应关系如下: * **系统模型部分**:对应近场 XL-RIS 辅助 PKG 场景、Alice/Bob/Eve 三节点建模; * **KGR 表达式部分**:对应密钥生成速率建模与 Bob/Eve 统计量处理; * **算法部分**:对应 ADA(AO + Dinkelbach + ADMM)求解流程; * **仿真部分**:对应近场/远场对比、不同 Eve 位置实验及收敛曲线分析。 因此,该代码既可作为论文实验复现代码,也适合作为后续扩展以下方向的基础框架: * 多 Eve / 多用户场景; * 更多 XL-RIS 阵列规模组合; * 不同初始化或鲁棒优化策略; * 结合更多物理层安全指标的联合优化。 \--- ## 注意事项 * 本项目中的优化子问题依赖 **CVX**,运行前请先确认 `cvx\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_setup` 已成功执行; * `res/` 中部分 `.mat` 结果文件体积可能较大,开源发布时可按需保留或裁剪; * 若需要完全复现实验图,建议优先使用项目中已有参数配置与示例结果文件; * `main\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_test.m` 为测试性质脚本,建议优先使用 `main.m` 与 `main\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_different\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\_eve.m` 作为正式复现实验入口。 \--- ## 引用文献: J. Chen, H. Li, G. Li and X. Cao, "The Optimization of XL-RIS-assisted Physical Layer Key Generation in Near-Field," 2025 IEEE 102nd Vehicular Technology Conference (VTC2025-Fall), Chengdu, China, 2025, pp. 1-6, doi: 10.1109/VTC2025-Fall65116.2025.11310626. ##