《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > MIMO OFDM系統(tǒng)中一種V-BLAST檢測算法的FPGA實現(xiàn)

MIMO OFDM系統(tǒng)中一種V-BLAST檢測算法的FPGA實現(xiàn)

2008-07-24
作者:舒 晶,王 強,徐 縉,陶

??? 摘 要: 給出了一種V-BLAST" title="V-BLAST">V-BLAST檢測算法的FPGA實現(xiàn)方案,該算法基于Greville求偽逆的方法。設計主要考慮了流水線操作" title="流水線操作">流水線操作和并行度處理。算法在Xilinx公司的Vertex Ⅱ Pro系列FPGA中實現(xiàn),在B3G TDD MIMO OFDM系統(tǒng)硬件平臺上進行了驗證,性能良好。
??? 關(guān)鍵詞: FPGA;V-BLAST;MIMO;流水線操作

?

??? MIMO(Multiple Input Multiple Output)技術(shù)利用多根天線,在不增加帶寬和發(fā)送功率的情況下,可以成倍地提高信道容量。文獻[1]證明,信道容量會隨著天線數(shù)目的增加而線性增加。OFDM 技術(shù)能高效地利用頻譜資源并有效地對抗頻率選擇性衰落。MIMO和OFDM的結(jié)合可以克服頻率選擇性衰落、增加系統(tǒng)容量、提高頻譜利用率,成為4G中的關(guān)鍵技術(shù)之一。
??? V-BLAST(Vertical-Bell Laboratory Layered Space- Time)是Foschini等[2]提出的一種垂直分層空時碼,它利用空間維度大大提高了傳輸速率,被廣泛地應用于MIMO系統(tǒng)中。其檢測算法也受到了國內(nèi)外研究學者的關(guān)注[3]-[5]。?FPGA具有開發(fā)周期短、設計靈活等優(yōu)點,將V-BLAST檢測算法在FPGA中實現(xiàn)驗證,成為未來移動通信實驗系統(tǒng)采用的一種方式。
1 系統(tǒng)模型
??? 圖1給出了V-BLAST OFDM系統(tǒng)的原理框圖(M、N分別表示發(fā)送和接收天線數(shù),N≥M),包括信道編碼、交織、調(diào)制、IFFT、FFT、信道估計、V-BLAST檢測、解調(diào)、解交織、信道解碼等功能模塊。

?


??? 假設向量a(k)=(a1(k),a2(k),…,aM(k))T表示OFDM符號第k個子載波的M維向量(k=0,1,…,N-1),則相應的N維接收信號向量可表示為:
???

其中,H(k)=(hij(k))N×M為第k個子載波上的N×M維的復信道矩陣,其中hij(k)代表第j個發(fā)送天線到第i個接收天線間的信道轉(zhuǎn)移特性;n(k)=(n1(k),n2(k),…,nN(k))T為第k個子載波上的N維加性復高斯噪聲向量,其均值為零。

??? V-BLAST檢測算法是在接收端對接收信號進行處理以恢復發(fā)送信號。對應以上的系統(tǒng)模型,檢測模塊接收信道估計模塊輸出的信道信息H和用戶信息r,根據(jù)公式(1)檢測出發(fā)送信號a。
??? V-BLAST OFDM系統(tǒng)在每一個子載波上,都是一個窄帶的V-BLAST系統(tǒng),因此在每個子載波上可以應用標準的V-BLAST檢測算法獨立進行信號檢測。
2 算法分析
??? 算法所涉及的各符號含義如下:
??? Hj代表H的第j列;Bk=(HM、HM-1,…,HM-k+1)代表H的后k列的逆序排列;

??? 代表將H的第k1,k2,…,ki列置零后得到的矩陣;行,即對應第i根發(fā)射天線的迫零向量;
??? H′代表H經(jīng)過重新排列后得到的矩陣;(·)T表示矩陣的轉(zhuǎn)置;(·)H表示矩陣的共扼轉(zhuǎn)置;(·)+表示矩陣的Moore-Penrose偽逆;Q=(·)表示判決操作;

??? 表示對矩陣(矩陣的列數(shù)為total_num)的列向量按列向量的范數(shù)降序排列,其中表示返回的排列結(jié)果;

