n
t
n_t
nt 根发送天线,
n
r
n_r
nr 根接收天线的 MIMO 系统(
n
t
<
n
r
n_t
y = H x + n (1.1) \mathbf{y=Hx+n} \tag{1.1} y=Hx+n(1.1)
其中 H ∈ C n r × n t \mathbf{H}\in\mathbb{C}^{n_r\times n_t} H∈Cnr×nt 表示 n r × n t n_r\times n_t nr×nt 大小的信道响应矩阵,其元素均建模为独立同分布的均值为 0 0 0 方差为 1 1 1 的复高斯随机变量。 n \mathbf{n} n 表示复的 AWGN 向量,并满足 E [ n n H ] = σ 2 I n r \mathbb{E}\left[\mathbf{nn}^H\right]=\sigma^2\mathbf{I}_{n_r} E[nnH]=σ2Inr,假设接收端知道正确的 H \mathbf{H} H,而发送端对 H \mathbf{H} H 一无所知。
有了以上的假设,系统模型 ( 1.1 ) (1.1) (1.1) 的似然函数可以写成:
p ( y ∣ H , x ) = 1 ( π σ 2 ) n r exp ( 1 σ 2 ∣ ∣ y − H x ∣ ∣ 2 ) (1.2) p(\mathbf{y|H,x})=\frac{1}{(\pi\sigma^2)^{n_r}}\exp\left(\frac{1}{\sigma^2}||\mathbf{y-Hx}||^2\right) \tag{1.2} p(y∣H,x)=(πσ2)nr1exp(σ21∣∣y−Hx∣∣2)(1.2)
(
1.1
)
(1.1)
(1.1) 模型的实值等效系统模型为:
y
r
=
H
r
x
r
+
n
r
(1.3)
\mathbf{y_r=H_rx_r+n_r} \tag{1.3}
yr=Hrxr+nr(1.3)
其中
H
r
≜
[
ℜ
(
H
)
−
ℑ
(
H
)
ℑ
(
H
)
ℜ
(
H
)
]
∈
R
2
n
r
×
2
n
t
,
y
r
≜
[
ℜ
(
y
)
T
ℑ
(
y
)
T
]
T
∈
R
2
n
r
,
x
r
≜
[
ℜ
(
x
)
T
ℑ
(
x
)
T
]
T
∈
R
2
n
t
,
n
r
≜
[
ℜ
(
n
)
T
ℑ
(
n
)
T
]
T
∈
R
2
n
t
.
\mathbf{H_r}\triangleq[ℜ(H)−ℑ(H)ℑ(H)ℜ(H)]
注意:实值模型 ( 1.3 ) (1.3) (1.3) 中 x r \mathbf{x_r} xr 的元素都来自于 PAM 字母表,这个 PAM 字母表是由复值模型 ( 1.1 ) (1.1) (1.1) 的 QAM 字母表转换得到的。
注解:公式 ( 1.2 ) (1.2) (1.2) 的来由
在复值模型 ( 1.1 ) (1.1) (1.1) 中, n \mathbf{n} n 满足 E [ n n H ] = σ 2 I n r \mathbb{E}\left[\mathbf{nn}^H\right]=\sigma^2\mathbf{I}_{n_r} E[nnH]=σ2Inr ,对于 n \mathbf{n} n 中的元素 n = n r + i n i n=n_r+in_i n=nr+ini 来说,其方差 D [ n ] = σ 2 \mathbb{D}\left[n\right]=\sigma^2 D[n]=σ2,同时有:
D [ n ] = 2 D [ n r ] = 2 D [ n i ] \mathbb{D}\left[n\right]=2\mathbb{D}\left[n_r\right]=2\mathbb{D}\left[n_i\right] D[n]=2D[nr]=2D[ni]
n n n 的概率密度函数为:
p ( n ) = 1 π σ 2 exp ( − n 2 σ 2 ) p(n)=\frac{1}{\pi\sigma^2}\exp\left(-\frac{n^2}{\sigma^2}\right) p(n)=πσ21exp(−σ2n2)
接收信号 y \mathbf{y} y 的元素可以表示为:
y i = h i T ⋅ x + n i y_i=\mathbf{h}_i^T\cdot\mathbf{x}+n_i yi=hiT⋅x+ni
其中 h i \mathbf{h}_i hi 表示 H \mathbf{H} H 的第 i i i 行。对于给定的 h i \mathbf{h}_i hi 和 x \mathbf{x} x , y i y_i yi 相当于是均值为 h i T ⋅ x \mathbf{h}_i^T\cdot\mathbf{x} hiT⋅x ,方差为 σ 2 \sigma^2 σ2 的复高斯随机变量,那么其似然函数就是:
p ( y i ∣ h i , x ) = 1 π σ 2 exp ( − ( y i − h i T ⋅ x ) 2 σ 2 ) = 1 π σ 2 exp ( − n i 2 σ 2 ) = p ( n i ) p(y_i|\mathbf{h}_i,\mathbf{x})=\frac{1}{\pi\sigma^2}\exp\left(-\frac{(y_i-\mathbf{h}_i^T\cdot\mathbf{x})^2}{\sigma^2}\right)=\frac{1}{\pi\sigma^2}\exp\left(-\frac{n_i^2}{\sigma^2}\right)=p(n_i) p(yi∣hi,x)=πσ21exp(−σ2(yi−hiT⋅x)2)=πσ21exp(−σ2ni2)=p(ni)对于接收向量 y \mathbf{y} y 来说, y i , i = 1 , 2 , . . . , n r y_i,i=1,2,...,n_r yi,i=1,2,...,nr 之间是相互独立的,所以:
p ( y ∣ H , x ) = ∏ i = 1 n r p ( y i ∣ h i , x ) = 1 ( π σ 2 ) n r exp ( 1 σ 2 ∣ ∣ y − H x ∣ ∣ 2 ) = 1 ( π σ 2 ) n r exp ( 1 σ 2 ∣ ∣ n ∣ ∣ 2 ) p(\mathbf{y|H,x})=\prod_{i=1}^{n_r} p(y_i|\mathbf{h}_i,\mathbf{x})=\frac{1}{(\pi\sigma^2)^{n_r}}\exp\left(\frac{1}{\sigma^2}||\mathbf{y-Hx}||^2\right)=\frac{1}{(\pi\sigma^2)^{n_r}}\exp\left(\frac{1}{\sigma^2}||\mathbf{n}||^2\right) p(y∣H,x)=i=1∏nrp(yi∣hi,x)=(πσ2)nr1exp(σ21∣∣y−Hx∣∣2)=(πσ2)nr1exp(σ21∣∣n∣∣2)
SNR 定义如下:
S N R = E [ ∣ ∣ H x ∣ ∣ 2 2 ] E [ ∣ ∣ n ∣ ∣ 2 2 ] = E [ t r ( H x ( H x ) H ) ] E [ t r ( n n H ) ] = t r ( H E [ x x H ] H H ) t r ( E [ n n H ] ) = t r ( H H H ) N r × σ 2 SNR = \frac{\mathbb{E}\left[||\mathbf{Hx}||^2 _2\right]}{\mathbb{E}\left[||\mathbf{n}||^2 _2\right]} = \frac{\mathbb{E}\left[tr(\mathbf{Hx}(\mathbf{Hx})^H)\right]}{\mathbb{E}\left[tr(\mathbf{nn}^H)\right]} = \frac{tr\left(\mathbf{H}\mathbb{E}\left[\mathbf{xx}^H\right]\mathbf{H}^H\right)}{tr\left(\mathbb{E}\left[\mathbf{nn}^H\right]\right)} = \frac{tr(\mathbf{HH}^H)}{N_r\times \sigma^2} SNR=E[∣∣n∣∣22]E[∣∣Hx∣∣22]=E[tr(nnH)]E[tr(Hx(Hx)H)]=tr(E[nnH])tr(HE[xxH]HH)=Nr×σ2tr(HHH)
注:信道响应矩阵的元素 h i j h_{ij} hij 满足 h i j ∼ C N ( 0 , 1 ) h_{ij}\sim CN(0,1) hij∼CN(0,1) , 但每次计算信噪比时 H \mathbf{H} H 视为已知。
在接收端,检测机对发送信号进行估计,的到发送信号的估计值 x ^ \hat{\mathbf{x}} x^ ,能够让平均错误概率 p ( x ^ ≠ x ) p(\mathbf{\hat{x}\neq x}) p(x^=x) 最小的检测器为性能最优的检测器。最大似然(ML)检测器通过穷举解出使得 y \mathbf{y} y 和 H x \mathbf{Hx} Hx 的欧式距离最小的 x \mathbf{x} x 可以达到最优性能,其中 x ∈ A n t \mathbf{x}\in \mathbb{A}^{n_t} x∈Ant 。即:
x M L ^ = arg min x ∈ A n t ∣ ∣ y − H x ∣ ∣ 2 (2.1) \mathbf{\hat{x_{ML}}} = \mathop{\arg\min} \limits_{ \mathbf{x} \in \mathbb{A}^{n_t} } ||\mathbf{y-Hx}||^2 \tag{2.1} xML^=x∈Antargmin∣∣y−Hx∣∣2(2.1)
穷举方法求解 ( 2.1 ) (2.1) (2.1) 的计算复杂度随 n t n_t nt 呈指数级增长,ML 检测器通常作为衡量其他检测器性能的基准。但是当 n t n_t nt 很大时,ML 检测器因其计算复杂度之高而变得不可实现。
在 ML 不好实现时,可以使用一些低复杂度场景下的 ML 性能曲线作为 MIMO 场景下的 ML 性能曲线的界限。例如,大 n t n_t nt 情况下,非衰落的 SISO-AWGN 的 ML 性能曲线可以作为 MIMO场景 ML 性能的下界。
线性检测通过对接收信号进行线性变换估计出软的发送符号,再由软符号映射到硬符号,即: x ^ = f ( G y ) \mathbf{\hat{x}}=f(\mathbf{Gy}) x^=f(Gy) ,其中 G \mathbf{G} G 为变换矩阵, f ( . ) f(.) f(.) 表示软符号到硬符号的映射函数,映射方法就是把 G y \mathbf{Gy} Gy 的每一个元素映射为字母表 A \mathbb{A} A 中与该元素距离最近的符号。线性检测的最大优势就是其复杂度低。
MF 检测器在检测某一个发送符号时,把其他所有的发送符号都看作噪声。通过信道之间的相关性去消除其他发送符号的干扰。定义 h i , i = 1 , 2 , . . . , n t \mathbf{h}_i,i=1,2,...,n_t hi,i=1,2,...,nt 表示信道矩阵 H \mathbf{H} H 的第 i i i 列。则系统模型 1.1 1.1 1.1 可以写成如下形式:
y = H x + n = ∑ i = 1 n t h i x i + n = h k x k + ∑ i = 1 i ≠ k n t h i x i + n (3.1) \mathbf{y=Hx+n}=\sum_{i=1}^{n_t}\mathbf{h}_ix_i+n = \mathbf{h}_kx_k + \sum _{i=1\ i \neq k} ^{n_t} \mathbf{h}_ix_i+n \tag{3.1} y=Hx+n=i=1∑nthixi+n=hkxk+i=1 i=k∑nthixi+n(3.1)
式 ( 3.1 ) (3.1) (3.1) 中的第一项是第 k k k 个发送符号 x k x_k xk 对接收信号 y \mathbf{y} y 贡献的部分,第二项是其他发送符号贡献的部分,那么在考虑检测符号 x k x_k xk 时,其他发送符号的部分(式 ( 3.1 ) (3.1) (3.1) 的第二项)就是干扰。MF 检测器在检测时将这些干扰看作是噪声,通过以下方式去估计软符号:
x ~ = h k ∗ y (3.2) \tilde{x}=\mathbf{h}^*_k\mathbf{y} \tag{3.2} x~=hk∗y(3.2)
其中 h k ∗ \mathbf{h}^*_k hk∗ 表示向量 h k \mathbf{h}_k hk 的共轭转置,写成向量的形式,MF 检测器的检测方程为:
x ~ M F = H H y (3.3) \tilde{\mathbf{x}}_{MF}=\mathbf{H}^H\mathbf{y}\tag{3.3} x~MF=HHy(3.3)
MF 检测器的变换矩阵 G M F = H H \mathbf{G}_{MF}=\mathbf{H}^H GMF=HH ,计算 ( 3.3 ) (3.3) (3.3) 的复杂度为 n t n r n_tn_r ntnr 。对于轻载系统( n t ≪ n r n_t\ll n_r nt≪nr ) MF 检测器的性能接近最优,但是它的性能会随着 n t n_t nt 的增长而严重下降,因为随着 n t n_t nt 增长,干扰会增多。
注解: ( 3.2 ) (3.2) (3.2) 的展开
x ~ = h k ∗ y = h k ∗ h k x k + ∑ i = 1 i ≠ k n t h k ∗ h i x i + h k ∗ n \tilde{x} = \mathbf{h}_k^* \mathbf{y} =\mathbf{h}_k^* \mathbf{h}_k x_k + \sum _{i=1\ i \neq k} ^{n_t} \mathbf{h}_k^* \mathbf{h}_i x_i + \mathbf{h}_k^* n x~=hk∗y=hk∗hkxk+i=1 i=k∑nthk∗hixi+hk∗n
忽略噪声,从相关性的角度来说: E [ h k ∗ h k ] = 1 , E [ h k ∗ h i ] = 0 \mathbf{E}\left[ \mathbf{h}_k^* \mathbf{h}_k \right]=1,\mathbf{E}\left[ \mathbf{h}_k^* \mathbf{h}_i \right]=0 E[hk∗hk]=1,E[hk∗hi]=0 。所以 h k ∗ y \mathbf{h}_k^* \mathbf{y} hk∗y 可以消除一部分干扰,当 n t n_t nt 较小时,随机变量 ∑ i = 1 , i ≠ k n t h k ∗ h i x i \sum _{i=1,i \neq k} ^{n_t}\mathbf{h}_k^* \mathbf{h}_i x_i ∑i=1,i=knthk∗hixi 的方差比较小且均值为 0 0 0 ,此时可以很好的消除干扰,但是当 n t n_t nt 较大时,随机变量 ∑ i = 1 , i ≠ k n t h k ∗ h i x i \sum _{i=1,i \neq k} ^{n_t}\mathbf{h}_k^* \mathbf{h}_i x_i ∑i=1,i=knthk∗hixi 的方差会因为叠加而增大,方差大了,干扰就除“不干净了”,性能自然就下降了。
ZF 检测器使用信道矩阵 H \mathbf{H} H 的伪逆作为变换矩阵。令维度为 n t × n r n_t\times n_r nt×nr 的 Q \mathbf{Q} Q 矩阵代表信道矩阵 H \mathbf{H} H 的伪逆,有:
Q = ( H H H ) − 1 H H (3.4) \mathbf{Q}=(\mathbf{H}^H\mathbf{H})^{-1}\mathbf{H}^H \tag{3.4} Q=(HHH)−1HH(3.4)
因为 Q H = I n t \mathbf{QH=I}_{n_t} QH=Int , Q y \mathbf{Qy} Qy 可以完全消除其他符号带来的干扰,但是在完全消除干扰的同时也增加了噪声。
令 q k , k = 1 , 2 , . . . , n t \mathbf{q}_k,k=1,2,...,n_t qk,k=1,2,...,nt 表示 Q \mathbf{Q} Q 的第 k k k 行,那么, q k H \mathbf{q}_k\mathbf{H} qkH 是一个 n t n_t nt 长的行向量,并且它除了第 k k k 个元素是 1 1 1 之外其他元素都是 0 0 0 。发送符号 x k \mathbf{x}_k xk 的软估计可以写成:
x ~ k = q k y = q k H x + q k n = x k + q k n (3.5) \tilde{x}_k=\mathbf{q}_k\mathbf{y}=\mathbf{q}_k\mathbf{Hx}+\mathbf{q}_k\mathbf{n}=x_k+\mathbf{q}_k\mathbf{n} \tag{3.5} x~k=qky=qkHx+qkn=xk+qkn(3.5)
式 ( 3.5 ) (3.5) (3.5) 中的 SNR 为:
S N R k = ∣ x k ∣ 2 ∣ ∣ q k ∣ ∣ 2 σ 2 SNR_k = \frac{|x_k|^2}{||\mathbf{q}_k||^2\sigma^2} SNRk=∣∣qk∣∣2σ2∣xk∣2
所以说 ZF 检测在消除干扰的同时给噪声功率乘上了 ∣ ∣ q k ∣ ∣ 2 ||\mathbf{q}_k||^2 ∣∣qk∣∣2 ,增强了噪声。在低信噪比条件下( σ 2 \sigma^2 σ2 很大),噪声增强大大降低了性能,使得此时 ZF 检测算法性能要比 MF 的性能差;在高信噪比条件下( σ 2 \sigma^2 σ2 很小),完全消除干扰使得 ZF 检测器的性能要优于 MF 检测器。ZF 检测器的变换公式为:
x ~ Z F = Q y \tilde{\mathbf{x}}_{ZF}=\mathbf{Qy} x~ZF=Qy
ZF 检测器的变换矩阵 G Z F = Q \mathbf{G}_{ZF}=\mathbf{Q} GZF=Q ,其计算复杂度是 n t n_t nt 的立方级别(因为要求伪逆),所以每个符号的复杂度就是 n t 2 n_t^2 nt2 ,这虽然比 MF 检测算法的复杂度高了一阶,但是在大规模 MIMO 场景仍然有吸引力。与 MF 相同,在中等到重载情景,随 n t n_t nt 增长,ZF 检测的性能也会严重下降。
MMSE 检测器的变换矩阵 G M M S E \mathbf{G}_{MMSE} GMMSE 是下式的解:
min G E [ ∣ ∣ x − G y ∣ ∣ 2 ] (3.6) \mathop{\min} \limits_{ \mathbf{G} } \mathbb{E}\left[||\mathbf{x-Gy}||^2\right]\tag{3.6} GminE[∣∣x−Gy∣∣2](3.6)
式 ( 3.6 ) (3.6) (3.6) 的解为:
G M M S E = ( H H H + σ 2 I n t ) − 1 H H (3.7) \mathbf{G}_{MMSE} = \left( \mathbf{H}^H \mathbf{H} + \sigma^2 \mathbf{I} _{n_t} \right)^{-1} \mathbf{H}^H \tag{3.7} GMMSE=(HHH+σ2Int)−1HH(3.7)
MMSE 检测的变换公式为:
x ~ M M S E = G M M S E y \tilde{\mathbf{x}} _{MMSE} = \mathbf{G} _{MMSE} \mathbf{y} x~MMSE=GMMSEy
MMSE 检测器组合了 MF 和 ZF 的优点。在高信噪比条件下( σ \sigma σ 很小),MMSE 的表现和 ZF 一样,因为此时式 ( 3.7 ) (3.7) (3.7) 的第二项变得很小而无关紧要;在低信噪比条件下( σ \sigma σ 很大),MMSE 的表现很像 MF,因为随着 σ → ∞ \sigma\to\infty σ→∞ , H H H + σ 2 I n t \mathbf{H}^H\mathbf{H}+\sigma^2\mathbf{I}_{nt} HHH+σ2Int 的对角线上的元素会越来越突出,它的逆矩阵就会趋向一个对角矩阵。
MMSE 检测器的性能在所有的 SNR 上都要优于 MF 和 ZF 。但是 MMSE 需要知道噪声的方差 σ 2 \sigma^2 σ2 ,而 MF 和 ZF 则不需要。MMSE 也需要求逆,所以它的每符号的复杂度为 n t 2 n_t^2 nt2 。在中载到重载情景,MMSE 的性能也会随着 n t n_t nt 的增长而下降。
注解: 式 ( 3.6 ) (3.6) (3.6) 的求解过程参见 MMSE检测算法推导
链接中给出的解为
G M M S E = H H ( H H H + σ 2 I n t ) − 1 \mathbf{G}_{MMSE} = \mathbf{H}^H \left( \mathbf{H} \mathbf{H}^H + \sigma^2 \mathbf{I} _{n_t} \right)^{-1} GMMSE=HH(HHH+σ2Int)−1
其与上文中的解是相等的,但是上文中的解的形式可以方便的与 MF、ZF 的变换矩阵作比较。
证明:
( H H H + σ 2 I n t ) − 1 H H = ( ( H H ) − 1 ( H H H + σ 2 I n t ) ) − 1 = ( H + ( H H ) − 1 σ 2 I n t ) − 1 = ( H + σ 2 I n t ( H H ) − 1 ) − 1 = ( ( H H H + σ 2 I n t ) ( H H ) − 1 ) − 1 = H H ( H H H + σ 2 I n t ) − 1 (HHH+σ2Int)−1HH=((HH)−1(HHH+σ2Int))−1=(H+(HH)−1σ2Int)−1=(H+σ2Int(HH)−1)−1=((HHH+σ2Int)(HH)−1)−1=HH(HHH+σ2Int)−1(HHH+σ2Int)−1HH=((HH)−1(HHH+σ2Int))−1=(H+(HH)−1σ2Int)−1=(H+σ2Int(HH)−1)−1=((HHH+σ2Int)(HH)−1)−1=HH(HHH+σ2Int)−1
经过线性检测 x ^ = Q y \mathbf{\hat{x}=Qy} x^=Qy 后,第 k k k 个接收符号 x k x_k xk 的软估计值可以写成:
x ~ k = q k y = q k H x + q k n = q k ∑ i = 1 N t h i x i + q k n (3.8) \tilde{x}_k = \mathbf{q}_k \mathbf{y} = \mathbf{q}_k \mathbf{Hx} + \mathbf{q}_k \mathbf{n} = \mathbf{q}_k \sum _{i=1} ^{N_t}\mathbf{h_ix_i}+\mathbf{q}_k\mathbf{n} \tag{3.8} x~k=qky=qkHx+qkn=qki=1∑Nthixi+qkn(3.8)
其中 q k \mathbf{q_k} qk 是变换矩阵 Q \mathbf{Q} Q 的第 k k k 行, h i \mathbf{h_i} hi 是信道矩阵 H \mathbf{H} H 的第 k k k 列,则接收符号 x k x_k xk 的信干噪比 SINR 可以写成:
S I N R k = ∣ q k h k ∣ 2 ∣ x k ∣ 2 ∑ i = 1 , i ≠ k N t ∣ q k h i ∣ 2 ∣ x i ∣ 2 + ∣ ∣ q k ∣ ∣ 2 σ 2 (3.9) SINR_k = \frac{|\mathbf{q_kh_k}|^2|x_k|^2}{\sum_{i=1,i\neq k} ^{N_t}|\mathbf{q_kh_i}|^2|x_i|^2 + ||\mathbf{q_k}||^2\sigma^2} \tag{3.9} SINRk=∑i=1,i=kNt∣qkhi∣2∣xi∣2+∣∣qk∣∣2σ2∣qkhk∣2∣xk∣2(3.9)
MF、ZF、MMSE 检测算法都满足式 ( 3.9 ) (3.9) (3.9) ,ZF 检测算法因为完全消除了干扰所以其 SINR 在 ( 3.9 ) (3.9) (3.9) 的基础上做了简化, 如式 ( 3.5 ) (3.5) (3.5) 所示。
基于干扰消除的检测器属于非线性检测器,常见的干扰消除技术包括串行干扰消除( SIC )和并行干扰消除( PIC )。其中 SIC 操作起来比较简单,其步骤如下:
设 y ( 1 ) = y , H ( 1 ) = H \mathbf{y^{(1)}=y,H^{(1)}=H} y(1)=y,H(1)=H ,上标表示消除阶段, Q ( m ) \mathbf{Q}^{(m)} Q(m) 是信道矩阵 H ( m ) \mathbf{H}^{(m)} H(m) 的伪逆, q l ( m ) \mathbf{q}_l^{(m)} ql(m) 为 Q ( m ) \mathbf{Q}^{(m)} Q(m) 的第 l l l 行。设 m = 1 m=1 m=1 , k k k 表示给定消除阶段要消除的符号的序号。
信号检测( ZF ) 使用 ZF 检测器检测第 k k k 个符号。
x ^ k = f ( q k ( m ) y ( m ) ) (4.1) \hat{x}_k=f(\mathbf{q}_k^{(m)}\mathbf{y}^{(m)}) \tag{4.1} x^k=f(qk(m)y(m))(4.1)
其中 f ( . ) f(.) f(.) 表示软符号到硬符号的映射函数。当 m = n t m=n_t m=nt 是结束算法。
干扰估计 使用 x ^ k \hat{x}_k x^k 计算其造成的干扰向量 a ^ k \mathbf{\hat{a}}_k a^k
a ^ k = h k x ^ k (4.2) \mathbf{\hat{a}}_k = \mathbf{h}_k \hat{x}_k \tag{4.2} a^k=hkx^k(4.2)
干扰消除 从 y ( m ) \mathbf{y}^{(m)} y(m) 中减掉 ( 4.2 ) (4.2) (4.2) 获得消除干扰的输出 y ( m + 1 ) \mathbf{y}^{(m+1)} y(m+1)
y ( m + 1 ) = y ( m ) − a ^ k = y ( m ) − h k x ^ k (4.3) \mathbf{y}^{(m+1)} = \mathbf{y}^{(m)} - \mathbf{\hat{a}}_k = \mathbf{y}^{(m)} - \mathbf{h}_k \hat{x}_k \tag{4.3} y(m+1)=y(m)−a^k=y(m)−hkx^k(4.3)
将 H ( m ) \mathbf{H}^{(m)} H(m) 的第 k k k 列置 0 0 0 以获得 H ( m + 1 ) \mathbf{H}^{(m+1)} H(m+1) ,回到第一步。
因为 ZF 检测需要求 H ( m ) \mathbf{H}^{(m)} H(m) 的伪逆,简单的把 H ( m ) \mathbf{H}^{(m)} H(m) 的第 k k k 列置 0 0 0 获得 H ( m + 1 ) \mathbf{H}^{(m+1)} H(m+1) 会导致求不出 H ( m + 1 ) \mathbf{H}^{(m+1)} H(m+1) 的伪逆。因为 H ( m + 1 ) H H ( m + 1 ) \mathbf{H}^{(m+1)H}\mathbf{H}^{(m+1)} H(m+1)HH(m+1) 包含全零行和全零列,是奇异的,所以求不出 H ( m + 1 ) H H ( m + 1 ) \mathbf{H}^{(m+1)H}\mathbf{H}^{(m+1)} H(m+1)HH(m+1) 的逆。所以在实际处理的时候会直接把 H ( m ) \mathbf{H}^{(m)} H(m) 的第 k k k 列删掉,缩减 H ( m ) \mathbf{H}^{(m)} H(m) 的维度来获得 H ( m + 1 ) \mathbf{H}^{(m+1)} H(m+1)
ZF-SIC 算法需要求逆,并且迭代 n t n_t nt 次,所以复杂度为 O ( n t 4 ) O(n_t^4) O(nt4) ,要比 ZF 检测的复杂度高。然而 ZF-SIC 的性能要比 ZF 的性能好。但是在大规模 MIMO 场景下的表现仍不尽人意。
一句话:缩减 H ( m ) \mathbf{H}^{(m)} H(m) 的维度来获得 H ( m + 1 ) \mathbf{H}^{(m+1)} H(m+1) 的方法减小了后者的 Q ( m + 1 ) \mathbf{Q}^{(m+1)} Q(m+1) 的行二范数,即增大了检测符号的信噪比。
展开来说: ZF 检测中有
x ~ k = q k y = q k H x + q k n = x k + q k n (3.5) \tilde{x}_k=\mathbf{q}_k\mathbf{y}=\mathbf{q}_k\mathbf{Hx}+\mathbf{q}_k\mathbf{n}=x_k+\mathbf{q}_k\mathbf{n} \tag{3.5} x~k=qky=qkHx+qkn=xk+qkn(3.5)
式 ( 3.5 ) (3.5) (3.5) 中的 SNR 为:
S N R k = ∣ x k ∣ 2 ∣ ∣ q k ∣ ∣ 2 σ 2 SNR_k = \frac{|x_k|^2}{||\mathbf{q}_k||^2\sigma^2} SNRk=∣∣qk∣∣2σ2∣xk∣2
其中 q k \mathbf{q}_k qk 是 H \mathbf{H} H 的伪逆 Q \mathbf{Q} Q 的第 k k k 行
因为 H ( m + 1 ) \mathbf{H}^{(m+1)} H(m+1) 是由 H ( m ) \mathbf{H}^{(m)} H(m) 删除掉第 k k k 列获得的,所以 Q ( m + 1 ) \mathbf{Q}^{(m+1)} Q(m+1) 的行向量的二范数要比 Q ( m ) \mathbf{Q}^{(m)} Q(m) 的小,这样就变相的提高了检测符号的信噪比,进而提升了性能。
证明尝试:设 H 1 \mathbf{H}_1 H1 为初始信道矩阵, H 2 \mathbf{H}_2 H2 是 H 1 \mathbf{H}_1 H1 删掉第 1 1 1 列后的信道矩阵,写成列向量的形式有:
H 1 = [ h 1 h 2 h 3 ] , H 2 = [ h 2 h 3 ] \mathbf{H}_1 = \left[\mathbf{h_1h_2h_3}\right],\mathbf{H}_2 = \left[\mathbf{h_2h_3}\right] H1=[h1h2h3],H2=[h2h3]
其中 h k \mathbf{h_k} hk 表示 H 1 \mathbf{H}_1 H1 的第 k k k 列。我们要比较的是信道矩阵的伪逆 Q \mathbf{Q} Q 的行二范数,行二范数可以由下式获得:
[ ∣ ∣ q 1 ∣ ∣ 2 ∣ ∣ q 2 ∣ ∣ 2 ∣ ∣ q 3 ∣ ∣ 2 ] = d i a g ( Q Q H ) \left[||\mathbf{q}_1||^2 ||\mathbf{q}_2||^2 ||\mathbf{q}_3||^2\right]=diag(\mathbf{Q} \mathbf{Q}^H) [∣∣q1∣∣2∣∣q2∣∣2∣∣q3∣∣2]=diag(QQH)
其中 q k \mathbf{q}_k qk 表示 Q \mathbf{Q} Q 的第 k k k 行, d i a g ( . ) diag(.) diag(.) 表示取矩阵对角线元素的函数。将 Q \mathbf{Q} Q 的计算公式代入可得:
[ ∣ ∣ q 1 ∣ ∣ 2 ∣ ∣ q 2 ∣ ∣ 2 ∣ ∣ q 3 ∣ ∣ 2 ] = d i a g ( ( H H H ) − 1 H H H ( H H H ) − 1 ) = d i a g ( ( H H H ) − 1 ) \left[||\mathbf{q}_1||^2 ||\mathbf{q}_2||^2 ||\mathbf{q}_3||^2\right]=diag\left((\mathbf{H}^H\mathbf{H})^{-1}\mathbf{H}^H\mathbf{H}(\mathbf{H}^H\mathbf{H})^{-1}\right)=diag\left((\mathbf{H}^H\mathbf{H})^{-1}\right) [∣∣q1∣∣2∣∣q2∣∣2∣∣q3∣∣2]=diag((HHH)−1HHH(HHH)−1)=diag((HHH)−1)
所以我们只要比较 ( H H H ) − 1 (\mathbf{H}^H\mathbf{H})^{-1} (HHH)−1 对角线上的元素大小即可。
(
H
1
H
H
1
)
−
1
=
[
h
1
H
h
1
h
1
H
h
2
h
1
H
h
3
h
2
H
h
1
h
2
H
h
2
h
2
H
h
3
h
3
H
h
1
h
3
H
h
2
h
3
H
h
3
]
−
1
(\mathbf{H_1^H H_1})^{-1} = [hH1h1hH1h2hH1h3hH2h1hH2h2hH2h3hH3h1hH3h2hH3h3]
(
H
2
H
H
2
)
−
1
=
[
h
2
H
h
2
h
2
H
h
3
h
3
H
h
2
h
3
H
h
3
]
−
1
(\mathbf{H_2^H H_2})^{-1} = [hH2h2hH2h3hH3h2hH3h3]
到这里我的思路断了,不过从实验样本上来看,确实是减小的,剩下的交给你了。非方阵的伪逆是有多个的, Q ( m + 1 ) \mathbf{Q}^{(m+1)} Q(m+1) 并不是 Q ( m ) \mathbf{Q}^{(m)} Q(m) 去掉第 k k k 行得到的,虽然去掉第 k k k 行也能得到 H ( m + 1 ) \mathbf{H}^{(m+1)} H(m+1) 的伪逆。
使用格基规约( LR )技术可以提升线性检测的性能,其主要想法是对信道矩阵进行变换,使得等效的信道矩阵的正交性更好。变换如下:
y = H x + n = H T T − 1 x + n = H ~ z + n \mathbf{y}=\mathbf{Hx+n}=\mathbf{HTT^{-1}x+n}=\mathbf{\tilde{H}z+n} y=Hx+n=HTT−1x+n=H~z+n
基于格理论,其中 H x \mathbf{Hx} Hx 与 H ~ z \mathbf{\tilde{H}z} H~z 有相同的格点,但是 H ~ \mathbf{\tilde{H}} H~ 的条件要比 H \mathbf{H} H 好。 所以在 y = H ~ z + n \mathbf{y=\tilde{H}z+n} y=H~z+n 上应用线性算法估计 z ^ \mathbf{\hat{z}} z^ 的准确率应比在 y = H x + n \mathbf{y=Hx+n} y=Hx+n 上应用线性检测算法估计 x ^ \mathbf{\hat{x}} x^ 的准确率高,而 z = T − 1 x \mathbf{z=T^{-1}x} z=T−1x , 则可通过 x ^ = T z ^ \mathbf{\hat{x}=T\hat{z}} x^=Tz^ 获得 x ^ \mathbf{\hat{x}} x^ 完成发送符号的硬估计。更多理论可以参见文章:
常见的 LR 算法有 LLL 算法、Seyen 算法等。我实现了用 Seyen 算法进行 LR 的 LR-MF 和 LR-MMSE 检测算法,但是从结果来看主要的性能优势都凸显在高信噪比下,与书中的结果有出入。
通过调试我发现:
使用 Seyen 算法后如果进行任意格点的检测,那么得到的性能会比不使用 Seyen 算法直接进行任意格点检测的性能好。
但是对于通信系统有限格点的检测来说性能会变差,我的对比处理流程如下:
结果 2. = 3. > 1.
有参考资料给出的解释是 T \mathbf{T} T 会破坏 x \mathbf{x} x 有限格点子集的特性。
球译码可以获得 ML 的性能,并且要比穷举快,球译码的思路是在格空间的一个超球内搜索搜索欧式距离最近的格点,而不是在整个格空间里搜索。超球里最近的格点自然也是整个格空间里最近的格点。
如何选择超球半径 d d d 是一个关键问题,过大的 d d d 意味着超球中仍有很多格点,搜索的复杂度依然很高,过小的 d d d 则会出现超球内找不到格点的情况。球译码的另一个关键问题在于如何知道一个格点是否在超球里,或者说,怎样找到超球内的格点,如果仍然在整个格空间内穷举,那么球译码就没有意义了。对于第二个问题,球译码是这样解决的,它通过 QR 分解把在 m m m 维超球内寻找格点的问题分解成在 1 1 1 维超球(一个区间)内寻找格点问题的叠加,可以看作是树的深度遍历过程,具体参见 Large MIMO Systems (2014) CH4。以下给出实现算法:
Algorithm 1. Sphere decoding algorithm
input y r \mathbf{y}_r yr, H r \mathbf{H}_r Hr, and d d d .
From H r \mathbf{H}_r Hr and y r \mathbf{y}_r yr obtain Q = [ Q 1 Q 2 ] \mathbf{Q=[Q_1 Q_2]} Q=[Q1Q2], R \mathbf{R} R, and z = Q 1 H y r \mathbf{z}=\mathbf{Q}_1^H\mathbf{y}_r z=Q1Hyr.
Set k = 2 n t k=2n _t k=2nt ; d ~ 2 n t 2 = d 2 − ∣ ∣ Q 2 H y r ∣ ∣ 2 \tilde{d} _{2n_t} ^2 = d^2 - ||\mathbf{Q} _2 ^H \mathbf{y}_r ||^2 d~2nt2=d2−∣∣Q2Hyr∣∣2 ; z 2 n t ∣ 2 n t + 1 = z 2 n t z _{2n_t | 2n_t+1} = z _{2n_t} z2nt∣2nt+1=z2nt .
Set U B ( x k ) = ⌊ d ~ k + z k ∣ k + 1 r k , k ⌋ UB(x_k) = \left\lfloor \frac{\tilde{d} _{k} + z _{k|k+1}}{r _{k,k} }\right\rfloor UB(xk)=⌊rk,kd~k+zk∣k+1⌋ ; x k = ⌈ − d ~ k + z k ∣ k + 1 r k , k ⌉ − 1 x _k = \left\lceil \frac{-\tilde{d} _{k} + z _{k|k+1}}{r _{k,k} }\right\rceil -1 xk=⌈rk,k−d~k+zk∣k+1⌉−1 .
x k = x k + 1 x_k=x_k+1 xk=xk+1 ;
if x k ≤ U B ( x k ) x_k \leq UB(x_k) xk≤UB(xk) then go to Step 6; else go to step 5.
k = k + 1 k=k+1 k=k+1 ;
if k = 2 n t + 1 k=2n_t+1 k=2nt+1 then terminate algorithm ; else go to step 4.
if k = 1 k=1 k=1 then go to step 7;
else
k = k − 1 k=k-1 k=k−1 ; z k ∣ k + 1 = z k − ∑ j = k + 1 2 n t r k , j x j z_{k|k+1}=z_k-\sum_{j=k+1}^{2n_t} r_{k,j}x_j zk∣k+1=zk−∑j=k+12ntrk,jxj;
d ~ k = d ~ k + 1 − ( z k + 1 ∣ k + 2 − r k + 1 , k + 1 x k + 1 ) 2 \tilde{d} _k = \tilde{d} _{k+1} - (z _{k+1|k+2} - r _{k+1,k+1} x _{k+1} )^2 d~k=d~k+1−(zk+1∣k+2−rk+1,k+1xk+1)2 ;
go to Step 3;
Solution found. Save x r \mathbf{x}_r xr and its distance from y r \mathbf{y}_r yr , d ~ 2 n t 2 − d ~ 1 2 + ( z 1 ∣ 2 − r 1 , 1 x 1 ) 2 \tilde{d} ^2 _{2n_t} -\tilde{d} ^2 _{1} +(z _{1|2} - r _{1,1} x _1 )^2 d~2nt2−d~12+(z1∣2−r1,1x1)2 ;
go to Step 4.