当前位置:   article > 正文

无线通信MISO系统的多用户的发射功率最小化问题(附Matlab代码,使用SOCP、SDP以及KKT)_matlab求解socp问题

matlab求解socp问题

引言

前面几篇博客介绍并复现RIS辅助无线通信系统中的相关优化问题,为了更深度地理解无线通信中的优化问题,打算利用三篇博客介绍并仿真发射功率最小化问题、和速率最大化问题与能效问题等三大经典问题,本文首先介绍多用户MISO系统基站发射功率最小化问题。博客和代码都为自己原创,希望大家多点赞收藏,支持创作

系统模型

考虑一个下行多用户多输入单输出(MU-MISO)系统,其中基站配置有 N N N根发射天线,以及 K K K个单天线用户。该系统的发射功率最小化问题可以表示为:
min ⁡ w 1 , … , w K    ∑ k = 1 K ∥ w k ∥ 2                                     s.t.     ∣ h k H w k ∣ 2 ∑ j ≠ k ∣ h k H w j ∣ 2 + σ k 2 ⩾ γ k , k = 1 , … K . \min_{\mathbf{w}_1,\dots,\mathbf{w}_K}~~\sum\limits_{k = 1}^K {{{\left\| {{{\mathbf{w}}_k}} \right\|}^2}} \\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\text{s.t.}~~~~ \frac{{\left| {{\mathbf{h}}_k^H{{\mathbf{w}}_k}} \right|^2}}{{\sum\nolimits_{j \ne k} {\left| {{\mathbf{h}}_k^H{{\mathbf{w}}_j}} \right|^2 + \sigma _k^2} }} \geqslant {\gamma _k},k = 1, \ldots K. w1,,wKmin  k=1Kwk2                                    s.t.    j=k hkHwj 2+σk2 hkHwk 2γk,k=1,K.
其中 p k p_k pk表示分配给用户 k k k的发射功率。

求解方法

在上述优化问题的基础上,文本介绍三种无线通信里最常用的求解算法:

  1. SOCP(二阶锥规划)
  2. SDP(半正定规划)
  3. KKT(Karush-Kuhn-Tucker最优化条件)

SOCP

首先介绍SOCP,对于SINR约束条件,不等式两边同时乘以分子,并除以SINR阈值,可转化为一个二阶锥约束:
∣ h k H w k ∣ 2 + 1 γ k ∣ h k H w k ∣ 2 ⩾ ∑ j = 1 K ∣ h k H w j ∣ 2 + σ 2 \left| {{\mathbf{h}}_k^H{{\mathbf{w}}_k}} \right|^2 + \frac{1}{{{\gamma _k}}}\left| {{\mathbf{h}}_k^H{{\mathbf{w}}_k}} \right|^2 \geqslant \sum\limits_{j = 1}^K {\left| {{\mathbf{h}}_k^H{{\mathbf{w}}_j}} \right|^2} + {\sigma ^2} hkHwk 2+γk1 hkHwk 2j=1K hkHwj 2+σ2
W = [ w 1 , … , w K ] {\mathbf{W}} = \left[ {{{\mathbf{w}}_1}, \ldots ,{{\mathbf{w}}_K}} \right] W=[w1,,wK],将右边简化为范数的形式:
1 + 1 γ k ∣ h k H w k ∣ ⩾ ∥ h k H W   σ ∥ \sqrt {1 + \frac{1}{{{\gamma _k}}}} \left| {{\mathbf{h}}_k^H{{\mathbf{w}}_k}} \right| \geqslant \left\| {{\mathbf{h}}_k^H{\mathbf{W}}{\text{ }}{\sigma }} \right\| 1+γk1 hkHwk hkHW σ
在此使用一个常用的小技巧[1],由于 w k \mathbf{w}_k wk和进行一定相位旋转后 e j θ k w k e^{j\theta_k}\mathbf{w}_k ejθkwk θ k ∈ R \theta_k\in\mathbb{R} θkR)后的绝对值是相等的,因此考虑将内积 h k H w k \mathbf{h}_k^H\mathbf{w}_k hkHwk做一定的相位旋转,使得内积为正实数,即: ∣ h k H w k ∣ = h k H w k ≥ 0 \left| {{\mathbf{h}}_k^H{{\mathbf{w}}_k}} \right|={{\mathbf{h}}_k^H{{\mathbf{w}}_k}}\ge 0 hkHwk =hkHwk0,因此上述约束可以进一步转化为:
1 + 1 γ k ℜ ( h k H w k ) ⩾ ∥ h k H W   σ ∥ ℑ ( h k H w k ) = 0 \sqrt {1 + \frac{1}{{{\gamma _k}}}} \Re{ ({{\mathbf{h}}_k^H{{\mathbf{w}}_k}} )} \geqslant \left\| {{\mathbf{h}}_k^H{\mathbf{W}}{\text{ }}{\sigma }} \right\| \\ \Im{({{\mathbf{h}}_k^H{{\mathbf{w}}_k}})} =0 1+γk1 (hkHwk) hkHW σ (hkHwk)=0

