文獻標識碼: 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)相加得到當(dāng)前層的PED,然后將PED進行排序判決,保留其中較小的K條PED和其對應(yīng)的K個節(jié)點,刪除廢棄節(jié)點的所有信息。當(dāng)檢測到最后一層時,從保留的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é)果。從圖中可以看出,當(dāng)收發(fā)天線為4×4且分別設(shè)置K=1、2時,算法BER性能較差;只有當(dāng)K=16時,算法BER性能才與ML算法性能一致(此時已遍歷整個樹形結(jié)構(gòu)中的所有節(jié)點),故該復(fù)用方案下K值大小對算法BER性能影響很大。而當(dāng)收發(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層。當(dāng)調(diào)制階數(shù)為M時,每個父節(jié)點有個子節(jié)點,故當(dāng)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)中。當(dāng)調(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.