藺吉順,劉東華
(內蒙古民族大學機械工程學院,內蒙古通遼028000)
多輸入多輸出(MIMO)技術相對于傳統的單天線系統來說,能夠大大提高系統容量和頻率利用率,能夠在有限的無線頻帶下傳輸更高速率的數據,在現代無線移動通信系統中得到了廣泛應用[1]。雖然MIMO的概念已經提出有幾十年,但由于無線移動通信MIMO信道是時變非平穩系統,有大量問題需要研究。此外,由于MIMO系統的容量和信息傳輸速率與輸入輸出天線數密切相關,但天線數越多,MIMO信道估計和接收機解碼就異常復雜,計算量大[2]。為實用化MIMO系統,設計了一種針對發射機天線數為4、接收機天線數為6的4×6 MIMO信道解碼器并在Xilinx Vertix6系列FPGA芯片上進行了設計驗證。該系統與OFDM技術結合,可以用于實現信息速率為1.485 Gbit/s的HDI高清視頻的無損實時傳輸。
典型的MIMO系統如圖1所示,包含m根發射天線和n根接收天線。
根據無線信道的特點,每根接收天線都會收到所有發射天線的內容,因此不同收發天線之間均構成信道,且具有不同的表現形式。若定義發射機和接收機各天線信號組成的矢量分別為 X=[X1,X2,…,Xm]T和 Y=[Y1,Y2,…,Yn]T,則 MIMO 無線通信模型可以表示為

式中,H是大小為m×n為信道傳輸矩陣,矩陣元素hij,(i=1,2,…,m;j=1,2,…,n)表示第i根發射天線和第j根接收天線之間的信道沖激響應。Z矩陣表示高斯噪聲。

圖1 MIMO系統
OFDM-MIMO系統中信道估計主要有基于分散導頻、正交導頻和分組導頻等方法,其中分散導頻廣泛應用于快衰落和頻率選擇性衰落信道中[3]。采用分散導頻時,MIMO信道估計首先將接收到的導頻序列與發端導頻序列相乘,得到基于導頻的信道頻率響應(CFR)序列,然后做反傅里葉變換(IFFT),得到信道脈沖響應(CIR)序列;最后將CIR序列分成相等的m段,每段對應一對收發天線的估計CIR,補零后再進行IFFT變換即得到所有天線信道響應的估計[4]。
這里采用最小均方誤差算法(MMSE)準則進行OFDM-MIMO信道估計。MMSE估計在最小二乘估計(LS)的基礎上進行。最小二乘估計的代價函數為


MMSE估計的代價函數為

MMSE估計的信道估計值可以表示為


3.1.1 數據精度
本文給出的MIMO解碼器針對發射天線數為4、接收天線數為6的OFDM-MIMO系統設計,假設OFDM系統采用基于訓練序列的同步方式。由于MIMO處理過程中數據動態范圍較大,采用定點量化實現時會使系統性能嚴重降低,因此考慮采用全浮點設計,基本運算單元采用Xilinx提供的IP核實現。
3.1.2 數據緩存
另外,為保持系統的實時性和節省存儲資源,應該在接收到訓練序列后盡可能在較短時間內完成信道估計并計算出式(6)中的,這樣才能減少接收數據序列的存儲要求,如圖2所示。

