加权最小均方误差(weighted minimum mean square error, WMMSE)算法及Python实现

本文详细介绍了MIMO系统下行链路中的加权最小均方误差(WMMSE)算法,用于解决加权和率(WSR)最大化问题。首先,定义了MIMO系统的数学模型,包括发射和接收信号的表达式,以及噪声和数据流的相关矩阵。然后,讨论了WSR最大化问题,即通过设计发射滤波器使得加权和率最大。接着,阐述了WMMSE算法的基本思想,指出在特定条件下,WMMSE问题的解与WSR问题的解等价。此外,提出了一个迭代算法,该算法通过交替优化发射滤波器、MMSE滤波器和权重矩阵来逼近WSR最大化。最后,讨论了算法的收敛性和推广到多发射机场景的应用,并给出了Python实现的简要框架。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加权最小均方误差(weighted minimum mean square error, WMMSE)算法[1]

一、问题描述

考虑MIMO系统中的下行链路,基站发射天线数为 P P P,用户数为 K K K,每个用户的接收天线数为 Q Q Q。用户 k k k的MIMO信道记为 H k ∈ C [ Q × P ] \mathbf{H}_k\in\mathbb{C}^{[Q{\times}P]} HkC[Q×P],则其在采样时间 n n n时的接受信号可以表示为,
y k ( n ) = H k x ( n ) + v k ( n ) , \mathbf{y}_k(n)=\mathbf{H}_k\mathbf{x}(n)+\mathbf{v}_k(n), yk(n)=Hkx(n)+vk(n),
其中 x ( n ) ∈ C [ P × 1 ] \mathbf{x}(n)\in\mathbb{C}^{[P{\times}1]} x(n)C[P×1]为发射向量, v k ( n ) ∈ C [ Q × 1 ] \mathbf{v}_k(n)\in\mathbb{C}^{[Q{\times}1]} vk(n)C[Q×1]为包含循环对称高斯白噪声的噪声向量,协方差矩阵为 R v k v k = E [ v k ( n ) v k ( n ) H ] = I Q \mathbf{R}_{v_kv_k}=\mathbb{E}\left[\mathbf{v}_k(n)\mathbf{v}_k(n)^\mathsf{H}\right]=\mathbf{I}_Q Rvkvk=E[vk(n)vk(n)H]=IQ。发射向量是输入数据向量 d 1 ( n ) , ⋯   , d K ( n ) ∈ C [ Q × 1 ] \mathbf{d}_1(n),\cdots,\mathbf{d}_K(n)\in\mathbb{C}^{[Q{\times}1]} d1(n),,dK(n)C[Q×1]的线性组合,即,
x ( n ) = ∑ k = 1 K B k d k ( n ) . \mathbf{x}(n)=\sum_{k=1}^K\mathbf{B}_k\mathbf{d}_k(n). x(n)=k=1KBkdk(n).
其中,矩阵 B 1 , ⋯   , B K ∈ C [ P × Q ] \mathbf{B}_1,\cdots,\mathbf{B}_K\in\mathbb{C}^{[P{\times}Q]} B1,,BKC[P×Q]为发射滤波器(波束赋形向量)。上文中,隐含地假设了每个用户有 Q Q Q个并行的数据流,且各个数据流相互独立,即 E [ d k ( n ) d k H ( n ) ] = I Q \mathbb{E}\left[\mathbf{d}_k(n)\mathbf{d}_k^\mathsf{H}(n)\right]=\mathbf{I}_Q E[dk(n)dkH(n)]=IQ

若发射的总时长为 N N N,则为满足总功率约束,应有 1 N ∑ n = 1 N x H ( n ) x ( n ) ≤ E t x \frac{1}{N}\sum_{n=1}^N\mathbf{x}^\mathsf{H}(n)\mathbf{x}(n){\leq}E_\mathsf{tx} N1n=1NxH(n)x(n)Etx。当 N N N足够大时,有 E [ x H ( n ) x ( n ) ] = ∑ k T r ( B k B k H ) \mathbb{E}\left[\mathbf{x}^\mathsf{H}(n)\mathbf{x}(n)\right]=\sum_k\mathrm{Tr}(\mathbf{B}_k\mathbf{B}_k^\mathsf{H}) E[xH(n)x(n)]=kTr(BkBkH)

