加权最小均方误差(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]}
Hk∈C[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=1∑KBkdk(n).
其中,矩阵
B
1
,
⋯
,
B
K
∈
C
[
P
×
Q
]
\mathbf{B}_1,\cdots,\mathbf{B}_K\in\mathbb{C}^{[P{\times}Q]}
B1,⋯,BK∈C[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} N1∑n=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,⋯,BKmink∑−uRkRks.t.k=1∑KTr(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~k−1HkBk),
其中
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=k∑KHkBiBiHHkH.
接着考虑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[∣∣Akyk−dk∣∣2]=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[(AkMMSEyk−dk)(AkMMSEyk−dk))H]=(Ik+BkHHkHRv~kv~k−1HkBk)−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,⋯,BKmink∑Tr(WkEk)s.t.k∑Tr(BkBkH)=Etx,
其中
W
k
∈
C
[
Q
k
×
Q
k
]
\mathbf{W}_k\in\mathbb{C}^{[Q_k\times{Q}_k]}
Wk∈C[Qk×Qk]为与用户
k
k
k相关的权重矩阵。
二、基本思想
原始问题P1是优化变量为 B k ∀ k \mathbf{B}_k\forall k Bk∀k的非凸问题,其与优化变量为 B k , A k , W k ∀ k \mathbf{B}_k,\mathbf{A}_k,\mathbf{W}_k\forall k Bk,Ak,Wk∀k的优化问题P3等价,因为它们具有相同的最优解 B k ⋆ ∀ k \mathbf{B}^\star_k\forall k Bk⋆∀k。
将原始问题P1转化为一个更高维度的优化问题P3,是因为P3在固定任意其它变量、单独优化某一变量时,具有显式解。通过迭代地优化各个变量的方式求解P3,可以收敛至一局部最优解。
三、最大化WSR与最小化WMMSE的联系
首先,P1和P2在目标函数上存在联系。从用户 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(Ek−1)。
其次,P1和P2的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)=k∑−uRkRk+λ(k∑Tr(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~k−1HkBkEk.
∇
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~i−1HiBiEiBiHHiHRv~iv~i−1HiBk.
对于优化问题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)=k∑Tr(WkEk)+λ(k∑Tr(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~k−1HkBkEkWkEk,
∇
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~i−1HiBiEiWiEiBiHHiHRv~iv~i−1HiBk.
从上式可以看出,若给定发射滤波器
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=ukEk−1时,WMMSE问题的梯度与WSR问题的梯度相同。
最后,P1和P2的解在一定条件下等价。假设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=ukEk−1设置WMMSE问题的权重矩阵,则可知当 B k = B k W S R ∀ k \mathbf{B}_k=\mathbf{B}_k^\mathsf{WSR}\forall k Bk=BkWSR∀k时,该预编码矩阵满足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=BkWSR∀k。
四、WMMSE算法及其收敛性分析
根据P1和P2的联系,可通过求解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=Bkini∀kiterateupdate n=n+1I. compute Akn∣Bin−1∀i for all k with MMSE filtersII. computeWkn∣Bin−1∀i for all k III. computeBn∣An, 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:[BkWSR∀k]=argBk,Ak,Wk∀kmink∑l~k(Wk,Ak,Bi∀i)s.t. k∑Tr(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,Bi∀i)=Tr(WkE~k)−uRklog det(uRk−1Wk)−1−uRkQ,
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[(Akyk−dk)(Akyk−dk)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(Bi∀i), 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(Bi∀i)=uRkEk−1(Bi∀i)时,目标函数达到最小值,此时P3与P1等价。即,P3和P1具有相同的目标值和最优解。
下面考虑P3和WMMSE算法的对应关系。实际上,算法中的步骤 I \mathrm{I} I对应于在 B k ∀ k \mathbf{B}_k\forall k Bk∀k和 W k ∀ k \mathbf{W}_k\forall k Wk∀k给定的情况下优化 A k ∀ k \mathbf{A}_k\forall k Ak∀k;算法中的步骤 I I I \mathrm{III} III对应于在 W k ∀ k \mathbf{W}_k\forall k Wk∀k和 A k ∀ k \mathbf{A}_k\forall k Ak∀k给定的情况下优化 B k ∀ k \mathbf{B}_k\forall k Bk∀k;算法中的步骤 I I I \mathrm{III} III对应于在 A k ∀ k \mathbf{A}_k\forall k Ak∀k和 B k ∀ k \mathbf{B}_k\forall k Bk∀k给定的情况下优化 W k ∀ k \mathbf{W}_k\forall k Wk∀k。这三个过程均使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~k−1HkBk时,有 E k − 1 = I k + Λ k \mathbf{E}_k^{-1}=\mathbf{I}_k+\Lambda{k} Ek−1=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(Ek−1)≥∑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 detEk−1(Bk,Rv~kv~k)=Qkmaxq∑logek,q−1(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:[BkWSRDIAG∀k]=argBk∀kmink∑q∑−uRklogek,q−1s.t.k∑Tr(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,1−1,⋯,ek,Q−1}。
六、推广
上文考虑的实际是单发射机的情况,即只有一个发射设备。文献[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.