博主不定期發佈【保研/推免、C/C++、5G移動通信、Linux、生活隨筆 】系列文章,喜歡的朋友【點贊+關注 】支持一下吧!
如果你還不知道什麼是預編碼或者想完整地瞭解大規模MIMO下行鏈路預編碼基礎知識,推薦你先看看 :【精心整理】大規模MIMO下行鏈路預編碼(1)
大規模MIMO下行鏈路經典線性預編碼算法
1. 系統模型
考慮由一個基站和K K K 個獨立用戶組成的單小區下行多用戶MIMO系統,其中基站配置M M M 根天線,用戶k k k 配置N k N_k N k 根天線(k = 1 , 2 , ⋯ , K k=1, 2,\cdots, K k = 1 , 2 , ⋯ , K ),該系統配置可以簡化表示成{ N 1 , N 2 , ⋯ , N K } × M \{N_1,N_2,\cdots,N_K \}\times M { N 1 , N 2 , ⋯ , N K } × M 。設基站向用戶k k k 發送的數據向量爲d k = [ d k 1 , d k 2 , ⋯ , d k N k ] H ∼ C N ( 0 , I N k ) \boldsymbol d_k=[ d_{k1},d_{k2},\cdots, d_{kN_k}]^H \sim \mathcal {CN}(\boldsymbol 0,\boldsymbol I_{N_k}) d k = [ d k 1 , d k 2 , ⋯ , d k N k ] H ∼ C N ( 0 , I N k ) ,且每個用戶的數據向量互相獨立,發給每個用戶的數據向量都經過一個預編碼矩陣V k ∈ C M × L k \boldsymbol V_k \in \mathbb C^{M \times L_k} V k ∈ C M × L k ,其中L k L_k L k 爲用戶k k k 所支持的數據流數目,滿足L K ≤ N k L_K \leq N_k L K ≤ N k ,則基站得的發送信號爲:
s = ∑ i = 1 K V i d i (1)
\boldsymbol s=\sum \limits_{i=1}^K \boldsymbol V_i\boldsymbol d_i \tag{1}
s = i = 1 ∑ K V i d i ( 1 )
假設基站端發射功率限制爲P P P ,那麼發送信號滿足條件
E { t r ( s s H ) } = ∑ i = 1 K E { t r ( V i d i d i H V i H ) } = ∑ i = 1 K t r ( V i V i H ) ≤ P (2)
\mathbb E\{tr(ss^H)\}=\sum \limits _{i=1} ^K \mathbb E\{tr(V_id_id_i^HV_i^H)\}=\sum \limits _{i=1} ^K tr(V_iV_i^H) \leq P \tag{2}
E { t r ( s s H ) } = i = 1 ∑ K E { t r ( V i d i d i H V i H ) } = i = 1 ∑ K t r ( V i V i H ) ≤ P ( 2 )
用戶k k k 接收的信號可以表示爲
y k = G k H s + n k = H k ∑ i = 1 K V i d i + n k (3)
\boldsymbol y_k= \boldsymbol G_k^H\boldsymbol s+\boldsymbol n_k=\boldsymbol H_k\sum \limits_{i=1}^K \boldsymbol V_i\boldsymbol d_i +\boldsymbol n_k\tag{3}
y k = G k H s + n k = H k i = 1 ∑ K V i d i + n k ( 3 )
式中,G k ∈ C M × N k \boldsymbol G_k \in \mathbb C^{M \times N_k} G k ∈ C M × N k 表示用戶k k k 到基站的信道矩陣(⟹ H k = G k H \Longrightarrow \boldsymbol H_k=\boldsymbol G_k^H ⟹ H k = G k H 即爲基站到用戶k k k 的信道矩陣 ),n k ∼ C N ( 0 , σ 2 I N k ) \boldsymbol n_k\sim \mathcal {CN}(\boldsymbol 0, \sigma^2 \boldsymbol I_{N_k}) n k ∼ C N ( 0 , σ 2 I N k ) 表示相應的加性獨立同分布(i.i.d.)高斯白噪聲向量。將所有用戶的接收信號統一表示爲
y = H s + n = [ H 1 H 2 ⋮ H K ] s + n (4)
\boldsymbol y=\boldsymbol H \boldsymbol s+\boldsymbol n= \begin{bmatrix}\boldsymbol H_1 \\\boldsymbol H_2\\ \vdots \\\boldsymbol H_K\end{bmatrix}\boldsymbol s+\boldsymbol n \tag{4}
y = H s + n = ⎣ ⎢ ⎢ ⎢ ⎡ H 1 H 2 ⋮ H K ⎦ ⎥ ⎥ ⎥ ⎤ s + n ( 4 )
式中,H = [ H 1 H 2 ⋮ H K ] = [ h 11 h 12 ⋯ h 1 M h 21 h 22 ⋯ h 2 M ⋮ ⋮ ⋱ ⋮ h K 1 h K 2 ⋯ h K M ] ∈ C ∑ k = 1 K N k × M \boldsymbol H =\begin{bmatrix}\boldsymbol H_1\\\boldsymbol H_2\\ \vdots \\\boldsymbol H_K \end{bmatrix}=
\begin{bmatrix} \boldsymbol h_{11}&\boldsymbol h_{12}&\cdots&\boldsymbol h_{1M} \\ \boldsymbol h_{21}&\boldsymbol h_{22}&\cdots&\boldsymbol h_{2M} \\ \vdots& \vdots&\ddots& \vdots\\\boldsymbol h_{K1}&\boldsymbol h_{K2}&\cdots&\boldsymbol h_{KM} \end{bmatrix} \in \mathbb C^{\sum\limits_{k=1}^K N_k \times M} H = ⎣ ⎢ ⎢ ⎢ ⎡ H 1 H 2 ⋮ H K ⎦ ⎥ ⎥ ⎥ ⎤ = ⎣ ⎢ ⎢ ⎢ ⎡ h 1 1 h 2 1 ⋮ h K 1 h 1 2 h 2 2 ⋮ h K 2 ⋯ ⋯ ⋱ ⋯ h 1 M h 2 M ⋮ h K M ⎦ ⎥ ⎥ ⎥ ⎤ ∈ C k = 1 ∑ K N k × M 表示用戶到基站的總信道矩陣,注意其元素h i j h_{ij} h i j 也是一個矩陣,h i j \boldsymbol h_{ij} h i j 表示基站第j j j 根天線到第i i i 個用戶的信道矩陣 。
假設用戶信道是平坦衰落的,基站端可以通過信道估計獲得準確的信道狀態信息,並且假設移動端知道自己的信道狀態信息。下行鏈路CSI的獲取:TDD⟹ \Longrightarrow ⟹ 利用上下行信道互易性原理;FDD:通過反饋信道
將(3)寫爲如下形式:
y k = H k ∑ i = 1 K V i d i + n k = H k V k d k + H k ∑ i = 1 , i ≠ k K V i d i + n k (5)
\boldsymbol{y}_k=\boldsymbol H_k\sum \limits_{i=1}^K \boldsymbol V_i\boldsymbol d_i +\boldsymbol n_k=\boldsymbol {H}_k\boldsymbol {V}_k\boldsymbol d_k+\boldsymbol {H}_k\sum\limits_{i=1,i\neq k}^K\boldsymbol {V}_i\boldsymbol d_i+\boldsymbol{n}_k\tag{5}
y k = H k i = 1 ∑ K V i d i + n k = H k V k d k + H k i = 1 , i = k ∑ K V i d i + n k ( 5 )
上式中,第一項表示期望接收信號,第二項表示共信道干擾(CCI)【也稱爲多用戶干擾,MUI】,第三項是噪聲項 ,對於用戶k k k 來說第二項和第三項是毫無用處的,會影響用戶信號的正常接收,因此線性預編碼的主要目標就是在一定的功率限制條件下,使得共信道干擾和噪聲項的影響儘量小,最大化期望接收信號 。
2. MRT預編碼
由於可以平衡系統性能和計算複雜度,最大比傳輸(MRT)預編碼【又稱作匹配濾波器(MF)預編碼】是最簡單易實現的預編碼算法,通過最大化接收信噪比(SNR)實現。在大規模MIMO系統中,當基站天線數M M M 足夠大時,最簡單的MRT線性預編碼方案便可以得到最優的系統性能。
在發射端已知完美信道狀態信息的前提下,MRT線性預編碼矩陣爲:
V = β M R T H H (6)
\boldsymbol V=\beta_{MRT}\boldsymbol H^H \tag6
V = β M R T H H ( 6 )
(注:以上編碼矩陣後可以加上功率分配矩陣組成整個預編碼矩陣)
式中,β M R T = 1 t r ( H H H ) \beta_{MRT}=\sqrt{\frac{1}{tr(HH^H )}} β M R T = t r ( H H H ) 1 爲約束基站發送功率的約束因子。大規模MIMO系統中基站天線數的不斷增加使得信道矩陣列向量之間逐漸呈現正交性,即不同終端間的干擾逐漸降低甚至被完全消除 ,因此最簡單的 MRT 預編碼下便可以獲得最優的頻譜效率和最好的信號傳輸質量,且複雜度最低。
傳統MIMO系統中,匹配濾波預編碼方案的側重點在於接收端用戶的信號增益最大化,但在多用戶系統的場景下,隨着傳輸信道相關性的提升,此方案由於沒有考慮如何對用戶間的干擾進行處理,將會導致整個系統性能快速下降。
3. 基於廣義信道求逆的預編碼
3.1 ZF預編碼
迫零 預編碼的主要思想是利用信道的僞逆矩陣形式對發送數據進行編碼處理 ,以達到完全消除其他用戶干擾(共信道干擾)的目的。
由(5)可知,爲了消除CCI(即讓第二項爲0),預編碼矩陣需滿足:
H i V k = 0 , i = 1 , 2 , ⋯ , K , i ≠ k (7)
\boldsymbol {H}_i\boldsymbol {V}_k=0, i=1,2,\cdots,K,i \neq k \tag{7}
H i V k = 0 , i = 1 , 2 , ⋯ , K , i = k ( 7 )
即,迫零預編碼矩陣V k \boldsymbol V_k V k 必須處於除目標用戶k k k 外的其他用戶聯合信道矩陣H k ~ = [ H 1 ⋮ H k − 1 H k + 1 ⋯ H K ] \widetilde {\boldsymbol H_k} =\begin{bmatrix}\boldsymbol H_1 \\ \vdots\\ \boldsymbol H_{k-1} \\ \boldsymbol H_{k+1} \\ \cdots\\ \boldsymbol H_K \end{bmatrix} H k = ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎡ H 1 ⋮ H k − 1 H k + 1 ⋯ H K ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎤ 的零空間內,信道矩陣的僞逆 可以實現以上要求,H \boldsymbol H H 的僞逆矩陣爲
H ^ = H H ( H H H ) − 1 = [ H ^ 1 , H ^ 2 ⋯ , H ^ K ] (8)
\hat {\boldsymbol H}=\boldsymbol H^H(\boldsymbol H\boldsymbol H^H)^{-1}=\begin{bmatrix}\hat {\boldsymbol H}_1, \hat{\boldsymbol H}_2 \cdots ,\hat{\boldsymbol H}_K \end{bmatrix} \tag{8}
H ^ = H H ( H H H ) − 1 = [ H ^ 1 , H ^ 2 ⋯ , H ^ K ] ( 8 )
假設移動端都只配備單根天線,即N k = 1 ( k = 1 , 2 , ⋯ , K ) N_k=1 \space\space(k=1, 2,\cdots, K) N k = 1 ( k = 1 , 2 , ⋯ , K ) ,則H ^ k ∈ C M × 1 ( k = 1 , 2 , ⋯ , K ) \hat {\boldsymbol H}_k \in \mathbb C^{M \times 1}\space\space(k=1, 2,\cdots, K) H ^ k ∈ C M × 1 ( k = 1 , 2 , ⋯ , K ) ,爲了使預編碼矩陣滿足功率約束條件(2),令
V k = ξ H ^ k P k 1 / 2 (9)
\boldsymbol V_k=\xi\hat {\boldsymbol H}_k\boldsymbol P_k^{{1}/{2}} \tag{9}
V k = ξ H ^ k P k 1 / 2 ( 9 )
式中,功率控制參數滿足ξ 2 = P t r ( P ( H H H ) − 1 ) , P = d i a g { P 1 P 2 ⋯ P K } \xi^2=\frac{P}{tr(\boldsymbol P(\boldsymbol H\boldsymbol H^H)^{-1})},\boldsymbol P=diag\{\boldsymbol P_1\space\space\boldsymbol P_2\space\space\cdots\space\space \boldsymbol P_K\} ξ 2 = t r ( P ( H H H ) − 1 ) P , P = d i a g { P 1 P 2 ⋯ P K } 是功率分配矩陣。
3.2 RZF預編碼
當移動端所處環境中缺少散射體,或者用戶之間的距離很近,會導致信道矩陣會因爲高度的相關性而成爲病態矩陣(欠秩 ),因而產生噪聲放大問題 。在低信噪比的情況下,噪聲放大問題會嚴重影響系統性能。正則化迫零預編碼則不僅考慮了用戶之間的信號干擾,也考慮了噪聲問題,所以在性能上優於迫零預編碼。
正則化迫零預編碼主要是在信道求逆之前加上一個單位陣(此單位陣的作用即爲減弱信道矩陣的相關性,避免求逆時產生噪聲放大問題 ),以替代對信道的直接求逆,其編碼形式爲
V = [ V 1 V 2 ⋯ V K ] = ξ H H ( H H H + M α I ) − 1 P 1 / 2 (10)
\boldsymbol V =\begin{bmatrix}\boldsymbol V_1& \boldsymbol V_2 &\cdots& \boldsymbol V_K \end{bmatrix}=\xi\boldsymbol H^H(\boldsymbol H\boldsymbol H^H+M\alpha \boldsymbol I)^{-1} \boldsymbol P^{1/2} \tag{10}
V = [ V 1 V 2 ⋯ V K ] = ξ H H ( H H H + M α I ) − 1 P 1 / 2 ( 1 0 )
式中,ξ 2 = P t r ( P H ( H H H + M α I ) − 2 H H ) \xi^2=\frac{P}{tr(\boldsymbol P\boldsymbol H(\boldsymbol H^H\boldsymbol H + M\alpha \boldsymbol I)^{-2}\boldsymbol H^H)} ξ 2 = t r ( P H ( H H H + M α I ) − 2 H H ) P 爲功率歸一化參數,V k \boldsymbol V_k V k 爲用戶k k k 的預編碼矩陣,P = d i a g { P 1 P 2 ⋯ P K } \boldsymbol P=diag\{\boldsymbol P_1\space\space\boldsymbol P_2\space\space\cdots\space\space \boldsymbol P_K\} P = d i a g { P 1 P 2 ⋯ P K } 是功率分配矩陣,α \alpha α 爲正則化因子,用來平衡用戶間的干擾與信道噪聲。根據最大化信號干擾噪聲比(SINR)準則 ,最優正則化因子爲
α o p t = σ 2 β P , 其 中 β = M K (11)
\alpha_{opt}=\frac{\sigma^2}{\beta P},其中\beta=\frac{M}{K}\tag{11}
α o p t = β P σ 2 , 其 中 β = K M ( 1 1 )
此時,正則化迫零預編碼的性能是最優的,其既考慮了多用戶接收信號之間干擾,又考慮了噪聲因素的影響 ,不管是在高信噪比下還是低信噪比下,都有不錯的性能表現。
根據以上推導可以發現,α → 0 \alpha\rightarrow 0 α → 0 和α → + ∞ \alpha\rightarrow +\infty α → + ∞ ,RZF分別退化爲ZF和MRT 。
4. 基於SVD的預編碼
4.1 矩陣的奇異值分解
奇異值分解(Singular Value Decomposition, SVD)是分析矩陣的一個強大工具。之所以說它強大,是因爲任何一個矩陣H H H , 不管是長的還是方的,也不管是實數的還是複數的,只要是一個矩陣,就可以分解爲如下的形式:
H = U Σ V H (12)
\boldsymbol H=\boldsymbol U\boldsymbol \Sigma \boldsymbol V^H \tag{12}
H = U Σ V H ( 1 2 )
其中,Σ \boldsymbol \Sigma Σ 是對角矩陣,其對角線上的元素是非負實數,一般按照從大到小的順序排列。U U U 和V V V 是酉矩陣,即複數正交方陣,滿足:
U U H = U H U = I n V V H = V H V = I m (13)
\boldsymbol U\boldsymbol U^H =\boldsymbol U^H\boldsymbol U=\boldsymbol I_n
\\ \tag{13}
\boldsymbol V\boldsymbol V^H =\boldsymbol V^H\boldsymbol V=\boldsymbol I_m
U U H = U H U = I n V V H = V H V = I m ( 1 3 )
當H ∈ C N × M \boldsymbol H\in \mathbb{C} ^ {N \times M} H ∈ C N × M 時,Σ \boldsymbol \Sigma Σ 是N × M N×M N × M 非負對角矩陣,U \boldsymbol U U 和V \boldsymbol V V 分別是N × N N×N N × N 和M × M M×M M × M 的酉矩陣。Σ \boldsymbol \Sigma Σ 往往不是方陣,此時形成對角矩陣Σ \boldsymbol \Sigma Σ 需要在一個對角方陣的行或者列的方向上補零 。矩陣Σ \boldsymbol \Sigma Σ 對角線上的值λ i , i = 1 , 2 , ⋯ , m i n ( M , N ) \lambda_i,i=1,2,\cdots,min(M,N) λ i , i = 1 , 2 , ⋯ , m i n ( M , N ) 被稱作矩陣H \boldsymbol H H 的奇異值 ,注意,奇異值是非負實數 。
4.2 SVD預編碼
對信道矩陣H \boldsymbol H H 進行SVD,有
y = H s + n = U Σ V H s + n (14)
\boldsymbol y =\boldsymbol H\boldsymbol s+\boldsymbol n=\boldsymbol U\boldsymbol \Sigma \boldsymbol V^H\boldsymbol s+\boldsymbol n \tag{14}
y = H s + n = U Σ V H s + n ( 1 4 )
如果發射機知道信道矩陣,就可以得到它的SVD ,並用矩陣V \boldsymbol V V 對一個要發送的信息d \boldsymbol d d 進行編碼,得到每個天線的發射信號s \boldsymbol s s ,即s = V d \boldsymbol s=\boldsymbol V\boldsymbol d s = V d ,帶入(19)
y = U Σ V H V d + n = U Σ d + n (15)
\boldsymbol y=\boldsymbol U\boldsymbol \Sigma \boldsymbol V^H\boldsymbol V\boldsymbol d+\boldsymbol n= \boldsymbol U\boldsymbol \Sigma \boldsymbol d+\boldsymbol n \tag{15}
y = U Σ V H V d + n = U Σ d + n ( 1 5 )
如果接收機也知道信道矩陣,那麼在收到信號後,等式兩邊左乘以U H \boldsymbol U^H U H :
U H y = U H U Σ d + U H n (16)
\boldsymbol U^H \boldsymbol y=\boldsymbol U^H\boldsymbol U\boldsymbol \Sigma \boldsymbol d+\boldsymbol U^H\boldsymbol n \tag{16}
U H y = U H U Σ d + U H n ( 1 6 )
對以上表達式稍作處理:
y ′ = Σ d + n ′ (17)
\boldsymbol y'=\boldsymbol \Sigma \boldsymbol d+\boldsymbol n' \tag{17}
y ′ = Σ d + n ′ ( 1 7 )
注意,由於Σ \boldsymbol \Sigma Σ 是一個對角矩陣,這意味着,經過SVD變換後的MIMO系統等價於多個互不干擾的並行信道,MIMO 信道的容量是這些井行信道的容量的和 :
y i ′ = λ i d i + n i ′ , i = 1 , 2 , ⋯ , m i n ( M , N ) (18)
y'_i=\lambda_id_i+n'_i,\ i=1,2,\cdots,min(M,N) \tag{18}
y i ′ = λ i d i + n i ′ , i = 1 , 2 , ⋯ , m i n ( M , N ) ( 1 8 )
在線性代數裏面有一個專門的術語來描述一個矩陣的特性,這就是矩陣的秩(rank) 。矩陣的秩和其奇異值之間存在關係,即秩就是不爲零的奇異值的個數 。信道矩陣的秩就是能夠同時發送的數據的個數,每一個數據叫作一個流(stream),也叫作一個層(layer),每個流可以單獨進行編碼調製 。爲了控制流的個數 ,採用一個編碼矩陣C \boldsymbol C C 對流數據進行編碼, MIMO方程變爲
y N × 1 = H N × M C M × R d R × 1 + n N × 1 (19)
\boldsymbol y_{N \times 1}=\boldsymbol H_{N \times M}\boldsymbol C_{M \times R}\boldsymbol d_{R \times 1}+\boldsymbol n_{N \times1} \tag{19}
y N × 1 = H N × M C M × R d R × 1 + n N × 1 ( 1 9 )
如果信道矩陣的秩是R R R ,那麼可以同時發送R R R 個信息數據,所以,信息數據d \boldsymbol d d 的維數是R × 1 R \times 1 R × 1 。這個數據被編碼矩陣C \boldsymbol C C 進行編碼, C \boldsymbol C C 的維度是M × R M \times R M × R ;編碼後得到M M M 根發射天線上的發射數據。
因此,編碼矩陣C \boldsymbol C C 的理想選擇是SVD的V \boldsymbol V V 矩陣中最大的前R R R 個奇異值對應的列組成的矩陣 (當R = M R=M R = M 時,C = V P 1 / 2 \boldsymbol C=\boldsymbol V\boldsymbol P^{1/2} C = V P 1 / 2 ,第二項用於分配功率)。實際情況中,矩陣V \boldsymbol V V 不容易獲得,可以通過定義不同的預編碼矩陣碼本 ,以匹配不同的信道矩陣。
4.3 GZI預編碼(QR-SVD)
迫零預編碼的侷限:僅適用於移動端配備單天線 ⟹ \Longrightarrow ⟹ 廣義迫零信道反轉(GZI)預編碼,在移動端配備多天線的情況下,H ^ k ∈ C M × N k ( k = 1 , 2 , ⋯ , K ) \hat {\boldsymbol H}_k \in \mathbb C^{M \times N_k}\space\space(k=1, 2,\cdots, K) H ^ k ∈ C M × N k ( k = 1 , 2 , ⋯ , K ) ,對H ^ k \hat {\boldsymbol H}_k H ^ k 進行QR分解,即
H ^ k = Q ^ k R ^ k ( k = 1 , 2 , ⋯ , K ) (20)
\hat {\boldsymbol H}_k=\hat {\boldsymbol Q}_k\hat {\boldsymbol R}_k\space(k=1, 2,\cdots, K) \tag{20}
H ^ k = Q ^ k R ^ k ( k = 1 , 2 , ⋯ , K ) ( 2 0 )
其中,R ^ k \hat {\boldsymbol R}_k R ^ k 是一個維度爲N k × N k N_k \times N_k N k × N k 的上三角矩陣,Q ^ k \hat {\boldsymbol Q}_k Q ^ k 是一個維度爲M × N k M \times N_k M × N k 的矩陣,其列向量由H ^ k \hat {\boldsymbol H}_k H ^ k 的正交基組成。
由ZF預編碼知,H k ~ H ^ k = 0 \widetilde {\boldsymbol H_k}\hat {\boldsymbol H}_k=\bold 0 H k H ^ k = 0 ,即H k ~ Q ^ k R ^ k = 0 \widetilde {\boldsymbol H_k}\hat {\boldsymbol Q}_k\hat {\boldsymbol R}_k=\bold 0 H k Q ^ k R ^ k = 0 ,由於R ^ k \hat {\boldsymbol R}_k R ^ k 爲對角元素非零的上三角矩陣,是可逆矩陣,可得H k ~ Q ^ k = 0 \widetilde {\boldsymbol H_k}\hat {\boldsymbol Q}_k =\bold 0 H k Q ^ k = 0 ,可見,矩陣Q ^ k \hat {\boldsymbol Q}_k Q ^ k 的列向量是H k ~ \widetilde {\boldsymbol H_k} H k 零空間的正交基。⟹ \Longrightarrow ⟹ 矩陣Q ^ k \hat {\boldsymbol Q}_k Q ^ k 列向量的線性組合而構成的預編碼矩陣仍然可以全消除共信道干擾影響。
設所有用戶的初始預編碼矩陣爲V k ′ = Q ^ k \boldsymbol V'_k=\hat {\boldsymbol Q}_k V k ′ = Q ^ k ,則經過預編碼,用戶k k k 的等效信道矩陣爲H k Q ^ k \boldsymbol H_k\hat {\boldsymbol Q}_k H k Q ^ k 。預編碼後,多用戶MIMO下行鏈路信道轉化成了K K K 個互不干擾的等效子信道 ,K K K 個並行的獨立子信道集合 可以表示爲
H ′ = [ H 1 Q ^ 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ H K Q ^ K ] (21)
\boldsymbol H'=\begin{bmatrix}
\boldsymbol H_1\hat {\boldsymbol Q}_1 & \cdots & \bold 0 \\
\vdots & \ddots & \vdots \\
\bold 0 & \cdots &\boldsymbol H_K\hat {\boldsymbol Q}_K
\end{bmatrix}\tag{21}
H ′ = ⎣ ⎢ ⎡ H 1 Q ^ 1 ⋮ 0 ⋯ ⋱ ⋯ 0 ⋮ H K Q ^ K ⎦ ⎥ ⎤ ( 2 1 )
爲了實現有效數據傳輸,再對每個等效用戶信道進行SVD分解
H k Q ^ k = U k Σ k V ^ k H (22)
\boldsymbol H_k\hat {\boldsymbol Q}_k=\boldsymbol U_k\boldsymbol \Sigma_k \hat {\boldsymbol V}_k^H \tag{22}
H k Q ^ k = U k Σ k V ^ k H ( 2 2 )
則根據SVD預編碼相關內容,可知此時用戶k k k 的預編碼矩陣爲
V k = Q ^ k V ^ k P k 1 / 2 (23)
\boldsymbol V_k=\hat {\boldsymbol Q}_k\hat {\boldsymbol V}_k \boldsymbol P_k^{1/2}\tag{23}
V k = Q ^ k V ^ k P k 1 / 2 ( 2 3 )
式中,P k = d i a g { p k 1 , p k 2 , ⋯ , p k N k } \boldsymbol P_k=diag\{p_{k1},p_{k2},\cdots,p_{kN_k}\} P k = d i a g { p k 1 , p k 2 , ⋯ , p k N k } 爲用戶k k k 的功率分配對角矩陣。所有用戶的預編碼矩陣可以統一表示爲
V = [ Q ^ 1 V ^ 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ Q ^ K V ^ K ] P 1 / 2 (24)
\boldsymbol V=\begin{bmatrix}
\hat {\boldsymbol Q}_1\hat {\boldsymbol V}_1 & \cdots & \bold 0 \\
\vdots & \ddots & \vdots \\
\bold 0 & \cdots &\hat {\boldsymbol Q}_K\hat {\boldsymbol V}_K
\end{bmatrix}\boldsymbol P^{1/2}\tag{24}
V = ⎣ ⎢ ⎡ Q ^ 1 V ^ 1 ⋮ 0 ⋯ ⋱ ⋯ 0 ⋮ Q ^ K V ^ K ⎦ ⎥ ⎤ P 1 / 2 ( 2 4 )
式中,P = d i a g { P 1 , P 2 , ⋯ , P K } \boldsymbol P=diag\{\boldsymbol P_1,\boldsymbol P_2,\cdots,\boldsymbol P_K\} P = d i a g { P 1 , P 2 , ⋯ , P K } 所有用戶的功率分配矩陣,且滿足如下功率限制條件
∑ k = 1 K ∑ j = 1 N k φ k j ≤ P (25)
\sum \limits _{k=1}^K \sum \limits _{j=1}^{N_k} \varphi_{kj} \leq P \tag{25}
k = 1 ∑ K j = 1 ∑ N k φ k j ≤ P ( 2 5 )
對式(12)的理解:第一項Q ^ k \hat {\boldsymbol Q}_k Q ^ k 消除了用戶間干擾,第二項V ^ k \hat {\boldsymbol V}_k V ^ k 消除了用戶內部多天線干擾,第三項P k 1 / 2 \boldsymbol P_k^{1/2} P k 1 / 2 用於分配功率 ,因此,解決了ZF編碼只適用於移動端配備單天線的問題。
4.4 BD預編碼(SVD-SVD)
塊對角化預編碼算法可以看作是迫零預編碼在用戶配置多天線 時的一般形式,通過奇異值分解 獲得各用戶相對於其他用戶的正交基,這樣就可以把多用戶MIMO信道分解成並行的互不干擾的點對點的單用戶MIMO信道 。BD預編碼所支持的用戶數目受限制於基站的發送天線數目以及各個用戶的接收天線數目,而且只是抑制了多用戶之間的干擾,不考慮噪聲問題,所以性能上有一定損失。
通常,BD預編碼算法分兩個步驟實現。第一步旨在爲H k ~ \widetilde {\boldsymbol H_k} H k 的零空間計算一個正交基V a \boldsymbol V^a V a ,可用於消除MUI。因此,獲得了等效的並行SU-MIMO信道。 第二步用於並行化每個用戶流,並通過V b \boldsymbol V^b V b 獲得最大的預編碼增益。因此,預編碼矩陣V \boldsymbol V V 可以分爲兩部分:V = V a V b \boldsymbol V=\boldsymbol V^a\boldsymbol V^b V = V a V b 。(注:此式未加上功率分配矩陣)
步驟1:獲取第一個預編碼矩V a \boldsymbol V^a V a 以減輕MUI 。
對於用戶k ,對H k ~ \widetilde {\boldsymbol H_k} H k 做SVD如下:
H ~ k = U ~ k Σ ~ k V ~ k H = U ~ k Σ ~ k [ V ~ k ( 1 ) V ~ k ( 0 ) ] H (26)
{\widetilde{\boldsymbol {H}}}_k={\widetilde{\boldsymbol {U}}}_k{\widetilde{\boldsymbol {\Sigma}}}_k{\widetilde{\boldsymbol {V}}}_k^H={\widetilde{\boldsymbol {U}}}_k{\widetilde{\boldsymbol {\Sigma}}}_k\left[{\widetilde{\boldsymbol {V}}}_k^{\left(1\right)}{\widetilde{\boldsymbol {V}}}_k^{\left(0\right)}\right]^H \tag{26}
H k = U k Σ k V k H = U k Σ k [ V k ( 1 ) V k ( 0 ) ] H ( 2 6 )
式中U ~ k {\widetilde{\boldsymbol {U}}}_k U k 和V ~ k {\widetilde{\boldsymbol {V}}}_k V k 是酉矩陣,Σ ~ k \widetilde{\boldsymbol {\Sigma}}_k Σ k 是包含H ~ k {\widetilde{\boldsymbol {H}}}_k H k 的奇異值的對角矩陣。將V ~ k {\widetilde{\boldsymbol {V}}}_k V k 分成兩部分:V ~ k ( 1 ) {\widetilde{\boldsymbol {V}}}_k^{\left(1\right)} V k ( 1 ) 由前B k B_k B k 個非零特徵值對應的特徵向量組成,V ~ k ( 0 ) {\widetilde{\boldsymbol {V}}}_k^{\left(0\right)} V k ( 0 ) 由後M − B k M-B_k M − B k 個零值特徵值對應的特徵向量組成,其中B k B_k B k 是矩陣H ~ k {\widetilde{\boldsymbol {H}}}_k H k 的秩。由於V ~ k ( 0 ) {\widetilde{\boldsymbol {V}}}_k^{\left(0\right)} V k ( 0 ) 構成了H ~ k {\widetilde{\boldsymbol {H}}}_k H k 的零空間的正交基,因此可獲得BD預編碼算法中用戶k 的第一預編碼矩陣V k a = V ~ k ( 0 ) \boldsymbol V_k^a={\widetilde{\boldsymbol {V}}}_k^{\left(0\right)} V k a = V k ( 0 ) .
遍歷所有用戶後,K 個用戶的第一個預編碼矩陣V a = [ V 1 a , ⋯ , V k a , ⋯ , V K a ] \boldsymbol V^a=[\boldsymbol V_1^a,\cdots,\boldsymbol V_k^a,\cdots,\boldsymbol V_K^a] V a = [ V 1 a , ⋯ , V k a , ⋯ , V K a ] .
步驟2:獲得第二預編碼矩陣以並行化每個用戶流,併爲每個用戶實現最大的預編碼增益 。
在第一次預編碼操作之後,將MU-MIMO信道轉換爲並行SU-MIMO信道,如下:
H V a = d i a g { H 1 V 1 a , ⋯ , H k V k a , ⋯ , H K V K a } (27)
{{\ \boldsymbol {H}}\boldsymbol {V}}^a=diag\{{{\ \boldsymbol {H}}_\mathbf{1}\boldsymbol {V}}_\mathbf{1}^a,\cdots,{\ \boldsymbol {H}}_k\boldsymbol {V}_k^a,\cdots,{{\ \boldsymbol {H}}_K\boldsymbol {V}}_K^a\} \tag{27}
H V a = d i a g { H 1 V 1 a , ⋯ , H k V k a , ⋯ , H K V K a } ( 2 7 )
我們定義用戶k 沒有MUI時的有效信道矩陣爲H e f f k = H k V k a \boldsymbol H_{effk}=\boldsymbol {H}_k\boldsymbol {V}_k^a H e f f k = H k V k a ,H e f f k \boldsymbol H_{effk} H e f f k 的秩記爲B e f f k B_{effk} B e f f k 。對於用戶k ,爲了獲得最大的預編碼增益,第二個SVD操作在有效信道矩陣上實現爲
H e f f k = U ′ k Σ ′ k V ′ k H = U ′ k Σ ′ k [ V ′ k ( 1 ) V ′ k ( 0 ) ] H (28)
{{\boldsymbol {H}}}_{effk}={{\boldsymbol {U'}}}_k{{\boldsymbol {\Sigma'}}}_k{{\boldsymbol {V'}}}_k^H={{\boldsymbol {U'}}}_k{{\boldsymbol {\Sigma'}}}_k\left[{{\boldsymbol {V'}}}_k^{\left(1\right)}{{\boldsymbol {V'}}}_k^{\left(0\right)}\right]^H \tag{28}
H e f f k = U ′ k Σ ′ k V ′ k H = U ′ k Σ ′ k [ V ′ k ( 1 ) V ′ k ( 0 ) ] H ( 2 8 )
式中U ′ k {{\boldsymbol {U'}}}_k U ′ k 和V ′ k {{\boldsymbol {V'}}}_k V ′ k 是酉矩陣,Σ ′ k {\boldsymbol {\Sigma'}}_k Σ ′ k 是包含H e f f k {{\boldsymbol {H}}}_{effk} H e f f k 的奇異值的對角矩陣。V ′ k ( 1 ) {{\boldsymbol {V'}}}_k^{\left(1\right)} V ′ k ( 1 ) 由前B e f f k B_{effk} B e f f k 個非零特徵值對應的特徵向量組成。BD預編碼算法中用戶k 的第二個預編碼矩陣V k b = V ′ k ( 1 ) \boldsymbol V_k^b={{\boldsymbol {V'}}}_k^{\left(1\right)} V k b = V ′ k ( 1 ) .
遍歷所有用戶後,K 個用戶的第一個預編碼矩陣V b = d i a g { V 1 b , ⋯ , V k b , ⋯ , V K b } \boldsymbol V^b=diag\{\boldsymbol V_1^b,\cdots,\boldsymbol V_k^b,\cdots,\boldsymbol V_K^b\} V b = d i a g { V 1 b , ⋯ , V k b , ⋯ , V K b } .
通過以上兩個步驟,整個預編碼矩陣表示爲
V = V a V b P 1 / 2 = [ V ~ 1 ( 0 ) V ′ 1 ( 1 ) ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ V ~ K ( 0 ) V ′ K ( 1 ) ] P 1 / 2 (29)
\boldsymbol V=\boldsymbol V^a\boldsymbol V^b\boldsymbol P^{1/2}=\begin{bmatrix}
{\widetilde{\boldsymbol {V}}}_1^{\left(0\right)} {{\boldsymbol {V'}}}_1^{\left(1\right)}& \cdots & \bold 0 \\
\vdots & \ddots & \vdots \\
\bold 0 & \cdots &{\widetilde{\boldsymbol {V}}}_K^{\left(0\right)} {{\boldsymbol {V'}}}_K^{\left(1\right)}
\end{bmatrix} \boldsymbol P^{1/2} \tag{29}
V = V a V b P 1 / 2 = ⎣ ⎢ ⎢ ⎡ V 1 ( 0 ) V ′ 1 ( 1 ) ⋮ 0 ⋯ ⋱ ⋯ 0 ⋮ V K ( 0 ) V ′ K ( 1 ) ⎦ ⎥ ⎥ ⎤ P 1 / 2 ( 2 9 )
其中,P 1 / 2 P^{1/2} P 1 / 2 是功率分配矩陣。
5. MMSE預編碼
產生噪聲放大問題的原因 :ZF,RZF,GZI以及BD預編碼在一定程度上都受到噪聲放大問題的影響,其主要原因是在求解預編碼矩陣的過程中,主要考慮瞭如何消除多用戶之間干擾,在干擾消除的同時,期望信號的能量也被削減 ,從而造成噪聲放大問題。在實際的多用戶MIMO系統中,如果用戶之間的空間距離非常接近,或者由於移動設備大小的限制,使得在一個設備上不同接收天線之間的空間距離非常短,都會造成不同天線之間信道的相關性非常強,因而信道矩陣是欠秩的,這時對信道矩陣的求逆就會造成噪聲放大問題 。⟹ \Longrightarrow ⟹ 預編碼前先進行解相關預處理 ,降低多用戶信道之間的相關性,再對預處理後的等效信道進行MMSE預編碼,此時MMSE預編碼受噪聲放大問題的影響較小。
最小均方誤差(MMSE)預編碼,綜合考慮了用戶干擾和信道噪聲的問題 ,通過引入係數β \beta β ,使系統可以將用戶接收端的信幹噪比最大化,同時儘可能的降低收發信號之間的均方誤差 ,進而促使此方案在環境噪聲較大(即信噪比較低)的情況下,也可以獲得較好得系統性能 。此方案對應的預編碼矩陣爲:
V = ξ H H ( H H H + β I ) − 1 P 1 / 2 (30)
\boldsymbol V=\xi\boldsymbol H^H(\boldsymbol H\boldsymbol H^H+\beta \boldsymbol I)^{-1}\boldsymbol P^{1/2} \tag{30}
V = ξ H H ( H H H + β I ) − 1 P 1 / 2 ( 3 0 )
已發表的文獻從MMSE預編碼和速率的確定性等同角度出發,證明了在完全精確己知信道狀態信息的情況下,MMSE預編碼等功率分配是最優的。因此,功率分配矩陣的表達形式爲P = I \boldsymbol P=\boldsymbol I P = I ,則
V = ξ H H ( H H H + β I ) − 1 (31)
\boldsymbol V=\xi\boldsymbol H^H(\boldsymbol H\boldsymbol H^H+\beta \boldsymbol I)^{-1}\tag{31}
V = ξ H H ( H H H + β I ) − 1 ( 3 1 )
當信幹噪比最優時,β \beta β 表示用戶終端數N與下行鏈路平均傳輸功率P s P_s P s 的比值,即β = N / P s \beta = N/P_s β = N / P s .
6. 參考文獻
[1]陸晨. 大規模MIMO系統下行預編碼傳輸方法研究[D]. 東南大學, 2017.
[2]楊學志. 通信之道:從微積分到5G[M]. 電子工業出版社, 2016.
[3]Fang S , Li L , Wu J , et al. QR decomposition and gram Schmidt orthogonalization based low-complexity multi-user MIMO precoding[C]. 10th International Conference on Wireless Communications, Networking and Mobile Computing (WiCOM 2014). IET, 2014.
[4]孟梅梅. 大規模MIMO系統中預編碼算法的研究[D]. 西安電子科技大學, 2017.
[5]白文豪. 面向5G的Massive MIMO預編碼算法研究[D]. 西安電子科技大學, 2019.