首先考虑加权和率(weighted sum-rate, WRS)最大问题。通过设计发射滤波器 B 1 , ⋯   , B K \mathbf{B}_1,\cdots,\mathbf{B}_K B1,,BK使加权和率最大化的问题可以建模为,
P 1 : [ B 1 W S R , ⋯   , B K W S R ] = arg ⁡ min ⁡ B 1 , ⋯   , B K ∑ k − u R k R k s . t . ∑ k = 1 K T r ( B k B k H ) = E t x . \begin{aligned} \mathbf{P1}:\quad [\mathbf{B}_1^\mathsf{WSR},\cdots,\mathbf{B}_K^\mathsf{WSR}]= & \arg\min_{\mathbf{B}_1,\cdots,\mathbf{B}_K} \sum_k-u_{R_k}R_k \\ & \mathrm{s.t. } \quad \sum_{k=1}^K\mathrm{Tr}(\mathbf{B}_k\mathbf{B}_k^\mathsf{H})=E_\mathsf{tx}. \end{aligned} P1:[B1WSR,,BKWSR]=argB1,,BKminkuRkRks.t.k=1KTr(BkBkH)=Etx.
假设信号为高斯分布,则数据率为,
R k = l o g   d e t ( I k + B k H H k H R v ~ k v ~ k − 1 H k B k ) , R_k=\mathrm{log}\ \mathrm{det}\left(\mathbf{I}_k+\mathbf{B}_k^\mathsf{H}\mathbf{H}_k^\mathsf{H}\mathbf{R}_{\tilde{v}_k\tilde{v}_k}^{-1}\mathbf{H}_k\mathbf{B}_k\right), Rk=log det(Ik+BkHHkHRv~kv~k1HkBk),
其中 R v ~ k v ~ k \mathbf{R}_{\tilde{v}_k\tilde{v}_k} Rv~kv~k为用户 k k k的等效噪声协方差矩阵,即,
R v ~ k v ~ k = I k + ∑ i = 1 , i ≠ k K H k B i B i H H k H . \mathbf{R}_{\tilde{v}_k\tilde{v}_k}=\mathbf{I}_k+\sum_{i=1,i\neq{k}}^K\mathbf{H}_k\mathbf{B}_i\mathbf{B}_i^\mathsf{H}\mathbf{H}_k^\mathsf{H}. Rv~kv~k=Ik+i=1,i=kKHkBiBiHHkH.

接着考虑WMMSE最小化问题。若接收端采用MMSE滤波器,即,
A k M M S E = arg ⁡   min ⁡ A k E [ ∣ ∣ A k y k − d k ∣ ∣ 2 ] = B k H H k H ( H k B k B k H H k H + R v ~ k v ~ k ) − 1 , \begin{aligned} \mathbf{A}_k^\mathsf{MMSE}&=\arg\ \min_{\mathbf{A}_k}\mathbb{E}\left[||\mathbf{A}_k\mathbf{y}_k-\mathbf{d}_k||^2\right]\\ &=\mathbf{B}_k^\mathsf{H}\mathbf{H}_k^\mathsf{H}(\mathbf{H}_k\mathbf{B}_k\mathbf{B}_k^\mathsf{H}\mathbf{H}_k^\mathsf{H}+\mathbf{R}_{\tilde{v}_k\tilde{v}_k})^{-1}, \end{aligned} AkMMSE=arg AkminE[∣∣Akykdk2]=BkHHkH(HkBkBkHHkH+Rv~kv~k)1,
则用户 k k k的MSE矩阵可以表示为,
E k = E [ ( A k M M S E y k − d k ) ( A k M M S E y k − d k ) ) H ] = ( I k + B k H H k H R v ~ k v ~ k − 1 H k B k ) − 1 . \begin{aligned} \mathbf{E}_k&=\mathbb{E}\left[(\mathbf{A}_k^\mathsf{MMSE}\mathbf{y}_k-\mathbf{d}_k)(\mathbf{A}_k^\mathsf{MMSE}\mathbf{y}_k-\mathbf{d}_k))^\mathsf{H}\right]\\ &=(\mathbf{I}_k+\mathbf{B}_k^\mathsf{H}\mathbf{H}_k^\mathsf{H}\mathbf{R}_{\tilde{v}_k\tilde{v}_k}^{-1}\mathbf{H}_k\mathbf{B}_k)^{-1}. \end{aligned} Ek=E[(AkMMSEykdk)(AkMMSEykdk))H]=(Ik+BkHHkHRv~kv~k1HkBk)1.