??? 給定的順序進行排列。

2.1 算法描述
??? 根據(jù)運算復雜度和性能的綜合考慮,本文所設計實現(xiàn)的V-BLAST檢測算法為文獻[5]提出的基于Greville遞歸求偽逆和分層空時相結(jié)合的次優(yōu)算法。算法首先對最強的信號解碼,然后在接收到的信號中減去這個最強的信號,再對剩余信號中的最強信號解碼,再減去這個信號,這樣依次進行,直到所有的信號都被譯出。具體步驟如下:

???

???

2.2 算法的實現(xiàn)分析
??? 算法的實現(xiàn)主要包含以下三個方面:
??? (1)排序:通過乘加運算得到矩陣的列范數(shù),然后根據(jù)列范數(shù)的大小進行排序得到矩陣H′。由于列范數(shù)需要與檢測算法恢復的發(fā)送信息y同時輸出給V-BLAST檢測之后的軟解調(diào)模塊,因此排序過程中求得的列范數(shù)需要存儲一定的時間。
??? (2)獲取迫零向量:獲取迫零向量是一個循環(huán)迭代的過程,且每次循環(huán)都具有不同的維數(shù)。由于最后一次循環(huán)求出的迫零向量需要最先給譯碼運算,因而為了配合時序,需要存儲先計算出的迫零向量。當k等于M時,不需要計算。

??? (3)譯碼:譯碼過程需將計算出的M個y信號轉(zhuǎn)換成排序之前的順序,然后和列范數(shù)一同輸出給系統(tǒng)的軟解調(diào)模塊。當k等于M時,

??? 表1給出了算法在實現(xiàn)中的復雜度。

?

?

3 算法的實現(xiàn)設計
??? 根據(jù)算法的特點,將實現(xiàn)設計分為5個功能模塊:輸入模塊、輸出模塊、頂層控制模塊" title="控制模塊">控制模塊、排序迫零模塊和譯碼模塊。由于算法較為復雜,運算較多,為達到速度的要求,在設計中采用流水線操作進行并行處理,將各功能模塊再分為若干子功能模塊,具體的功能模塊框圖如圖2所示。

?


3.1 輸入輸出模塊
??? 輸入輸出模塊是與系統(tǒng)其他功能模塊的接口。輸入模塊接收信道估計給出的信道矩陣H和用戶信息r,送入FIFO進行緩存。當接收一定數(shù)據(jù)量后,向頂層控制模塊發(fā)出指示信號flag_start,等待FIFO的讀使能信號。輸出模塊接收排序迫零模塊輸出的M個列范數(shù)和譯碼模塊輸出的M個y信號,對齊時序后輸出給系統(tǒng)中的軟解調(diào)模塊。
3.2 排序迫零模塊和譯碼模塊
??? 排序迫零模塊和譯碼模塊均包含若干子模塊,分別完成公式(1)~公式(11)和公式(12)~公式(17)的運算。各子模塊間的數(shù)據(jù)傳遞較多,將每個子模塊設計成一個流水單元以便時序的控制與調(diào)整。圖3為排序迫零模塊中流水線操作的示意圖。

?


??? 系統(tǒng)一幀發(fā)送符號數(shù)據(jù)的數(shù)量及一個H矩陣對應的用戶信息量r是根據(jù)系統(tǒng)幀結(jié)構(gòu)設計的不同而不同。設H與r的數(shù)量對應關(guān)系為1: n,則譯碼模塊的處理速度應為排序迫零模塊的n倍,從而使得譯碼模塊成為整個算法實現(xiàn)的瓶頸。為了達到處理速度的要求,排序迫零模塊和譯碼模塊分別采用不同長度的流水線單元和時鐘頻率,并根據(jù)流水線長度選擇不同大小的計數(shù)器,用以標記流水線單元。
??? 排序迫零模塊和譯碼模塊是檢測算法的核心,集中了大量的運算。其中除法運算采用查表的方式可以提高運算速度,對加法器和乘法器" title="乘法器">乘法器的復用可以減少資源的利用。
3.3 頂層控制模塊
??? 檢測算法較復雜,設計頂層控制模塊便于控制各模塊間的時序關(guān)系。輸入模塊發(fā)出指示信號flag_start后,頂層控制模塊立即發(fā)出en_rd_h使能信號讀取FIFO中的信道矩陣H,每次連續(xù)讀取N×M個時鐘周期,同時向排序迫零模塊發(fā)出start_h信號,用以觸發(fā)該模塊的流水線操作。直到排序迫零模塊輸出第一組M個迫零向量后,頂層控制模塊發(fā)出en_rd_r使能信號讀取FIFO中的用戶信息r,每次連續(xù)讀取N個時鐘周期,同時向譯碼模塊發(fā)送start_r信號,用以觸發(fā)此模塊的流水線操作。譯碼模塊將一組M個y信號檢測完畢后,控制模塊發(fā)出指示信號flag_out,通知輸出模塊一并輸出列范數(shù)和檢測信號y。圖4為各控制信號的關(guān)系圖。

