文獻標識碼: A
文章編號: 0258-7998(2014)11-0098-04
0 引言
MIMO-OFDM系統(tǒng)接收端檢測算法中,最大似然檢測(Maximum Likelihood,,ML)算法具有最優(yōu)檢測性能,,但其復(fù)雜度會隨著天線數(shù)量和調(diào)制階數(shù)增加呈指數(shù)增長。K-Best算法[1]克服了ML算法復(fù)雜度較高的缺點,,并且能夠取得與ML算法相似的誤比特率(Bit Error Rate,,BER)性能,因而受到廣泛關(guān)注,。
目前已實現(xiàn)的K-Best檢測器主要分為專用集成電路(Application Specific Integrated Circuit,,ASIC)[2-3]和現(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)[4]兩類,。其中:參考文獻[2]設(shè)計并實現(xiàn)吞吐率達到424 Mb/s的K-Best檢測器,。參考文獻[3]中的半徑自適應(yīng)K-Best算法結(jié)合了深度球形解碼和寬度球形解碼的特點,以較低的功耗和硬件資源消耗達到了252 Mb/s的數(shù)據(jù)吞吐率,。而后參考文獻[4]改進了K-Best算法對路徑度量的排序方法,,并基于FPGA實現(xiàn)了K+-Best檢測器,其數(shù)據(jù)吞吐率達到455 Mb/s。上述K-Best檢測器均用于4×4天線系統(tǒng)中,,并需設(shè)置較大的K值以獲得較高的BER性能,。
本文首先介紹了K-Best算法基本原理,然后在構(gòu)建的2×4(2根發(fā)送天線,、4根接收天線)MIMO-OFDM系統(tǒng)中仿真確定了K-Best算法中的K值,,之后對K-Best檢測器進行了硬件架構(gòu)設(shè)計,最后采用FPGA對所設(shè)計檢測器進行編程實現(xiàn),,給出檢測器資源消耗和時鐘頻率等性能指標,,并通過仿真驗證了檢測器的正確性。
1 K-Best算法分析
1.1 算法原理
假設(shè)在一個MIMO-OFDM系統(tǒng)中配置M根發(fā)送天線和N根接收天線(N≥M),,則該系統(tǒng)的信號模型可以表示為:
y=Hs+n(1)
其中,,s為M維發(fā)送信號,y為N維接收信號,,n為N維加性高斯白噪聲,。信道矩陣H是復(fù)數(shù)域的N×M維矩陣。為避免復(fù)數(shù)運算帶來額外硬件開銷,,可將信號模型(1)實數(shù)化分解:
R(y)I(y)=R(H) I(H)I(H) R(H)R(s)I(s)+R(n)I(n)(2)
其中,,R(?駐)和I(?駐)分別表示復(fù)數(shù)?駐的實部與虛部。實數(shù)化后的信號模型由式(3)表示:
然后對信道矩陣實施QR分解,,即H=QR,,采用最大似然準則求解(3)可得:
其中,Q為2N×2N維正交矩陣,;R為2N×2M維矩陣;y=QTy為2N維向量,;為實數(shù)化后的星座點集合,,例如采用4QAM調(diào)制時,星座集合為{-1,,1},。
根據(jù)式(4)可得,K-Best算法的檢測過程可以近似為圖1所示的樹形結(jié)構(gòu),。定義參數(shù)K為每層保留節(jié)點個數(shù),,檢測過程從第2M層開始,各層需計算歐式距離增量(INC),,并與上一層累積歐式距離(PED)相加得到當前層的PED,,然后將PED進行排序判決,保留其中較小的K條PED和其對應(yīng)的K個節(jié)點,,刪除廢棄節(jié)點的所有信息,。當檢測到最后一層時,從保留的K條PED再次選出最小累積歐式距離,并將其對應(yīng)的節(jié)點作為檢測結(jié)果,??梢钥闯觯琄-Best算法中的K值對算法最終的BER性能和復(fù)雜度起著關(guān)鍵性作用,。
1.2 K-Best算法K值的確定
貝爾實驗室提出的垂直分層空時結(jié)構(gòu)(Vertical-BLAST,,V-BLAST)是MIMO空間復(fù)用的典型代表[5],具有時延小,、處理簡單等特點,。本文基于V-BLAST構(gòu)建的2×4 MIMO-OFDM系統(tǒng)模型如圖2所示。
圖3為在上述系統(tǒng)中對K-Best算法的BER性能仿真結(jié)果,。從圖中可以看出,,當收發(fā)天線為4×4且分別設(shè)置K=1、2時,,算法BER性能較差,;只有當K=16時,算法BER性能才與ML算法性能一致(此時已遍歷整個樹形結(jié)構(gòu)中的所有節(jié)點),,故該復(fù)用方案下K值大小對算法BER性能影響很大,。而當收發(fā)天線數(shù)為2×4,則只有K=1時算法BER性能較差,,K=2時獲得的BER性能與K=10和ML算法性能基本一致,,故在后續(xù)的K-Best檢測器FPGA實現(xiàn)中將K值設(shè)為2。
2 K-Best算法的硬件實現(xiàn)
2.1 QR分解模塊
QR分解是K-Best檢測算法的基礎(chǔ),,采用CORDIC運算的脈動陣列是實現(xiàn)QR分解的常用結(jié)構(gòu)[6],。圖4是8×4信道矩陣QR分解結(jié)構(gòu),其中圓形是邊界單元,,正方形是內(nèi)部單元,,邊界單元工作于CORDIC運算向量模式,將信道元素組成的向量旋轉(zhuǎn)至x軸,,實現(xiàn)元素消零并向右輸出旋轉(zhuǎn)角度,,內(nèi)部單元工作于CORDIC運算旋轉(zhuǎn)模式,根據(jù)輸入角度對向量進行旋轉(zhuǎn),,并向下輸出旋轉(zhuǎn)后向量虛部和向右傳遞輸入角度,。左邊4×4維上三角陣列用于計算R矩陣,其輸入是列延時后的信道矩陣,;右邊的4×8維陣列用于計算Q矩陣,,其輸入是列延時后的單位陣,輸出的4×8維矩陣經(jīng)轉(zhuǎn)置后得到Q矩陣,。
2.2 乘加陣列模塊
乘加陣列結(jié)構(gòu)如圖5所示,,由2.1中QR分解得到的QT矩陣作為乘加陣列上端輸入,,在T1~T4時刻分別輸入QT矩陣的1~4行(x=1,2,,3,,4),接收信號作為乘加陣列左端輸入,,在T1~T4時刻始終輸入1~8,。經(jīng)過乘加陣列,在T1~T4分別輸出1~4,。
2.3 K-Best樹形檢測模塊
K-Best樹形檢測模塊如圖6所示,,其中PEDi,1~PEDi,,K表示第i層K條最小PED,,s4~s1表示第4層到第1層的檢測結(jié)果。由于在收發(fā)端配置2×4的天線,,故K-Best檢測的層數(shù)總共為4層,。當調(diào)制階數(shù)為M時,每個父節(jié)點有個子節(jié)點,,故當K-Best中K≥時第4層只需進行INC計算,,無需進行排序判決。其他3層均由干涉選擇單元,、累積歐氏距離增量計算單元(Distance Calculation Unit,,DCU)與排序選擇單元(Sorting and Select Unit,SSU)構(gòu)成,。
待選生成:由式(4)可知K-Best算法在每層均需計算多次,,重復(fù)計算將導(dǎo)致過大的硬件資源消耗。因此在設(shè)計中采用待選生成結(jié)構(gòu)將避免和Ri的反復(fù)計算,,節(jié)省了硬件資源,。待選集合在每層計算INC之前生成,由上層確定的j作為選擇器輸出各Rij,,并與本層i擴展后得到的±Rii共同送入該層INC計算中。
干涉選擇:經(jīng)上層PED排序判決確定的j送入干涉選擇單元,,對已生成的Rij待選集合進行選擇,,經(jīng)加法器后的輸出結(jié)果與i共同確定式(4)中。當調(diào)制階數(shù)為M時,,的計算次數(shù)達到,,引入待選集合和干涉選擇模塊后,每層的計算次數(shù)減少到K次[7],,調(diào)制階數(shù)越高時計算次數(shù)減少得越明顯,。
DCU單元:在式(4)中,,每層條INC是由和±Rii進行減法操作后模平方得到的。然后與上層保留的K條PED對應(yīng)相加得到本層的PED,,之后將本層的PED送入SSU單元進行排序選擇,。
SSU單元:DCU單元中輸出的條PED送入SSU單元進行排序選擇操作,選出歐氏距離較小PED對應(yīng)的K個節(jié)點作為本層的輸出結(jié)果,。排序選擇采用“冒泡排序法”,,對于條PED,需要K路2K級的排序選擇電路來進行判決,。
3 FPGA實現(xiàn)結(jié)果
本設(shè)計利用Xilinx Virtex-5(XC5VSX50T)芯片對K-Best檢測器進行FPGA實現(xiàn),。調(diào)制方式為4QAM,設(shè)置K=2,。表1給出了檢測器硬件資源消耗和時鐘頻率的性能指標,。
為了驗證所設(shè)計K-Best信號檢測器是否能夠?qū)崿F(xiàn)對信號正確的檢測,將使用MATLAB,、ISE和Modelsim軟件對檢測器進行行為仿真(Behavior Simulation)和BER性能仿真驗證,。具體仿真參數(shù)如表2所示。
首先將MATLAB中實數(shù)化后的星座點集合?贅,、信道矩陣和接收信號存為Modelsim可讀取的文件(由于輸入數(shù)據(jù)需為定點數(shù),。考慮到溢出情況,,將位寬設(shè)置為16位,,首位為符號位,這里將MATLAB中的數(shù)據(jù)放大212倍,,放大倍數(shù)越大,,最終的精度越高,但占用的資源也就越多),。經(jīng)ISE調(diào)用Modelsim讀取所存文件,,然后運行Modelsim對檢測器進行行為仿真。整個過程完成了8×4信道矩陣的QR分解,、矩陣Q與接收信號的乘累加,、EDI和CED的計算以及CED的排序選擇。數(shù)據(jù)輸入端口分別為dr,、dq,、dq2、rec,、s41和s42,。其中dr用于存放8×4信道矩陣,dq和dq2存放8×8的單位陣,,rec存放接收信號,,s41和s42分別存放4QAM調(diào)制實數(shù)化后的星座點-1和1,,計算完成后最終的輸出結(jié)果為s4~s1(輸出結(jié)果位寬為2 bit,首位為符號位),。
接下來將s4~s1存為MATLAB可讀取文件(由于前面將數(shù)據(jù)放大212倍,,故這里需要縮小相應(yīng)的倍數(shù)),與直接用MATLAB進行K-Best信號檢測的結(jié)果共同轉(zhuǎn)換為復(fù)數(shù),,然后進行星座逆映射,,并與發(fā)送數(shù)據(jù)進行序列比較,最終得到如圖7所示的BER性能比較圖,。通過對比可以看出,,二者的BER性能基本一致,這也反映了所設(shè)計檢測器的正確性,。
4 結(jié)束語
本文基于V-BLAST結(jié)構(gòu)構(gòu)建了2×4 MIMO-OFDM系統(tǒng)模型,,并在該系統(tǒng)下對K-Best算法進行仿真,確定了算法的主要參數(shù),;而后根據(jù)確定的參數(shù)設(shè)計了K-Best檢測器,,介紹了檢測器的各個模塊硬件架構(gòu),并采用Xilinx Virtex-5芯片對檢測器加以實現(xiàn),,給出檢測器的RTL結(jié)構(gòu)圖,、資源消耗和時鐘頻率等性能指標;最后文章通過MATLAB,、ISE和Modelsim聯(lián)合仿真驗證了K-Best檢測器的BER性能,。
參考文獻
[1] WANG K W,TSUI C Y.A VLSI architecture of a K-Best lattice decoding algorithm for MIMO channels[C].Proceedingsof IEEE International Symposium on Circuits and Systems,,2002:273-276.
[2] WENK M,,ZELLWEGER M,BURG A,,et al.K-Best MIMOdetecting VLSI architectures achieving up to 424 Mb/s[C].Proceedings of IEEE International Symposium on Circuits and Systems,,2006(4):1154.
[3] SHEN C A,ELTAWIL A M.A radius adaptive K-Best de-coder with early termination:algorithm and VLSI architec-ture[J].IEEE Transactions on Circuits and Systems I:regularpapers,,2010,,57(9):2476-2486.
[4] HEIDMANN N,WIEGAND T,,PAUL S.Architecture and FPGA-implementation of a high throughput K+-Best detec-tor[C].Proceedings of Design, Automation & Test in EuropeConference & Exhibition,,2011:1-6.
[5] 于全.戰(zhàn)術(shù)通信理論與技術(shù)[M].北京:電子工業(yè)出版社,2009.
[6] HAENE S,,PERELS D,BURG A.A real-time 4-stream MIMO-OFDM transceiver: system design, FPGA implemen-tation, and characterization[J].IEEE Journal on Selected Areas in Communications, 2008, 26(6): 877-889.
[7] 馬小晶.MIMO-OFDM系統(tǒng)信號檢測技術(shù)研究及VLSI實現(xiàn)[D].上海:復(fù)旦大學(xué),,2009.