WMMSE最小化问题,是指在接收端采用MMSE滤波器时,使加权后的均方误差最小。该问题可以表示为,
P 2 : [ B 1 W M M S E , ⋯   , B K W M M S E ] = arg ⁡ min ⁡ B 1 , ⋯   , B K ∑ k T r ( W k E k ) s . t . ∑ k T r ( B k B k H ) = E t x , \begin{aligned} \mathbf{P2}:\quad[\mathbf{B}_1^\mathsf{WMMSE},\cdots,\mathbf{B}_K^\mathsf{WMMSE}]&=\arg\min_{\mathbf{B}_1,\cdots,\mathbf{B}_K}\sum_{k}\mathrm{Tr}(\mathbf{W}_k\mathbf{E}_k)\\ &\mathrm{s.t.}\quad\sum_{k}\mathrm{Tr}(\mathbf{B}_k\mathbf{B}_k^\mathsf{H})=E_\mathsf{tx}, \end{aligned} P2:[B1WMMSE,,BKWMMSE]=argB1,,BKminkTr(WkEk)s.t.kTr(BkBkH)=Etx,
其中 W k ∈ C [ Q k × Q k ] \mathbf{W}_k\in\mathbb{C}^{[Q_k\times{Q}_k]} WkC[Qk×Qk]为与用户 k k k相关的权重矩阵。

二、基本思想

原始问题P1是优化变量为 B k ∀ k \mathbf{B}_k\forall k Bkk的非凸问题,其与优化变量为 B k , A k , W k ∀ k \mathbf{B}_k,\mathbf{A}_k,\mathbf{W}_k\forall k Bk,Ak,Wkk的优化问题P3等价,因为它们具有相同的最优解 B k ⋆ ∀ k \mathbf{B}^\star_k\forall k Bkk

将原始问题P1转化为一个更高维度的优化问题P3,是因为P3在固定任意其它变量、单独优化某一变量时,具有显式解。通过迭代地优化各个变量的方式求解P3,可以收敛至一局部最优解。

三、最大化WSR与最小化WMMSE的联系

首先,P1P2在目标函数上存在联系。从用户 k k k的数据率 R k R_k Rk和MSE矩阵 E k \mathbf{E}_k Ek的表达式上,可以看出 R k = l o g   d e t ( E k − 1 ) R_k=\mathrm{log}\ \mathrm{det}(\mathbf{E}_k^{-1}) Rk=log det(Ek1)

