張繼榮,呂沙沙
(西安郵電大學 通信與信息工程學院, 陜西 西安 710121)
在大規模多輸入多輸出(multiple input multiple output,MIMO)[1]系統中,基站端采用大規模天線陣列來提升系統性能,隨著基站天線數目的增加,接收端譯碼的復雜度會越來越高,為此可以在基站端應用預編碼技術來消除用戶之間的干擾,進而可以降低終端信息處理復雜度。
目前廣泛應用的預編碼算法分為兩類,一類是非線性預編碼算法,主要包括臟紙(dirty paper coding,DPC)預編碼[2]和湯姆林森-哈拉希瑪預編碼(Tomlinson Harashima precoding,THP)[3]。另一類是線性預編碼算法,主要包括最小均方誤差(minimum mean squared error,MMSE)預編碼算法[4]、迫零(zero forcing,ZF)[4]預編碼算法、塊對角化[5](block diagonalization,BD)預編碼算法。研究表明,在大規模MIMO場景下,也就是天線數目達到一定數量時,線性預編碼技術可以達到與非線性預編碼技術相同的性能[6]。基于Neumann級數展開的預編碼算法具有較低的復雜度,但是其誤碼率性能并沒有提升[7]。文[8]提出了一種混合預編碼算法,但是在多用戶場景下,系統的誤碼率和復雜度較高。優化的塊對角化(optimized block diagonalization,OBD)預編碼算法[9]在求解預編碼矩陣時沒有考慮系統噪聲,且在求解時采用了復雜度較高的奇異值分解(singularly valuable decomposition,SVD),不適合在大規模MIMO系統中使用。
為了降低算法的誤碼率和復雜度,本文擬提出一種改進的BD預編碼算法。該算法首先利用正規迫零(regular zero forcing,RZF)預編碼算法的預編碼矩陣作為信道矩陣的偽逆,并采用正三角(orthogonal triangular,QR)分解求得該矩陣的標準正交基,將下行的多用戶MIMO系統被分解為平行的單用戶信道,并求得每個用戶的等效矩陣,最終求得系統各用戶的預編碼矩陣。
在單小區多個用戶場景下,大規模MIMO系統模型[1],如圖1所示。

圖1 大規模MIMO系統模型
圖1中,系統同時服務K個用戶;系統為第k(k=1,2,…,K)個用戶發送的數據[9]


用戶配備的接收天線數為Nr,且K×Nr≤Nt;信道檢測矩陣[9]
Gk=diag{G1,G2,…,GK} 。
第k個(k=1,2,…,K)用戶的接收信號
(1)
其中,歸一化因子
用來保證基站發送的總功率為Pt,且
E[‖sk‖2]≤Pt。
nk是系統噪聲矩陣,滿足均值為0方差為1的高斯隨機變量。式(1)第一項為用戶k的有用信號,第二項為其他用戶對目標用戶的干擾,第三項為系統噪聲。可以在系統的發送端采取預編碼算法來降低式(1)中的干擾項對期望信號的影響,并將以此為出發點來求出預編碼矩陣Wk。
BD預編碼算法是系統有多個用戶時最常用的預編碼算法,該算法通過在基站端對發送信號進行BD預編碼處理,使用戶間的干擾可以完全被消除。通過將ZF預編碼和BD算法相結合,將ZF算法的預編碼矩陣作為信道矩陣的偽逆,并對它的級聯矩陣進行SVD分解從而可以計算出各個用戶的預編碼矩陣[9],然而使用這種算法求解預編碼矩陣時并沒有考慮系統噪聲,且計算時需要進行兩次SVD分解,計算復雜度大。
ZF預編碼算法雖然可以消除用戶間的干擾,但并沒有考慮噪聲的影響,而RZF[10]預編碼算法正好可以彌補這個缺陷,且當天線數目Nt和用戶數K很大時,RZF預編碼算法成為大規模MIMO系統中最優的預編碼算法之一[10]。因此本文將RZF算法與BD算法相結合,RZF預編碼矩陣

