(Water Filling)注水算法原理与实现
Posted 爱吃猫咪的花酱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(Water Filling)注水算法原理与实现相关的知识,希望对你有一定的参考价值。
目录
问题背景与建模
考虑一个多用户多输入单输出MU-MISO
下行通信场景,基站端配置有
N
N
N根天线,其服务该小区下
K
K
K个单天线用户。假定信道为平坦瑞利衰落信道,记为
H
∈
C
N
×
K
\\mathbfH\\in\\mathcalC^N\\times K
H∈CN×K,基站最大发射功率为
P
P
P。假设波束赋形采用Zero Forcing
,若记
W
=
H
(
H
H
H
)
−
1
\\mathbfW=\\mathbfH(\\mathbfH^H\\mathbfH)^-1
W=H(HHH)−1
注意 W \\mathbfW W并不是最终的波束赋形矩阵,因为还没有考虑功率约束以及进一步的功率分配。
则第
k
k
k个用户的波束方向为
w
~
k
=
w
1
∣
∣
w
1
∣
∣
2
\\tilde\\mathbfw_k=\\frac\\mathbfw_1||\\mathbfw_1||_2
w~k=∣∣w1∣∣2w1
记 W ~ = [ w ~ 1 , . . . , w ~ K ] \\tilde \\mathbfW=[\\tilde\\mathbfw_1,...,\\tilde\\mathbfw_K] W~=[w~1,...,w~K],功率分配矩阵为
P = diag ( P 1 , . . . , P K ) \\mathbfP=\\textdiag(P_1,...,P_K) P=diag(P1,...,PK)
则最终的波束赋形矩阵为
W
ZF
=
W
~
⋅
P
\\mathbfW_\\textZF=\\tilde \\mathbfW\\cdot\\sqrt\\mathbfP
WZF=W~⋅P
若不考虑功率分配,显然 ∀ k , P k = P / K \\forall k,\\ P_k=P/K ∀k, Pk=P/K。
若记基站发送的符号向量为
s
=
[
s
1
,
.
.
.
,
s
K
]
\\mathbfs=[s_1,...,s_K]
s=[s1,...,sK],且满足
E
[
s
s
H
]
=
I
K
\\mathbbE[\\mathbfs\\mathbfs^H]=\\mathbfI_K
E[ssH]=IK,则用户
k
k
k接收到的信号为
y
k
=
h
k
H
w
k
s
k
+
n
k
y_k=\\mathbfh_k^H\\mathbfw_ks_k+n_k
yk=hkHwksk+nk
这是因为ZF完全消除了用户间干扰!此时SINR就是SNR。
而对于其他的波束赋形,如MMSE、MRT等,由于用户间干扰不能完全去除,用户 k k k的SINR里面还嵌入有其他用户的功率,本文water-filling求出的解只是对于ZF波束赋形是最优的,对于其他的beamforming, 只能说是次优和heuristic的。
其中
n
k
n_k
nk为用户
k
k
k处的噪声,
n
k
∼
C
N
(
0
,
1
)
n_k\\sim \\mathcalCN(0,\\ 1)
nk∼CN(0, 1)。第
k
k
k个用户的信噪比SNR为
γ
k
=
∣
∣
h
k
H
w
k
∣
∣
2
2
=
P
k
∣
∣
h
k
H
w
~
k
∣
∣
2
2
\\gamma_k=||\\mathbfh_k^H\\mathbfw_k||_2^2=P_k||\\mathbfh_k^H\\tilde\\mathbfw_k||_2^2
γk=∣∣hkHwk∣∣22=Pk∣∣hkHw~k∣∣22
第
k
k
k个用户的信息速率为
R
k
=
log
(
1
+
γ
k
)
R_k=\\log(1+\\gamma_k)
Rk=log(1+γk)
实际上这是肯定不可能达到的,只具有理论分析上的意义。
现在希望合理的分配功率来使得加权和速率最大,即
max
P
1
,
.
.
.
,
P
K
∑
k
=
1
K
α
k
R
k
s.t.
∑
k
=
1
K
P
k
=
P
P
k
≥
0
\\max_P_1,...,P_K\\quad \\sum_k=1^K\\alpha_kR_k\\\\ \\\\ \\texts.t.\\quad \\sum_k=1^KP_k=P\\\\ P_k\\geq 0
P1,...,PKmaxk=1∑KαkRks.t.k=1∑KPk=PPk≥0
上面直接让各用户功率之和等于最大发射功率,即让本来的不等式约束变为严格等于。这是因为最优解必然是满足这一点的。
问题求解
∑
k
=
1
K
α
k
R
k
=
∑
k
=
1
K
α
k
log
(
1
+
P
k
∣
∣
h
k
H
w
~
k
∣
∣
2
2
)
=
∑
k
=
1
K
α
k
log
(
1
∣
∣
h
k
H
w
~
k
∣
∣
2
2
+
P
k
)
+
∑
k
=
1
以上是关于(Water Filling)注水算法原理与实现的主要内容,如果未能解决你的问题,请参考以下文章