其次,P1P2的KKT条件在一定条件下等价。对于优化问题P1,其拉格朗日函数为,
f ( B 1 , ⋯   , B K ) = ∑ k − u R k R k + λ ( ∑ k T r ( B k B k H ) − E t x ) f(\mathbf{B}_1,\cdots,\mathbf{B}_K)=\sum_k-u_{R_k}R_k+\lambda\left(\sum_k\mathrm{Tr}(\mathbf{B}_k\mathbf{B}_k^\mathsf{H})-E_\mathsf{tx}\right) f(B1,,BK)=kuRkRk+λ(kTr(BkBkH)Etx)
相关的梯度为,
∇ B k R k = H k H R v ~ k v ~ k − 1 H k B k E k . \nabla_{\mathbf{B}_k}R_k=\mathbf{H}_k^\mathsf{H}\mathbf{R}_{\tilde{v}_k\tilde{v}_k}^{-1}\mathbf{H}_k\mathbf{B}_k\mathbf{E}_k. BkRk=HkHRv~kv~k1HkBkEk.
∇ B k R i = − H i H R v ~ i v ~ i − 1 H i B i E i B i H H i H R v ~ i v ~ i − 1 H i B k . \nabla_{\mathbf{B}_k}R_i=-\mathbf{H}_i^\mathsf{H}\mathbf{R}_{\tilde{v}_i\tilde{v}_i}^{-1}\mathbf{H}_i\mathbf{B}_i\mathbf{E}_i\mathbf{B}_i^\mathsf{H}\mathbf{H}_i^\mathsf{H}\mathbf{R}_{\tilde{v}_i\tilde{v}_i}^{-1}\mathbf{H}_i\mathbf{B}_k. BkRi=HiHRv~iv~i1HiBiEiBiHHiHRv~iv~i1HiBk.
对于优化问题P2,其拉格朗日函数为,
g ( B 1 , ⋯   , B K ) = ∑ k T r ( W k E k ) + λ ( ∑ k T r ( B k B k H ) − E t x ) , g(\mathbf{B}_1,\cdots,\mathbf{B}_K)=\sum_k\mathrm{Tr}(\mathbf{W}_k\mathbf{E}_k)+\lambda\left(\sum_k\mathrm{Tr}(\mathbf{B}_k\mathbf{B}_k^\mathsf{H})-E_\mathsf{tx}\right), g(B1,,BK)=kTr(WkEk)+λ(kTr(BkBkH)Etx),
相关的梯度为,
∇ B k T r ( W k E k ) = − H k H R v ~ k v ~ k − 1 H k B k E k W k E k , \nabla_{\mathbf{B}_k}\mathrm{Tr}(\mathbf{W}_k\mathbf{E}_k)=-\mathbf{H}_k^\mathsf{H}\mathbf{R}_{\tilde{v}_k\tilde{v}_k}^{-1}\mathbf{H}_k\mathbf{B}_k\mathbf{E}_k\mathbf{W}_k\mathbf{E}_k, BkTr(WkEk)=HkHRv~kv~k1HkBkEkWkEk,
∇ B k T r ( W i E i ) = H i H R v ~ i v ~ i − 1 H i B i E i W i E i B i H H i H R v ~ i v ~ i − 1 H i B k . \nabla_{\mathbf{B}_k}\mathrm{Tr}(\mathbf{W}_i\mathbf{E}_i)=\mathbf{H}_i^\mathsf{H}\mathbf{R}_{\tilde{v}_i\tilde{v}_i}^{-1}\mathbf{H}_i\mathbf{B}_i\mathbf{E}_i\mathbf{W}_i\mathbf{E}_i\mathbf{B}_i^\mathsf{H}\mathbf{H}_i^\mathsf{H}\mathbf{R}_{\tilde{v}_i\tilde{v}_i}^{-1}\mathbf{H}_i\mathbf{B}_k. BkTr(WiEi)=HiHRv~iv~i1HiBiEiWiEiBiHHiHRv~iv~i1HiBk.
从上式可以看出,若给定发射滤波器 B 1 , ⋯   , B K \mathbf{B}_1,\cdots,\mathbf{B}_K B1,,BK以及相应的MMSE矩阵 E 1 , ⋯   , E K \mathbf{E}_1,\cdots,\mathbf{E}_K E1,,EK,则当MSE权重矩阵选定为 W k = u k E k − 1 \mathbf{W}_k=u_k\mathbf{E}_k^{-1} Wk=ukEk1时,WMMSE问题的梯度与WSR问题的梯度相同。

最后,P1P2的解在一定条件下等价。假设WSR问题的最优解为 B 1 W S R , ⋯   , B K W S R \mathbf{B}_1^\mathsf{WSR},\cdots,\mathbf{B}_K^\mathsf{WSR} B1WSR,,BKWSR,相应的MMSE矩阵为 E 1 W S R , ⋯   , E K W S R \mathbf{E}_1^\mathsf{WSR},\cdots,\mathbf{E}_K^\mathsf{WSR} E1WSR,,EKWSR,则其满足WSR问题的KKT条件。若根据 W k = u k E k − 1 \mathbf{W}_k=u_k\mathbf{E}_k^{-1} Wk=ukEk1设置WMMSE问题的权重矩阵,则可知当 B k = B k W S R ∀ k \mathbf{B}_k=\mathbf{B}_k^\mathsf{WSR}\forall k Bk=BkWSRk时,该预编码矩阵满足WMMSE问题的KKT条件。因此,此时二者最优解相等,即 B k W M M S E = B k W S R ∀ k \mathbf{B}_k^\mathsf{WMMSE}=\mathbf{B}_k^\mathsf{WSR}\forall k BkWMMSE=BkWSRk

四、WMMSE算法及其收敛性分析

