当前位置: 首页 > news >正文

第【55期】-- 通信问题的cvx教程之基础篇【二】-- MU-MIMO下行功率分配问题SDR求解

1、最近有大量小伙伴在问关于通信领域里面CVX的代码编写问题,因此计划新开系列文章,讲解无线通信优化问题中关于MATLAB CVX工具的使用。
2、计划前期先写经典的简单通信问题的CVX求解以打实基础,后期再针对目前热门的通信方向,如RIS,NOMA,UAV,ISAC等方向的复杂非凸问题的近似迭代后的CVX求解。
3、本文为第【二】期,讲解MU-MIMO系统简单的功率分配问题的CVX代码,感兴趣的朋友后续可以点个关注后续追更。

  • 博主往期所写热门文章:
    cvx安装
    无线通信中的优化问题+matlab中cvx的使用心得

文章目录

    • 1. 引言
    • 2 理论基础
      • 2.1 信号模型
      • 2.2 功率最小化问题
    • 3. 半正定松弛
      • 3.1 松弛问题
      • 3.2 CVX代码
    • 4 总结

1. 引言

多天线技术是第五代及未来移动通信系统的关键组成部分。在下行多用户场景中,基站利用多根天线同时服务多个单天线用户,通过空间复用显著提升频谱效率。然而,用户间干扰成为限制性能的主要因素,线性波束成形作为一种低复杂度方案被广泛研究。设计波束成形向量以最小化总发射功率同时满足每个用户的服务质量(QoS)需求(如SINR门限)是一个经典的优化问题。

该问题在波束成形向量空间中是非凸的,但其等价形式——发射协方差矩阵优化——可转化为凸半定规划问题,其核心思想是将秩一约束松弛为半正定约束。该方法在文献中被称为SDP松弛,已被证明在多数情况下能够给出最优的秩一解,或者在秩大于一时提供功率下界。

本文基于此框架,建立完整的系统模型,推导SDP松弛形式,并通过蒙特卡洛仿真分析随机信道下的功率性能。

2 理论基础

2.1 信号模型

2.2 功率最小化问题

3. 半正定松弛

半正定松弛理论基础:

Zhi-quan Luo 老师的经典著作 《Semidefinite Relaxation of Quadratic Optimization Problems》

3.1 松弛问题

松弛掉秩一约束,仅保留半正定约束,得到松弛问题

SDP松弛的最优值给出了原问题的最优功率的下界。若存在最优解满足秩一,则松弛是紧的,该解即为原始问题的最优波束成形。即使出现秩大于1,也可通过高斯随机化等后处理步骤获得良好的可行波束成形向量。

3.2 CVX代码

cvx代码是完全按照松弛问题的形式构造

clear;clc;%==========系统参数==========K=4;%用户数 M=4;%基站天线数 sigma2=0.025^2;%噪声功率 num_realizations=20;%每个 gamma 下的信道样本数%扫描的 SINR 门限(线性值) gamma_vec=0.5:0.5:3;avg_power=zeros(size(gamma_vec));fprintf('开始扫描不同 gamma 值 (SDP方法)...\n');forg_idx=1:length(gamma_vec)gamma=gamma_vec(g_idx);power_sum=0;valid_count=0;forz=1:num_realizations%-----生成信道-----H_ch=randn(K,M);%实高斯信道(方差1) H=zeros(M,M,K);fori=1:K h_i=H_ch(i,:);%1xMH(:,:,i)=h_i'*h_i;%MxM 半正定 end%-----SDP 求解-----cvx_begin quiet variableX(M,M,K)complex variables(K,1)nonnegative%目标函数:总发射功率(取实部) obj=0;fori=1:K obj=obj+real(trace(X(:,:,i)));endminimize(obj)subject tofori=1:K%信号项 sig=real(trace(H(:,:,i)*X(:,:,i)));%干扰项 cstr=0;forj=1:Kifj~=i cstr=cstr+real(trace(H(:,:,i)*X(:,:,j)));end end%SINR 约束 sig-gamma*cstr-s(i)==gamma*sigma2;%半正定约束X(:,:,i)==hermitian_semidefinite(M);end cvx_endifstrcmp(cvx_status,'Solved')power_sum=power_sum+obj;valid_count=valid_count+1;end endifvalid_count>0avg_power(g_idx)=power_sum/valid_count;fprintf('gamma=%.2f,有效次数=%d,平均功率=%.4f\n',gamma,valid_count,avg_power(g_idx));elseavg_power(g_idx)=NaN;fprintf('gamma = %.2f, 无可行的信道实现!\n',gamma);end end%==========绘图==========figure;plot(gamma_vec,avg_power,'b-o','LineWidth',2);xlabel('SINR 门限 \gamma (线性值)');ylabel('平均最小发射功率 (总功率)');title(['M=',num2str(M),', K=',num2str(K),', 噪声功率 \sigma^2=',num2str(sigma2),...', 每个\gamma下随机信道次数=',num2str(num_realizations)]);grid on;