?


4 仿真與驗證
??? 算法的實現(xiàn)首先要考慮每步數(shù)據(jù)定點運算" title="定點運算">定點運算的Q值(即小數(shù)位和整數(shù)位的位寬)。COSSAP平臺上仿真了算法定點運算的性能,根據(jù)仿真結(jié)果確定算法實現(xiàn)各部分運算的Q值。圖5給出了定點和浮點仿真的性能對比圖。仿真結(jié)果表明,定點運算帶來的性能損失很小。

?


??? 基于以上部分提出實現(xiàn)設計方案。本文應用軟件設計平臺ISE 6.3,仿真工具ModelSim 6.0,采用Xilinx公司的Virtex-II Pro系列的XC2VP70 FPGA芯片實現(xiàn)了4發(fā)4收的V-BLAST檢測算法。該系列的FPGA包含Block SelectRAM,18bit×18bit硬件乘法器等定制模塊,對這些模塊的利用可以減少片內(nèi)邏輯資源的占用。
??? RTL級的仿真波形如圖6。從左往右,第一、二個光標分別指示了排序迫零模塊和譯碼模塊的流水起始時間,第三個主光標指示了算法輸出信號的起始時間。FPGA實現(xiàn)占用了10 136個slices,2個全局時鐘,56個18bit×18bit硬件乘法器,39個Block SelectRAM。

?


??? 該FPGA實現(xiàn)在B3G TDD MIMO OFDM系統(tǒng)中的驗證,使該系統(tǒng)的峰值速率達到了122Mb/s,頻譜利用率7.1(b/s)/Hz,具有較好的誤碼性能。
??? 本文給出了基于Greville求偽逆方法的V-BLAST檢測算法在FPGA中實現(xiàn)的設計方案,主要考慮了流水線操作和并行度處理。該方案對其他MIMO檢測算法的FPGA實現(xiàn)具有一定的參考作用。對算法實現(xiàn)的各步定點運算的Q值進行了仿真確認。FPGA實現(xiàn)最后在B3G TDD MIMO OFDM系統(tǒng)硬件平臺上進行驗證,性能良好。
參考文獻
[1] FOSCHINI G J,GANS M J.On limits of wireless communications in a fading environment using multiple antennas.Wireless Personal Communications,1998,6(3):311-335.
[2] WOLNIANSKY P W,F(xiàn)OSCHINI G J,GOLDEN G D,et al.V-BLAST:An architecture for realizing very high data?rates over the rich-scattering wireless channel.Proc.ISSSE98,Pisa,Italy,1998,9.
[3] GOLDEN G D,F(xiàn)OSCHINI G J,VALENZUELA R A,et al.Detection algorithm and initial laboratory results using VBLAST space-time communication architecture.Electronics?Letters,1999,35(7):14-16.
[4] LI Dong,CAI Li Yu,YANG Hong Wei.New iterative detection algorithm for V-BLAST,in Proc.VTC2004,Milan,Italy,2004,4(5):2444-2448.
[5] 陶小峰,俞追專,秦海燕,等.V-BLAST的次優(yōu)譯碼[J].電子學報,2003,31(5):703-706.
[6] 李亞卓,王勇,張平.B3G/4G TDD試驗平臺框架及研究現(xiàn)狀[J].移動通信,2006,(10):41-45.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。