根据P1P2的联系,可通过求解WMMSE最小化问题求解WSR最大化问题。相应的迭代算法如下。

P r o p o s e d   A l g o r i t h m : s e t   n = 0 s e t   B k n = B k i n i ∀ k i t e r a t e u p d a t e   n = n + 1 I .   c o m p u t e   A k n ∣ B i n − 1 ∀ i   f o r   a l l   k   w i t h   M M S E   f i l t e r s I I .   c o m p u t e W k n ∣ B i n − 1 ∀ i   f o r   a l l   k   I I I .   c o m p u t e B n ∣ A n ,   W n . u n t i l   c o n v e r g e n c e \begin{aligned} & \mathrm{Proposed\ Algorithm:} \\ & set\ n=0 \\ & set\ \mathbf{B}_k^n=\mathbf{B}_k^\mathsf{ini}\forall k\\ & iterate \\ & \quad update\ n=n+1 \\ & \quad \mathrm{I.}\ compute\ \mathbf{A}_k^n|\mathbf{B}_i^{n-1}\forall i\ {for}\ all\ k\ with\ \mathrm{MMSE}\ filters\\ & \quad \mathrm{II.}\ compute \mathbf{W}_k^n|\mathbf{B}_i^{n-1}\forall i\ for\ all\ k\ \\ & \quad \mathrm{III.}\ compute \mathbf{B}^n|\mathbf{A}^n,\ \mathbf{W}^n.\\ & until\ convergence \end{aligned} Proposed Algorithm:set n=0set Bkn=Bkinikiterateupdate n=n+1I. compute AknBin1i for all k with MMSE filtersII. computeWknBin1i for all k III. computeBnAn, Wn.until convergence
其中,步骤 I I I \mathrm{III} III为求解WMMSE最小化问题,其显式解为,
B ˉ = ( H H A H W A H + T r ( W A A H ) E t x I P ) − 1 H H A H W , \bar{\mathbf{B}}=(\mathbf{H}^\mathsf{H}\mathbf{A}^\mathsf{H}\mathbf{WAH}+\frac{\mathrm{Tr}(\mathbf{WA}\mathbf{A}^\mathsf{H})}{E_\mathsf{tx}}\mathbf{I}_P)^{-1}\mathbf{H}^\mathsf{H}\mathbf{A}^\mathsf{H}\mathbf{W}, Bˉ=(HHAHWAH+EtxTr(WAAH)IP)1HHAHW,
B W M M S E = b B ˉ , \mathbf{B}^\mathsf{WMMSE}=b\bar{\mathbf{B}}, BWMMSE=bBˉ,
其中, W [ Q K × Q K ] = d i a g { W 1 , ⋯   , W K } \mathbf{W}_{[QK{\times}QK]}=\mathrm{diag}\{\mathbf{W}_1,\cdots,\mathbf{W}_K\} W[QK×QK]=diag{W1,,WK} A [ Q K × Q K ] = d i a g { A 1 , ⋯   , A K } \mathbf{A}_{[QK{\times}QK]}=\mathrm{diag}\{\mathbf{A}_1,\cdots,\mathbf{A}_K\} A[QK×QK]=diag{A1,,AK} H [ Q K × P ] = [ H 1 T , ⋯   , H K T ] T \mathbf{H}_{[QK{\times}P]}=[\mathbf{H}_1^\mathsf{T},\cdots,\mathbf{H}_K^\mathsf{T}]^\mathsf{T} H[QK×P]=[H1T,,HKT]T b = E t x T r ( B B ˉ H ˉ ) b=\sqrt{\frac{E_\mathsf{tx}}{\mathrm{Tr}(\bar{\mathbf{B}\bar{\mathbf{B}}^\mathsf{H}})}} b=Tr(BBˉHˉ)Etx