圖2 MIMO解碼時間示意圖
MIMO信道估計和解碼針對每一幀數據進行,在接收到訓練序列后立即開始信道估計,在得到信道估計結果后才能針對每個接收數據序列計算。但是在信道估計和計算時,必須緩存數據序列,這是因為計算結果滯后于接收的第一個數據。為保證數據處理的順序性,必須采用先入先出的FIFO進行數據緩存。
3.1.3 矩陣求逆
在OFDM-MIMO系統中信道估計和MIMO解碼都涉及到矩陣求逆運算,由于信道都是浮點復數類型,因此基于初等變換的矩陣求逆的計算量很大,幾乎無法在FPGA上實現。因此這里針對4×6矩陣與其轉置相乘后得到的4 ×4 矩陣 A=[aij](i,j=1,2,3,4)的求逆采用如下算法分3 步計算其伴隨矩陣 B=[bij](i,j=1,2,3,4)和行列式的值。
第一步,計算中間變量ci(i=1,2,…,24)
c1=a33×a44-a34×a43;c2=a11×a22-a21×a12;
c3=a23×a34-a24×a33;c4=a11×a42-a41×a12;
c5=a13×a44-a14×a43;c6=a21×a32-a31×a22;
c7=a23×a44-a24×a43;c8=a31×a12-a11×a32;
c9=a13×a24-a14×a23;c10=a31×a42-a41×a32;
c11=a13×a34-a14×a33;c12=a41×a22-a42×a42;
c13=a32×a44-a34×a42;c14=a22×a44-a24×a42;
c15=a22×a34-a24×a32;c16=a12×a44-a14×a42;
c17=a12×a34-a14×a32;c18=a12×a24-a14×a22;
c19=a32×a43-a33×a42;c20=a22×a33-a23×a32;
c21=a12×a43-a13×a42;c22=a12×a33-a13×a32;
c23=a22×a43-a23×a42;c24=a12×a23-a13×a22。
第二步,利用aij(i,j=1,2,3,4)和ci(i=1,2,…,24)計算矩陣A的伴隨矩陣
b11=a22×c1-a32×c7+a42×c3;
b12=a32×c5-a12×c1-a42×c11;
b13=a12×c7-a22×c5+a42×c9;
b14=a22×c11-a12×c3-a32×c9;
b21=a31×c7-a21×c1-a41×c3;
b22=a11×c1-a31×c5+a41×c11;
b23=a21×c5-a11×c7-a41×c9;
b24=a11×c4-a21×c11+a31×c9;
b31=a21×c13-a31×c14+a41×c15;
b32=a31×c16-a11×c13-a41×c17;
b33=a11×c14-a21×c16+a41×c18;
b34=a21×c17-a11×c15-a31×c18;
b41=a31×c15-a21×c19-a41×c20;
b42=a11×c19-a31×c21-a41×c22;
b43=a21×c21-a11×c23-a41×c24;
b44=a11×c20-a21×c22+a31×c24。
第三步,利用ci(i=1,2,…,24)計算行列式的值
|A|=c1×c2+c3×c4+c5×c6+c7×c8+c9×c10+c11×c12。
在得到伴隨矩陣后除以行列式的值即得到逆矩陣。
考慮到4×6信道矩陣與其轉置相乘后得到的矩陣為對稱矩陣,將式(6)的計算分解為如下4步:1)計算A=·;2)計算B=A*;3)計算|A|和 G=B/|A|;4)計算X=Y·G。其中G矩陣的結果需要存儲,用于在時間順序上計算X。總體設計框圖如圖3所示。

