張繼榮,呂沙沙
(西安郵電大學(xué) 通信與信息工程學(xué)院, 陜西 西安 710121)
在大規(guī)模多輸入多輸出(multiple input multiple output,MIMO)[1]系統(tǒng)中,基站端采用大規(guī)模天線陣列來提升系統(tǒng)性能,隨著基站天線數(shù)目的增加,接收端譯碼的復(fù)雜度會越來越高,為此可以在基站端應(yīng)用預(yù)編碼技術(shù)來消除用戶之間的干擾,進(jìn)而可以降低終端信息處理復(fù)雜度。
目前廣泛應(yīng)用的預(yù)編碼算法分為兩類,一類是非線性預(yù)編碼算法,主要包括臟紙(dirty paper coding,DPC)預(yù)編碼[2]和湯姆林森-哈拉希瑪預(yù)編碼(Tomlinson Harashima precoding,THP)[3]。另一類是線性預(yù)編碼算法,主要包括最小均方誤差(minimum mean squared error,MMSE)預(yù)編碼算法[4]、迫零(zero forcing,ZF)[4]預(yù)編碼算法、塊對角化[5](block diagonalization,BD)預(yù)編碼算法。研究表明,在大規(guī)模MIMO場景下,也就是天線數(shù)目達(dá)到一定數(shù)量時,線性預(yù)編碼技術(shù)可以達(dá)到與非線性預(yù)編碼技術(shù)相同的性能[6]?;贜eumann級數(shù)展開的預(yù)編碼算法具有較低的復(fù)雜度,但是其誤碼率性能并沒有提升[7]。文[8]提出了一種混合預(yù)編碼算法,但是在多用戶場景下,系統(tǒng)的誤碼率和復(fù)雜度較高。優(yōu)化的塊對角化(optimized block diagonalization,OBD)預(yù)編碼算法[9]在求解預(yù)編碼矩陣時沒有考慮系統(tǒng)噪聲,且在求解時采用了復(fù)雜度較高的奇異值分解(singularly valuable decomposition,SVD),不適合在大規(guī)模MIMO系統(tǒng)中使用。
為了降低算法的誤碼率和復(fù)雜度,本文擬提出一種改進(jìn)的BD預(yù)編碼算法。該算法首先利用正規(guī)迫零(regular zero forcing,RZF)預(yù)編碼算法的預(yù)編碼矩陣作為信道矩陣的偽逆,并采用正三角(orthogonal triangular,QR)分解求得該矩陣的標(biāo)準(zhǔn)正交基,將下行的多用戶MIMO系統(tǒng)被分解為平行的單用戶信道,并求得每個用戶的等效矩陣,最終求得系統(tǒng)各用戶的預(yù)編碼矩陣。
在單小區(qū)多個用戶場景下,大規(guī)模MIMO系統(tǒng)模型[1],如圖1所示。
圖1 大規(guī)模MIMO系統(tǒng)模型
圖1中,系統(tǒng)同時服務(wù)K個用戶;系統(tǒng)為第k(k=1,2,…,K)個用戶發(fā)送的數(shù)據(jù)[9]
用戶配備的接收天線數(shù)為Nr,且K×Nr≤Nt;信道檢測矩陣[9]
Gk=diag{G1,G2,…,GK} 。
第k個(k=1,2,…,K)用戶的接收信號
(1)
其中,歸一化因子
用來保證基站發(fā)送的總功率為Pt,且
E[‖sk‖2]≤Pt。
nk是系統(tǒng)噪聲矩陣,滿足均值為0方差為1的高斯隨機(jī)變量。式(1)第一項為用戶k的有用信號,第二項為其他用戶對目標(biāo)用戶的干擾,第三項為系統(tǒng)噪聲??梢栽谙到y(tǒng)的發(fā)送端采取預(yù)編碼算法來降低式(1)中的干擾項對期望信號的影響,并將以此為出發(fā)點來求出預(yù)編碼矩陣Wk。
BD預(yù)編碼算法是系統(tǒng)有多個用戶時最常用的預(yù)編碼算法,該算法通過在基站端對發(fā)送信號進(jìn)行BD預(yù)編碼處理,使用戶間的干擾可以完全被消除。通過將ZF預(yù)編碼和BD算法相結(jié)合,將ZF算法的預(yù)編碼矩陣作為信道矩陣的偽逆,并對它的級聯(lián)矩陣進(jìn)行SVD分解從而可以計算出各個用戶的預(yù)編碼矩陣[9],然而使用這種算法求解預(yù)編碼矩陣時并沒有考慮系統(tǒng)噪聲,且計算時需要進(jìn)行兩次SVD分解,計算復(fù)雜度大。
ZF預(yù)編碼算法雖然可以消除用戶間的干擾,但并沒有考慮噪聲的影響,而RZF[10]預(yù)編碼算法正好可以彌補(bǔ)這個缺陷,且當(dāng)天線數(shù)目Nt和用戶數(shù)K很大時,RZF預(yù)編碼算法成為大規(guī)模MIMO系統(tǒng)中最優(yōu)的預(yù)編碼算法之一[10]。因此本文將RZF算法與BD算法相結(jié)合,RZF預(yù)編碼矩陣
(2)
其中,H為信道矩陣;δ是正則化系數(shù)[11],它的值為用戶K除以基站的發(fā)射功率Pt,Pt=‖s‖2,s為系統(tǒng)的發(fā)射信號向量。由式(2)可知,RZF預(yù)編碼矩陣是個偽逆矩陣,因此首先定義第k個用戶的等效信道矩陣
為了不改變總的發(fā)射功率,對矩陣Pk進(jìn)行QR分解[12]
Σ=diag {Σ1,Σ2,…,Σk}
的對角線元素進(jìn)行注水得到。此時得到的用戶k的預(yù)編碼矩陣
利用Matlab軟件進(jìn)行仿真,仿真用戶數(shù)從1到61,天線數(shù)目從8到128,信道為平坦的衰落信道,且服從瑞利分布,噪聲信號為高斯白噪聲,系統(tǒng)采用QPSK進(jìn)行調(diào)制。
基站天線數(shù)從8到128,系統(tǒng)同時服務(wù)4個用戶,每個用戶有2根接收天線時,改進(jìn)的預(yù)編碼算法、傳統(tǒng)BD預(yù)編碼算法以及文[9]提出的OBD預(yù)編碼算法的誤碼率性能隨著基站天線數(shù)目增加的變化情況,如圖2所示。
圖2 誤碼率性能隨基站天線數(shù)目的變化情況
從圖2可以看出,隨著基站天線數(shù)目的增多,系統(tǒng)的誤碼率是逐步降低的,這就是多天線帶來的優(yōu)勢。改進(jìn)的預(yù)編碼算法誤碼率性能最優(yōu)、傳統(tǒng)BD預(yù)編碼算法最差。這是因為改進(jìn)預(yù)編碼算法不僅可以消除用戶間干擾,且考慮到系統(tǒng)噪聲,因此誤碼率性能最優(yōu)。在天線數(shù)目為128時,改進(jìn)預(yù)編碼算法誤碼率為0.109 5,文獻(xiàn)[9]的OBD算法的誤碼率為0.123 8,誤碼率降低了11.5%。
基站配備128根天線,用戶數(shù)目從1到61個時,每個用戶有2根接收天線,信噪比為5 dB時,3種預(yù)編碼算法的誤碼率隨用戶數(shù)的變化情況,如圖3所示。
圖3 誤碼率性能隨用戶數(shù)的變化情況
從圖3可以看出,隨著用戶數(shù)的增多,3種預(yù)編碼算法的誤碼率都是逐步增大的,改進(jìn)算法的誤碼率性能最優(yōu),傳統(tǒng)BD算法誤碼率性能最差。當(dāng)用戶數(shù)為61時,改進(jìn)算法誤碼率為0.184 7,文[9]提出的OBD算法的誤碼率為0.493 2。誤碼率下降了62%,這說明改進(jìn)算法是可以應(yīng)用于大規(guī)模MIMO系統(tǒng)中的,可以同時服務(wù)于多個用戶,并且用戶數(shù)越多,改進(jìn)算法優(yōu)勢越大。
利用浮點運算flop數(shù)目[13-14]進(jìn)行復(fù)雜度分析,一個flop表示一次實數(shù)乘法或加法運算,一次復(fù)數(shù)乘法需要6個flop,一次復(fù)數(shù)加法需要2個flop。為了進(jìn)一步揭示預(yù)編碼算法的運算復(fù)雜度與系統(tǒng)天線配置的關(guān)系,本節(jié)對文[9]提出的OBD算法以及本文的改進(jìn)算法的復(fù)雜度進(jìn)行分析,兩種算法的復(fù)雜度與基站配備的發(fā)送總天線數(shù)Nt、接收天線總數(shù)Nr、每個用戶的接收天線數(shù)Ne以及用戶個數(shù)K的關(guān)系,如表1和表2所示。
表1 文[9]預(yù)編碼算法的運算復(fù)雜度
表2 改進(jìn)預(yù)編碼算法的運算復(fù)雜度
基站配備128根發(fā)送天線,同時服務(wù)的用戶數(shù)從1到61,每個用戶的接收天線數(shù)為2時,兩種算法的復(fù)雜度隨用戶數(shù)的變化情況,如圖4所示。
從圖4可以看出,改進(jìn)預(yù)編碼算法復(fù)雜度較文[9]的OBD算法要低,這是因為文[9]提出的預(yù)編碼算法是將ZF算法的預(yù)編碼矩陣作為信道矩陣的偽逆,并對其級聯(lián)矩陣
圖4 算法復(fù)雜度隨用戶數(shù)的變化情況
針對大規(guī)模MIMO系統(tǒng),基站配置多達(dá)百根天線,系統(tǒng)同時服務(wù)多個用戶的情況,本文提出了一種基于BD預(yù)編碼算法的改進(jìn)算法。該算法首先對RZF算法的預(yù)編碼矩陣進(jìn)行QR分解,將系統(tǒng)分解為平行單用戶系統(tǒng),然后對每個用戶的等效信道矩陣進(jìn)行SVD分解,最終求得各用戶的預(yù)編碼矩陣。當(dāng)基站天線數(shù)為128、同時服務(wù)61個用戶時,改進(jìn)算法、文[9]算法的誤碼率分別為0.109 5、0.123 8,誤碼率降低了11.5%,浮點數(shù)分別為1.379×108、1.045×1010,復(fù)雜度降低了1.031×1010。這說明改進(jìn)算法不僅降低了系統(tǒng)的誤碼率而且改善了運算復(fù)雜度。