为了分析上述算法的收敛性,考虑如下优化问题,
P 3 : [ B k W S R ∀ k ] = arg ⁡ min ⁡ B k , A k , W k ∀ k ∑ k l ~ k ( W k , A k , B i ∀ i ) s . t .   ∑ k T r ( B k B k H ) ≤ E t x , \begin{aligned} \mathbf{P3}:\quad[\mathbf{B}_k^\mathsf{WSR}\forall k]&=\arg\min_{\mathbf{B}_k,\mathbf{A}_k,\mathbf{W}_k\forall k}\sum_k\tilde{l}_k(\mathbf{W}_k,\mathbf{A}_k,\mathbf{B}_i\forall i) \\ &s.t.\ \sum_k\mathrm{Tr}(\mathbf{B}_k\mathbf{B}_k^\mathsf{H}){\leq}E_\mathsf{tx}, \end{aligned} P3:[BkWSRk]=argBk,Ak,Wkkminkl~k(Wk,Ak,Bii)s.t. kTr(BkBkH)Etx,
其中, l ~ k ( W k , A k , B i ∀ i ) = T r ( W k E ~ k ) − u R k l o g   d e t ( u R k − 1 W k ) − 1 − u R k Q \tilde{l}_k(\mathbf{W}_k,\mathbf{A}_k,\mathbf{B}_i\forall i)=\mathrm{Tr}(\mathbf{W}_k\tilde{\mathbf{E}}_k)-u_{R_k}\mathrm{log}\ \mathrm{det}(u_{R_k}^{-1}\mathbf{W}_k)^{-1}-u_{R_k}Q l~k(Wk,Ak,Bii)=Tr(WkE~k)uRklog det(uRk1Wk)1uRkQ E ~ k = E [ ( A k y k − d k ) ( A k y k − d k ) H ] \tilde{\mathbf{E}}_k=\mathbb{E}\left[(\mathbf{A}_k\mathbf{y}_k-\mathbf{d}_k)(\mathbf{A}_k\mathbf{y}_k-\mathbf{d}_k)^\mathsf{H}\right] E~k=E[(Akykdk)(Akykdk)H]

P3中,依次优化变量 A k \mathbf{A}_k Ak W k \mathbf{W}_k Wk,易知当 A k = A k M M S E ( B i ∀ i ) \mathbf{A}_k=\mathbf{A}_k^\mathsf{MMSE}(\mathbf{B}_i\forall i) Ak=AkMMSE(Bii) W k = W k m i n ( B i ∀ i ) = u R k E k − 1 ( B i ∀ i ) \mathbf{W}_k=\mathbf{W}_k^\mathsf{min}(\mathbf{B}_i\forall i)=u_{R_k}\mathbf{E}_k^{-1}(\mathbf{B}_i\forall i) Wk=Wkmin(Bii)=uRkEk1(Bii)时,目标函数达到最小值,此时P3P1等价。即,P3P1具有相同的目标值和最优解。

下面考虑P3和WMMSE算法的对应关系。实际上,算法中的步骤 I \mathrm{I} I对应于在 B k ∀ k \mathbf{B}_k\forall k Bkk W k ∀ k \mathbf{W}_k\forall k Wkk给定的情况下优化 A k ∀ k \mathbf{A}_k\forall k Akk;算法中的步骤 I I I \mathrm{III} III对应于在 W k ∀ k \mathbf{W}_k\forall k Wkk A k ∀ k \mathbf{A}_k\forall k Akk给定的情况下优化 B k ∀ k \mathbf{B}_k\forall k Bkk;算法中的步骤 I I I \mathrm{III} III对应于在 A k ∀ k \mathbf{A}_k\forall k Akk B k ∀ k \mathbf{B}_k\forall k Bkk给定的情况下优化 W k ∀ k \mathbf{W}_k\forall k Wkk。这三个过程均使P3的目标函数单调减小,因此算法最终会收敛至一局部最优解。

*五、使MMSE矩阵为对角阵的WMMSE-D算法

根据 R k R_k Rk的表达式以及性质 d e t ( I + A B ) = d e t ( I + B A ) \mathrm{det}(I+AB)=\mathrm{det}(I+BA) det(I+AB)=det(I+BA)可知,若将发射滤波器由 B k \mathbf{B}_k Bk改为 B ~ k = B k Q k \tilde{\mathbf{B}}_k=\mathbf{B}_k\mathbf{Q}_k B~k=BkQk,则用户 k k k的数据率保持不变。其中, Q k \mathbf{Q}_k Qk为任意施密特矩阵。