圖3 MIMO解碼的FPGA總體結構
輸入數據經Xilinx FPGA高速串行端口GTX送入模塊,根據圖2,首先將訓練序列和數據序列分離(通過標記信號實現),其中數據序列送入FIFO緩存;訓練序列數據送入CSI模塊(這里不做討論)進行信道估計計算,得到的信道估計結果CH_est進入緩存,在信道估計完成后從RAM讀出數據并用定點(浮點轉換IP核轉換成浮點數據后送入 ACal、InvBCal和 GCal模塊完成上述 1)、2)、3)步運算后送入,同時從FIFO緩存中讀取對應位置的輸入數據(經過定點(浮點轉換),在DmmseCal模塊中完成步驟4)的計算;最后得到的結果經過浮點(定點轉換后經IO端口輸出。MMCM模塊為時鐘生成模塊,用于實現時鐘速率轉換[5]。設計過程中,充分考慮芯片計算資源、存儲資源和模塊處理速率的關系,設計了基于流水和復用的模塊實現機制。下面逐個說明各主要模塊的功能和關聯關系。
3.2.1 輸入接口
模塊的輸入接口采用Xilinx提供的高速串行接口GTX硬核實現,Xilinx Vertix6 GTX可以達到最高6.6 Gbit/s的傳輸速率,滿足速率為1.485 Gbit/s GDI信號的傳輸要求。對于6路接收復信號,實部和虛部信號分別傳輸,故使用12個GTX模塊,輸入數據為LVDS形式,以保證信號的穩定性。接口模塊的設計結構如圖4所示。

圖4 GTX接口設計
Xilinx Vertix6 FPGA提供20個GTX模塊,每4個1組,共用1組時鐘,且相鄰組也可以共用1組時鐘,故選擇第9~20個GTX模塊實現。
3.2.2 計算模塊
根據上述分析可以看出,在 ACal、InvBCal、GCal和GmmseCal模塊中主要實現復數浮點乘法和加法。各模塊的設計結構基本相同,這里以ACal計算模塊為例進行說明。ACal模塊用于計算A=·,設計結構如圖5所示。

圖5 ACal模塊結構
模塊輸入為4×6路信號,對于k時刻的信道估計矩陣,實部和虛部分別輸入,drdy為控制信號。為節省資源,對矩陣運算過程進行復用,對于有2 048個子載波的OFDM系統,共調用8個浮點復數乘法器(每個由4個復數乘法器和2個復數加法器組成)進行矩陣元素乘法運算和16個復數加法器實現累加,復用12次,延時56個時鐘周期。得到結果矩陣的元素值,在輸出之前還要將結果解復用。仿真結果如圖6所示。

圖6 ACal計算模塊的仿真結果(截圖)
3.2.3 FIFO 緩存模塊
XilinxFPGA芯片提供FIFO緩存器,且緩存深度可設置。根據本設計的處理速率和信道估計與MIMO解碼所需處理延時,存儲的數據量較大。當FIFO深度較大時將嚴重影響系統處理速率,因此這里采用級聯FIFO緩存機制,采用4級深度為16 384、位寬為32 bit的FIFO實現。組成結構如圖7所示。

圖7 FIFO級聯設計結構
其中FIFO1~FIFO4由Xilinx LogiCORETM IP核生成,讀寫控制邏輯獨立實現,數據循環寫入和讀出,不使用FIFO的空滿信號控制,從而保證FIFO控制的靈活性。
圖8給出了在Xilinx Veritex6系列FPGA芯片Xc6vsx315tff1156-1上實現MIMO解碼時占用的資源統計結果及可達到的處理速率,由PlanAhead仿真給出,與在芯片上實現的結果一致。

圖8 MIMO譯碼的總資源和速率仿真結果(截圖)
該MIMO解碼器應用于某OFDM-MIMO寬帶無線傳輸系統中,實現了速率為1.485 Gbit/s的HDI高清視頻的無壓縮傳輸。具體參數設置為:OFDM子載波數為2 048,數據載波數為1 740,導頻數為12,64QAM 調制,(710,620)RS糾錯碼,4路信號并行發送,每路數據速率為120 MHz,信息傳輸速率為1.5 Gbit/s。在步行移動速度條件下,數據準確傳輸距離達到了100m以上。
MIMO作為一種在現代無線移動通信系統中最有應用前景的技術得到了廣泛重視和研究。本文針對高速率視頻無線傳輸的要求,在研究MIMO解碼原理的基礎上,綜合考慮硬件實現的數據處理速率、系統性能和資源使用的平衡,設計了全浮點化的4×6 MIMO解碼器,并在Xilinx公司的Xc6vsx315tff1156-1 FPGA芯片上實現驗證,達到了120 Mbit/s以上的處理速度,有很好的參考意義和工程應用價值。
[1]羅濤,樂光新.多天線無線通信原理與應用[M].北京:北京郵電大學出版社,2006.
[2] NEE L,PRASAD R.OFDM for multimedia wireless communications[M].Boston,MA:Artech House,2000.
[3]李夏.MIMO-OFDM試驗系統同步算法VLSI實現技術研究[D].成都:電子科技大學,2010.
[4]孫亮,郭金京,王亞峰,等.一種新的基于參數信道模型的MIMO信道估計算法[J].電子與信息學報,2007(5):1145-1149.
[5]武鋼.多入多出無線通信中的信道模型、空時編碼及關鍵技術研究[D].成都:電子科技大學,2004.