为简化表达,将目标函数可以转化为:
∑ k = 1 K ∥ w k ∥ 2 = trace ( W H W ) = vec ( W ) H vec ( W ) = ∥ vec ( W ) ∥ 2 \sum\limits_{k = 1}^K {{{\left\| {{{\mathbf{w}}_k}} \right\|}^2}} = {\text{trace}}\left( {{{\mathbf{W}}^H}{\mathbf{W}}} \right) = {\text{vec}}{\left( {\mathbf{W}} \right)^H}{\text{vec}}\left( {\mathbf{W}} \right) = {\left\| {{\text{vec}}\left( {\mathbf{W}} \right)} \right\|^2} k=1Kwk2=trace(WHW)=vec(W)Hvec(W)=vec(W)2
因此原问题可以等价转化为以下优化问题:
min ⁡ W ∥ vec ( W ) ∥                              s.t.   1 + 1 γ k ℜ ( h k H w k ) ⩾ ∥ h k H W   σ ∥ ,                     ℑ ( h k H w k ) = 0 , k = 1 , … K \mathop {\min }\limits_{\mathbf{W}} \left\| {{\text{vec}}\left( {\mathbf{W}} \right)} \right\| \\ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\text{s.t.}~~ \sqrt {1 + \frac{1}{{{\gamma _k}}}} \Re{( {{\mathbf{h}}_k^H{{\mathbf{w}}_k}} )} \geqslant \left\| {{\mathbf{h}}_k^H{\mathbf{W}}{\text{ }}{\sigma }} \right\|, \\ ~~~~~~~~~~~~~~~~~~~\Im{({{\mathbf{h}}_k^H{{\mathbf{w}}_k}})} =0, k = 1, \ldots K Wminvec(W)                             s.t.  1+γk1 (hkHwk) hkHW σ ,                   (hkHwk)=0,k=1,K
目标函数是凸函数,第一个约束条件是二阶锥规划,是凸约束,第二个约束条件是线性约束,因此可以使用CVX进行求解。

SDP

同样,原问题可以简单地转化为半正定规划问题,令 B k = w k w k H {{\mathbf{B}}_k} = {{\mathbf{w}}_k}{\mathbf{w}}_k^H Bk=wkwkH为半正定的Hermitian矩阵, H k = h k h k H {{\mathbf{H}}_k} = {{\mathbf{h}}_k}{\mathbf{h}}_k^H Hk=hkhkH,由矩阵论的基本结论可知
∥ w k ∥ 2 = trace ( B k ) {\left\| {{{\mathbf{w}}_k}} \right\|^2} = {\text{trace}}\left( {{{\mathbf{B}}_k}} \right) wk2=trace(Bk)
因此原问题可以等价地转化为:
min ⁡ B 1 , … , B k ∑ k = 1 K trace ( B k )  s.t. trace ( H k B k ) − γ k ∑ j ≠ k trace ( H k B j ) ⩾ γ k σ 2 ,   B k ⪰ 0 , ∀ k \mathop {\min }\limits_{{{\mathbf{B}}_1}, \ldots ,{{\mathbf{B}}_k}} \sum\limits_{k = 1}^K {{\text{trace}}\left( {{{\mathbf{B}}_k}} \right)}\\ {\text{ s}}{\text{.t}}{\text{. trace}}\left( {{{\mathbf{H}}_k}{{\mathbf{B}}_k}} \right) - {\gamma _k}\sum\limits_{j \ne k} {{\text{trace}}\left( {{{\mathbf{H}}_k}{{\mathbf{B}}_j}} \right)} \geqslant {\gamma _k}{\sigma ^2},\\ {\text{ }}{{\mathbf{B}}_k} \succeq 0,\forall k B1,,Bkmink=1Ktrace(Bk) s.t. trace(HkBk)γkj=ktrace(HkBj)γkσ2, Bk0,k
由于矩阵的迹为线性函数,因此可以使用CVX求解以上问题,但是需要注意的是当 B k \mathbf{B}_k Bk秩为1时,进行简单的特征值分解即可,若秩大于1,需要利用高斯随机化过程等方法恢复。

