# ADMM_optimize **Repository Path**: xiaobowang29/admm_optimize ## Basic Information - **Project Name**: ADMM_optimize - **Description**: 开源竞赛原创开源软件赛道 - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 100 - **Forks**: 55 - **Created**: 2026-03-17 - **Last Updated**: 2026-05-22 ## 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.