(2)
其中,H為信道矩陣;δ是正則化系數[11],它的值為用戶K除以基站的發射功率Pt,Pt=‖s‖2,s為系統的發射信號向量。由式(2)可知,RZF預編碼矩陣是個偽逆矩陣,因此首先定義第k個用戶的等效信道矩陣
為了不改變總的發射功率,對矩陣Pk進行QR分解[12]


Σ=diag {Σ1,Σ2,…,Σk}
的對角線元素進行注水得到。此時得到的用戶k的預編碼矩陣
利用Matlab軟件進行仿真,仿真用戶數從1到61,天線數目從8到128,信道為平坦的衰落信道,且服從瑞利分布,噪聲信號為高斯白噪聲,系統采用QPSK進行調制。
基站天線數從8到128,系統同時服務4個用戶,每個用戶有2根接收天線時,改進的預編碼算法、傳統BD預編碼算法以及文[9]提出的OBD預編碼算法的誤碼率性能隨著基站天線數目增加的變化情況,如圖2所示。

圖2 誤碼率性能隨基站天線數目的變化情況
從圖2可以看出,隨著基站天線數目的增多,系統的誤碼率是逐步降低的,這就是多天線帶來的優勢。改進的預編碼算法誤碼率性能最優、傳統BD預編碼算法最差。這是因為改進預編碼算法不僅可以消除用戶間干擾,且考慮到系統噪聲,因此誤碼率性能最優。在天線數目為128時,改進預編碼算法誤碼率為0.109 5,文獻[9]的OBD算法的誤碼率為0.123 8,誤碼率降低了11.5%。
基站配備128根天線,用戶數目從1到61個時,每個用戶有2根接收天線,信噪比為5 dB時,3種預編碼算法的誤碼率隨用戶數的變化情況,如圖3所示。

圖3 誤碼率性能隨用戶數的變化情況
從圖3可以看出,隨著用戶數的增多,3種預編碼算法的誤碼率都是逐步增大的,改進算法的誤碼率性能最優,傳統BD算法誤碼率性能最差。當用戶數為61時,改進算法誤碼率為0.184 7,文[9]提出的OBD算法的誤碼率為0.493 2。誤碼率下降了62%,這說明改進算法是可以應用于大規模MIMO系統中的,可以同時服務于多個用戶,并且用戶數越多,改進算法優勢越大。
利用浮點運算flop數目[13-14]進行復雜度分析,一個flop表示一次實數乘法或加法運算,一次復數乘法需要6個flop,一次復數加法需要2個flop。為了進一步揭示預編碼算法的運算復雜度與系統天線配置的關系,本節對文[9]提出的OBD算法以及本文的改進算法的復雜度進行分析,兩種算法的復雜度與基站配備的發送總天線數Nt、接收天線總數Nr、每個用戶的接收天線數Ne以及用戶個數K的關系,如表1和表2所示。

表1 文[9]預編碼算法的運算復雜度

表2 改進預編碼算法的運算復雜度
基站配備128根發送天線,同時服務的用戶數從1到61,每個用戶的接收天線數為2時,兩種算法的復雜度隨用戶數的變化情況,如圖4所示。
從圖4可以看出,改進預編碼算法復雜度較文[9]的OBD算法要低,這是因為文[9]提出的預編碼算法是將ZF算法的預編碼矩陣作為信道矩陣的偽逆,并對其級聯矩陣

圖4 算法復雜度隨用戶數的變化情況
針對大規模MIMO系統,基站配置多達百根天線,系統同時服務多個用戶的情況,本文提出了一種基于BD預編碼算法的改進算法。該算法首先對RZF算法的預編碼矩陣進行QR分解,將系統分解為平行單用戶系統,然后對每個用戶的等效信道矩陣進行SVD分解,最終求得各用戶的預編碼矩陣。當基站天線數為128、同時服務61個用戶時,改進算法、文[9]算法的誤碼率分別為0.109 5、0.123 8,誤碼率降低了11.5%,浮點數分別為1.379×108、1.045×1010,復雜度降低了1.031×1010。這說明改進算法不僅降低了系統的誤碼率而且改善了運算復雜度。