KKT

和以上两类方法对比,KKT算法稍微复杂一些,但是可以获得解的结构,更为直观。首先,对于原问题,其拉格朗日函数为:
L ( w 1 , … , w K , λ 1 , … , λ K ) = ∑ k = 1 K ∥ w k ∥ 2 + ∑ k = 1 K λ k ( ∑ i ≠ k 1 σ 2 ∣ h k H w i ∣ 2 + 1 − 1 γ k σ 2 ∣ h k H w k ∣ 2 ) \mathcal{L}\left(\mathbf{w}_1, \ldots, \mathbf{w}_K, \lambda_1, \ldots, \lambda_K\right)=\sum_{k=1}^K\left\|\mathbf{w}_k\right\|^2+\sum_{k=1}^K \lambda_k\left(\sum_{i \neq k} \frac{1}{\sigma^2}\left|\mathbf{h}_k^H \mathbf{w}_i\right|^2+1-\frac{1}{\gamma_k \sigma^2}\left|\mathbf{h}_k^H \mathbf{w}_k\right|^2\right) L(w1,,wK,λ1,,λK)=k=1Kwk2+k=1Kλk i=kσ21 hkHwi 2+1γkσ21 hkHwk 2
其中 λ k ≥ 0 \lambda_k\ge 0 λk0是对应于第 k k k个SINR约束的拉格朗日乘子。在此,在最优解处,满足KKT中的稳定性条件, ∂ L ∂ w k = 0 \frac{{\partial \mathcal{L}}}{{\partial {{\mathbf{w}}_k}}} = {\mathbf{0}} wkL=0,即:(需要用到常用的矩阵求导公式: ∂ ∥ w k ∥ 2 ∂ w k = 2 w k \frac{{\partial {{\left\| {{{\mathbf{w}}_k}} \right\|}^2}}}{{\partial {{\mathbf{w}}_k}}} = 2{{\mathbf{w}}_k} wkwk2=2wk ∂ w k H h k h k H w k ∂ w k = 2 h k h k H w k \frac{{\partial {\mathbf{w}}_k^H{{\mathbf{h}}_k}{\mathbf{h}}_k^H{{\mathbf{w}}_k}}}{{\partial {{\mathbf{w}}_k}}} = 2{{\mathbf{h}}_k}{\mathbf{h}}_k^H{{\mathbf{w}}_k} wkwkHhkhkHwk=2hkhkHwk
w k + ∑ i ≠ k λ i σ 2 h i h i H w k − λ k γ k σ 2 h k h k H w k = 0 ⇔ ( I N + ∑ i = 1 K λ i σ 2 h i h i H ) w k = λ k σ 2 ( 1 + 1 γ k ) h k h k H w k ⇔ w k = ( I N + ∑ i = 1 K λ i σ 2 h i h i H ) − 1 h k λ k σ 2 ( 1 + 1 γ k ) h k H w k ⏟ 标量 

wk+ikλiσ2hihiHwkλkγkσ2hkhkHwk=0(IN+i=1Kλiσ2hihiH)wk=λkσ2(1+1γk)hkhkHwkwk=(IN+i=1Kλiσ2hihiH)1hkλkσ2(1+1γk)hkHwk标量 
wk+i=kσ2λihihiHwkγkσ2λkhkhkHwk=0(IN+i=1Kσ2λihihiH)wk=σ2λk(1+γk1)hkhkHwkwk=(IN+i=1Kσ2λihihiH)1hk标量  σ2λk(1+γk1)hkHwk
由于 λ k σ 2 ( 1 + 1 γ k ) h k H w k \frac{\lambda_k}{\sigma^2}\left(1+\frac{1}{\gamma_k}\right) \mathbf{h}_k^H \mathbf{w}_k σ2λk(1+γk1)hkHwk是一个标量,因此最优 w k \mathbf{w}_k wk的方向一定是平行于向量 ( I N + ∑ i = 1 K λ i σ 2 h i h i H ) − 1 h k \left(\mathbf{I}_N+\sum_{i=1}^K \frac{\lambda_i}{\sigma^2} \mathbf{h}_i \mathbf{h}_i^H\right)^{-1}\mathbf{h}_k (IN+i=1Kσ2λihihiH)1hk,即足以有的波束向量 w 1 ⋆ , … , w K ⋆ \mathbf{w}_1^\star,\dots,\mathbf{w}_K^\star w1,,wK具有以下的形式
w k ⋆ = p k ⏟ =波束功率 ( I N + ∑ i = 1 K λ i σ 2 h i h i H ) − 1 h k ∥ ( I N + ∑ i = 1 K λ i σ 2 h i h i H ) − 1 h k ∥ ⏟ = w ~ k ⋆ =  波束方向   for  k = 1 , … , K \mathbf{w}_k^{\star}=\underbrace{\sqrt{p_k}}_{\text {=波束功率}} \underbrace{\frac{\left(\mathbf{I}_N+\sum_{i=1}^K \frac{\lambda_i}{\sigma^2} \mathbf{h}_i \mathbf{h}_i^H\right)^{-1} \mathbf{h}_k}{\left\|\left(\mathbf{I}_N+\sum_{i=1}^K \frac{\lambda_i}{\sigma^2} \mathbf{h}_i \mathbf{h}_i^H\right)^{-1} \mathbf{h}_k\right\|}}_{=\tilde{\mathbf{w}}_k^{\star}=\text { 波束方向 }} \quad \text { for } k=1, \ldots, K wk==波束功率 pk =w~k= 波束方向  (IN+i=1Kσ2λihihiH)1hk (IN+i=1Kσ2λihihiH)1hk for k=1,,K
p k p_k pk表示分配给用户 k k k的功率, w ~ k ⋆ \tilde{\mathbf{w}}_k^{\star} w~k表示归一化的波束方向。可以看出,各用户的波束方向可以直接根据计算得到,而需要计算每个用户所分配的功率。最优的功率分配在原问题SINR约束都取等号时取得,即 1 γ k p k ∣ h k H w ~ k ⋆ ∣ 2 − ∑ i ≠ k p i ∣ h k H w ~ i ⋆ ∣ 2 = σ 2 \frac{1}{\gamma_k} p_k\left|\mathbf{h}_k^H \tilde{\mathbf{w}}_k^{\star}\right|^2-\sum_{i \neq k} p_i\left|\mathbf{h}_k^H \tilde{\mathbf{w}}_i^{\star}\right|^2=\sigma^2 γk1pk hkHw~k 2i=kpi hkHw~i 2=σ2 ∀ k = 1 , … , K \forall k=1,\dots ,K k=1,,K),因此在这里只需要联合求解 K K K个方程构成的方程组:
[ p 1 ⋮ p K ] = M − 1 [ σ 2 ⋮ σ 2 ]  其中  [ M ] i j = { 1 γ i ∣ h i H w ~ i ⋆ ∣ 2 , i = j − ∣ h i H w ~ j ⋆ ∣ 2 , i ≠ j \left[
p1pK
\right]=\mathbf{M}^{-1}\left[
σ2σ2
\right] \quad \text { 其中 } \quad[\mathbf{M}]_{i j}=
{1γi|hiHw~i|2,i=j|hiHw~j|2,ij
p1pK =M1 σ2σ2  其中 [M]ij={γi1 hiHw~i 2, hiHw~j 2,i=ji=j

最后需要解决的是拉格朗日乘子 λ k \lambda_k λk的值即可。根据稳态性条件处的推导,可知:
λ k = σ 2 ( 1 + 1 γ k ) h k H ( I N + ∑ i = 1 K λ i σ 2 h i h i H ) − 1 h k \lambda_k=\frac{\sigma^2}{\left(1+\frac{1}{\gamma_k}\right) \mathbf{h}_k^H\left(\mathbf{I}_N+\sum_{i=1}^K \frac{\lambda_i}{\sigma^2} \mathbf{h}_i \mathbf{h}_i^H\right)^{-1} \mathbf{h}_k} λk=(1+γk1)hkH(IN+i=1Kσ2λihihiH)1hkσ2
通过该方程,以及固定点算法不断迭代即可收敛得到最终的拉格朗日乘子,固定点算法是初始化一组 λ 0 \lambda_0 λ0后去根据上式更新 λ \lambda λ,不断迭代,直至收敛。

仿真结果:

以上方法和迫零并等功率分配算法进行对比,得到如下仿真结果:
仿真结果
可以看出几种方法得到的性能都近似,强于迫零算法。

参考文献

[1] Björnson E, Bengtsson M, Ottersten B. Optimal multiuser transmit beamforming: A difficult problem with a simple solution structure [lecture notes][J]. IEEE Signal Processing Magazine, 2014, 31(4): 142-148.

完整程序源码及图像下载地址

功率最小化问题Matlab代码.zip:下载地址

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/399401
推荐阅读
相关标签
  

闽ICP备14008679号