当取 Q k = V k \mathbf{Q}_k=\mathbf{V}_k Qk=Vk,其中 V k Λ k V k H = B k H H k H R v ~ k v ~ k − 1 H k B k \mathbf{V_k}\Lambda_k\mathbf{V}_k^\mathsf{H}=\mathbf{B}_k^\mathsf{H}\mathbf{H}_k^\mathsf{H}\mathbf{R}_{\tilde{v}_k\tilde{v}_k}^{-1}\mathbf{H}_k\mathbf{B}_k VkΛkVkH=BkHHkHRv~kv~k1HkBk时,有 E k − 1 = I k + Λ k \mathbf{E}_k^{-1}=\mathbf{I}_k+\Lambda{k} Ek1=Ik+Λk,为对角矩阵。

E k \mathbf{E}_k Ek为最优解对应的MMSE矩阵,则有 l o g   d e t ( E k − 1 ) ≥ ∑ q l o g ( e k , q ) − 1 \mathrm{log}\ \mathrm{det}(\mathbf{E}_k^{-1}){\geq}\sum_{q}\mathrm{log}(e_{k,q})^{-1} log det(Ek1)qlog(ek,q)1,等号在 E k \mathbf{E}_k Ek为对角阵时成立。所以,有如下关系,
l o g   d e t E k − 1 ( B k , R v ~ k v ~ k ) = max ⁡ Q k ∑ q l o g e k , q − 1 ( B k Q k , R v ~ k v ~ k ) . \mathrm{log}\ \mathrm{det}\mathbf{E}_k^{-1}(\mathbf{B}_k,\mathbf{R}_{\tilde{v}_k\tilde{v}_k})=\max_{\mathbf{Q}_k}\sum_q\mathrm{log}e_{k,q}^{-1}(\mathbf{B}_k\mathbf{Q}_k,\mathbf{R}_{\tilde{v}_k\tilde{v}_k}). log detEk1(Bk,Rv~kv~k)=Qkmaxqlogek,q1(BkQk,Rv~kv~k).

所以,P1可转化为如下优化问题,且P4的解是P1中能够使 E k \mathbf{E}_k Ek为对角矩阵的解,

P 4 : [ B k W S R D I A G ∀ k ] = arg ⁡ min ⁡ B k ∀ k ∑ k ∑ q − u R k l o g e k , q − 1 s . t . ∑ k T r ( B k B k H ) ≤ E t x . \begin{aligned} \mathbf{P4:}\quad[\mathbf{B}_k^\mathsf{WSRDIAG}\forall k]&=\arg\min_{\mathbf{B}_k\forall k}\sum_k\sum_q-u_{R_k}\mathrm{log}e_{k,q}^{-1}\\ &s.t.\quad\sum_k\mathrm{Tr}(\mathbf{B}_k\mathbf{B}_k^\mathsf{H}){\leq}E_\mathsf{tx}. \end{aligned} P4:[BkWSRDIAGk]=argBkkminkquRklogek,q1s.t.kTr(BkBkH)Etx.

P1类似地,考虑与P4具有相同解的WMMSE最小化问题,可得到类似的WMMSE-D算法。该算法与WMMSE算法的区别仅在于,此时 W k = u k d i a g { e k , 1 − 1 , ⋯   , e k , Q − 1 } \mathbf{W}_k=u_k\mathrm{diag}\{e_{k,1}^{-1},\cdots,e_{k,Q}^{-1}\} Wk=ukdiag{ek,11,,ek,Q1}

六、推广

上文考虑的实际是单发射机的情况,即只有一个发射设备。文献[2]考虑了包含多个发射机的情形,该场景下每个发射机服务其覆盖范围内的多个用户。二者的区别仅在于,在具有多个发射机时,每个用户接收信号的干扰项中除了包含同一发射机发射给其它用户的信号(小区内干扰)外,还包含不同发射机发射给其它用户的信号(小区间干扰)。

七、MU-MIMO系统下WMMSE算法的Python实现