可以看到:

  1. 这里信道,噪声并没完全按照通信的要求来,随便给了一个数值,只为体现cvx的用法; 约束和目标函数的写法和第二章的理论完全一致;
  2. 为了克服信道随机性的影响,对同一个横坐标,多次进行随机信道,取结果的平均值以克服随机性的影响。(通信论文里面常用,也叫蒙特卡洛仿真);
  3. CVX代码讲解其实蕴含在理论解释部分以及代码注释部分,这里不再赘述了。
  4. 仿真如图:模拟不同SINR要求下的最小功率的变化,SINR要求越高,系统的总发射功率就越大,且增长率也越大,符合物理意义

4 总结

本文给出了基于SDR的优化问题的求解代码,后续会继续给出其他问题。

关注博客vc公众号,获取完整通信问题仿真代码!

http://www.cnnetsun.cn/news/3178714.html

相关文章:

  • EM3080-W条码解码芯片与PIC18LF45K22微控制器集成方案
  • 【JAVA毕设源码分享】基于Web的学生宿舍管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 基于DRV8213和PIC18的智能散热系统设计与实现
  • EM3080-W与PIC18LF45K50构建高性价比条码识别系统
  • STM32实现BLDC电机FOC控制的关键技术与优化
  • 【Springboot毕设全套源码+文档】springboot基于个性化智能提醒的社区老年康养管理系统(丰富项目+远程调试+讲解+定制)
  • DS28EC20 EEPROM与dsPIC33FJ256GP710A的嵌入式存储方案
  • 番茄小说下载器完整指南:三步获取全网小说资源
  • AD5593R与STM32F415RG硬件协同设计与信号处理实战
  • Service Workers缓存策略错,更新不及时!
  • 基于A89307和PIC18F57K42的BLDC电机FOC控制方案
  • 2×2键盘矩阵与74HC32在PIC微控制器的应用
  • IMU与MCU协同实现6DoF运动追踪技术解析
  • c语言预备知识
  • STC3115芯片与PIC32MX675F512L在电池管理系统中的实战应用
  • Wand-Enhancer:免费解锁Wand游戏修改器专业版的终极指南
  • 5分钟实现Wand游戏修改器高级功能:开源增强工具全攻略
  • STM32F746ZG与MC6470 IMU的硬件协同与姿态解算优化
  • Chaterm — 开源SRE副驾驶,让你与服务器直接对话!
  • 6DoF运动追踪:IMU与MCU的硬件实现与算法解析
  • ICM-42688-P与STM32F745VG在运动控制中的高效集成方案
  • ICM-42605与PIC18F86J55的6DOF运动追踪系统设计
  • 盒须图实战指南:用五数概括揭示数据分布真相
  • 调查研究-215 Anthropic 双线扩张:从 Claude 模型公司到 AI 工业栈
  • 基于multisim的交通信号灯25-25-5控制器设计
  • 3分钟快速上手:Sunshine开源游戏流媒体服务器终极指南
  • MC74HC165A与PIC18F25K50实现高效IO扩展方案
  • WasmEngine实战案例:如何构建高并发、安全隔离的认证服务
  • 最新独角发卡2.9.9魔改用户版源码 — 专为hyper模板定制的自动发卡系统
  • CK+ 与 DISFA 数据集实战:从 593 个视频序列到 13 万帧的微表情分析