第【56期】-- 通信问题的cvx教程之基础篇【三】-- MU-MIMO下行功率分配问题SDR求解+高斯随机化
1、最近有大量小伙伴在问关于通信领域里面CVX的代码编写问题,因此计划新开系列文章,讲解无线通信优化问题中关于MATLAB CVX工具的使用。
2、计划前期先写经典的简单通信问题的CVX求解以打实基础,后期再针对目前热门的通信方向,如RIS,NOMA,UAV,ISAC等方向的复杂非凸问题的近似迭代后的CVX求解。
3、本文为第【三】期,讲解MU-MIMO系统简单的功率分配问题的SDR+高斯随机化。
- 博主往期所写热门文章:
cvx安装
无线通信中的优化问题+matlab中cvx的使用心得
文章目录
- 1. 引言
- 2 理论基础
- 2.1 信号模型
- 2.2 功率最小化问题
- 3. 半正定松弛
- 3.1 松弛问题
- 3.2 最优性分析
- 3.3 高斯随机化流程
- 3.4 CVX代码
- 4 总结
1. 引言
多天线技术是第五代及未来移动通信系统的关键组成部分。在下行多用户场景中,基站利用多根天线同时服务多个单天线用户,通过空间复用显著提升频谱效率。然而,用户间干扰成为限制性能的主要因素,线性波束成形作为一种低复杂度方案被广泛研究。设计波束成形向量以最小化总发射功率同时满足每个用户的服务质量(QoS)需求(如SINR门限)是一个经典的优化问题。
该问题在波束成形向量空间中是非凸的,但其等价形式——发射协方差矩阵优化——可转化为凸半定规划问题,其核心思想是将秩一约束松弛为半正定约束。该方法在文献中被称为SDR松弛,已被证明在多数情况下能够给出最优的秩一解,或者在秩大于一时提供功率下界。
本文基于此框架,建立完整的系统模型,推导SDP松弛形式,并通过蒙特卡洛仿真分析随机信道下的功率性能。
2 理论基础
2.1 信号模型
2.2 功率最小化问题
3. 半正定松弛
半正定松弛理论基础:
Zhi-quan Luo 老师的经典著作 《Semidefinite Relaxation of Quadratic Optimization Problems》
3.1 松弛问题
松弛掉秩一约束,仅保留半正定约束,得到松弛问题
需要注意的是:
3.2 最优性分析
3.3 高斯随机化流程
3.4 CVX代码
完整代码
clear;clc;close all;%====================系统参数====================K=4;%用户数 M=4;%基站天线数 sigma2=0.025^2;%噪声功率 num_realizations=20;%每个 gamma 下的信道样本数 L=200;%随机化采样次数 gamma_vec=0.5:0.5:3;avg_power_sdp=zeros(size(gamma_vec));avg_power_rand=zeros(size(gamma_vec));fprintf('开始扫描不同 gamma 值 (SDP + 随机化)...\n');forg_idx=1:length(gamma_vec)gamma=gamma_vec(g_idx);power_sum_sdp=0;power_sum_rand=0;valid_count=0;forz=1:num_realizations%-----生成信道-----H_ch=randn(K,M);H=zeros(M,M,K);fori=1:K h_i=H_ch(i,:);H(:,:,i)=h_i'*h_i;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 sig-gamma*cstr-s(i)==gamma*sigma2;X(:,:,i)==hermitian_semidefinite(M);end cvx_endif~strcmp(cvx_status,'Solved')continue;end%-----高斯随机化(构造上界)-----best_rand_power=inf;forl=1:L W_rand=zeros(M,K);fori=1:K Xi=X(:,:,i);[V,D]=eig(0.5*(Xi+Xi'));D=max(real(D),0);Xi_sqrt=V*sqrt(D)*V';r=Xi_sqrt*(randn(M,1)+1i*randn(M,1))/sqrt(2);W_rand(:,i)=r;end%正确计算每个用户的SINR SINRs=zeros(K,1);fori=1:K w_i=W_rand(:,i);%信号功率 sig=real(w_i'*H(:,:,i)*w_i);%干扰功率(来自其他用户)int=0;forj=1:Kifj~=i w_j=W_rand(:,j);int=int+real(w_j'*H(:,:,i)*w_j);end endSINRs(i)=sig/(int+sigma2);end%检查是否所有用户满足SINR>=gammaifall(SINRs>=gamma-1e-6)total_power=sum(sum(abs(W_rand).^2,1));iftotal_power<best_rand_power best_rand_power=total_power;end end endifisinf(best_rand_power)continue;end power_sum_sdp=power_sum_sdp+obj;power_sum_rand=power_sum_rand+best_rand_power;valid_count=valid_count+1;endifvalid_count>0avg_power_sdp(g_idx)=power_sum_sdp/valid_count;avg_power_rand(g_idx)=power_sum_rand/valid_count;fprintf('γ=%.2f:有效样本=%d,SDP下界=%.4f,随机化上界=%.4f\n',...gamma,valid_count,avg_power_sdp(g_idx),avg_power_rand(g_idx));elseavg_power_sdp(g_idx)=NaN;avg_power_rand(g_idx)=NaN;fprintf('γ = %.2f: 无可行样本!\n',gamma);end end%====================绘图====================figure;plot(gamma_vec,avg_power_sdp,'b-o','LineWidth',2,'DisplayName','SDP 下界 (松弛)');hold on;plot(gamma_vec,avg_power_rand,'r-s','LineWidth',2,'DisplayName','随机化上界 (可行解)');hold off;xlabel('SINR 门限 \gamma (线性值)');ylabel('平均最小发射功率');title(['M=',num2str(M),', K=',num2str(K),...', 每个γ下信道数=',num2str(num_realizations),', 随机化次数=',num2str(L)]);legend('Location','best');grid on;可以看到:
- SDR 松弛为功率最小化问题提供了可靠的下界,其紧性在低 SINR 时表现优异,在高 SINR 时虽有下降但仍可作为性能基准
- 高斯随机化能够以较高概率从 SDR 松弛解中构造出满足原始 SINR 约束的可行波束成形向量,且所得平均功率上界与 SDR 下界之间的相对间隙在低 γ 时趋近于零。
4 总结
本文系统介绍了 MU-MIMO 下行链路中基于 QoS 约束的功率最小化波束成形问题。通过将原始非凸的秩一约束问题松弛为半正定规划(SDP),并利用 CVX 求解器获得最优协方差矩阵。针对松弛解可能秩大于一的情况,进一步采用高斯随机化技术从 SDP 解中恢复出可行的波束成形向量,从而为原始问题提供一个紧致的上界。仿真结果表明,SDR 松弛在低 SINR 门限下能提供接近最优的下界,而高斯随机化构造的可行解功率与下界间隙很小,验证了 SDR+随机化框架在该类问题中的有效性与实用性。
关注博客vx公众号,获取完整通信问题仿真代码!