class MUMIMO:
    def __init__(self, num_user, num_rx, num_tx, num_stream, transmit_power, noise_power=1):
        self._num_user = num_user
        self._num_rx = num_rx
        self._num_tx = num_tx
        self._num_stream = num_stream
        self._transmit_power = transmit_power
        self._noise_power = noise_power

    def __str__(self):
        return 'users-{}, receive antennas-{}, transmit antennas-{}, streams-{}, transmit power-{}, noise power-{}'.format(
            self._num_user, self._num_rx, self._num_tx, self._num_stream, self._transmit_power, self._noise_power
        )

    def generate_channel(self, n_samples):
        H = np.random.randn(n_samples, self._num_user, self._num_rx, self._num_tx) + 1j * np.random.randn(n_samples, self._num_user, self._num_rx, self._num_tx)
        H = H / np.sqrt(2)
        return H.astype(np.complex64)

    def WMMSE(self, H, V_ini=None, maximum_iter=200):
        n_sample = H.shape[0]
        if V_ini is not None:
            V = V_ini
        else:
            V = np.random.randn(n_sample, self._num_tx, self._num_stream * self._num_user)\
                    + 1j * np.random.randn(n_sample, self._num_tx, self._num_stream * self._num_user)
            V = V * np.sqrt(self._transmit_power / np.real(np.trace(np.matmul(V, V.conj().transpose(0, 2, 1)), axis1=1, axis2=2))).reshape(-1, 1, 1)
            V = V.reshape(n_sample, self._num_tx, self._num_user, self._num_stream).transpose(0, 2, 1, 3)
        for i in range(maximum_iter):
            # compute MSE with given precoders
            HV = np.matmul(
                H.reshape(n_sample, self._num_user * self._num_rx, self._num_tx),
                V.transpose(0, 2, 1, 3).reshape(n_sample, self._num_tx, self._num_user * self._num_stream)
            ).reshape(n_sample, self._num_user, self._num_rx, self._num_user, self._num_stream).transpose(0, 1, 3, 2, 4)
            HVVH = np.matmul(
                HV,
                HV.conj().transpose(0, 1, 2, 4, 3)
            )
            eye = np.eye(self._num_rx).reshape(1, 1, self._num_rx, self._num_rx)
            R = eye * self._noise_power + np.sum(HVVH[:, :, :, :, :], axis=2) - np.diagonal(HVVH, axis1=1, axis2=2).transpose(0, 3, 1, 2)
            A = V.conj().transpose(0, 1, 3, 2) @ H.conj().transpose(0, 1, 3, 2) @ np.linalg.inv(R + np.diagonal(HVVH, axis1=1, axis2=2).transpose(0, 3, 1, 2))

            # compute weights with given precoders
            eye = np.eye(self._num_stream).reshape(1, 1, self._num_stream, self._num_stream)
            W = eye + V.conj().transpose(0, 1, 3, 2) @ H.conj().transpose(0, 1, 3, 2) @ np.linalg.inv(R) @ H @ V

            # update precoders
            P1 = np.sum(H.conj().transpose(0, 1, 3, 2) @ A.conj().transpose(0, 1, 3, 2) @ W @ A @ H, axis=1)
            P2 = np.sum(np.trace(W @ A @ A.conj().transpose(0, 1, 3, 2), axis1=2, axis2=3), axis=1).reshape(n_sample, 1, 1) * np.eye(self._num_tx).reshape(1, self._num_tx, self._num_tx) / self._transmit_power * self._noise_power
            P3 = (H.conj().transpose(0, 1, 3, 2) @ A.conj().transpose(0, 1, 3, 2) @ W).transpose(0, 2, 1, 3).reshape(n_sample, self._num_tx, self._num_user * self._num_stream)
            V = (np.linalg.inv(P1 + P2) @ P3)
            V = V * np.sqrt(self._transmit_power / np.real(np.trace(np.matmul(V, V.conj().transpose(0, 2, 1)), axis1=1, axis2=2))).reshape(-1, 1, 1)
            V = V.reshape(n_sample, self._num_tx, self._num_user, self._num_stream).transpose(0, 2, 1, 3)
        return V

七、参考文献

[1] Christensen, Søren Skovgaard, Rajiv Agarwal, Elisabeth De Carvalho, and John M. Cioffi. “Weighted sum-rate maximization using weighted MMSE for MIMO-BC beamforming design.” IEEE Transactions on Wireless Communications 7, no. 12 (2008): 4792-4799.
[2] Shi, Qingjiang, Meisam Razaviyayn, Zhi-Quan Luo, and Chen He. “An iteratively weighted MMSE approach to distributed sum-utility maximization for a MIMO interfering broadcast channel.” IEEE Transactions on Signal Processing 59, no. 9 (2011): 4331-4340.

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值