藺吉順,劉東華
(內(nèi)蒙古民族大學機械工程學院,內(nèi)蒙古通遼028000)
多輸入多輸出(MIMO)技術(shù)相對于傳統(tǒng)的單天線系統(tǒng)來說,能夠大大提高系統(tǒng)容量和頻率利用率,能夠在有限的無線頻帶下傳輸更高速率的數(shù)據(jù),在現(xiàn)代無線移動通信系統(tǒng)中得到了廣泛應(yīng)用[1]。雖然MIMO的概念已經(jīng)提出有幾十年,但由于無線移動通信MIMO信道是時變非平穩(wěn)系統(tǒng),有大量問題需要研究。此外,由于MIMO系統(tǒng)的容量和信息傳輸速率與輸入輸出天線數(shù)密切相關(guān),但天線數(shù)越多,MIMO信道估計和接收機解碼就異常復雜,計算量大[2]。為實用化MIMO系統(tǒng),設(shè)計了一種針對發(fā)射機天線數(shù)為4、接收機天線數(shù)為6的4×6 MIMO信道解碼器并在Xilinx Vertix6系列FPGA芯片上進行了設(shè)計驗證。該系統(tǒng)與OFDM技術(shù)結(jié)合,可以用于實現(xiàn)信息速率為1.485 Gbit/s的HDI高清視頻的無損實時傳輸。
典型的MIMO系統(tǒng)如圖1所示,包含m根發(fā)射天線和n根接收天線。
根據(jù)無線信道的特點,每根接收天線都會收到所有發(fā)射天線的內(nèi)容,因此不同收發(fā)天線之間均構(gòu)成信道,且具有不同的表現(xiàn)形式。若定義發(fā)射機和接收機各天線信號組成的矢量分別為 X=[X1,X2,…,Xm]T和 Y=[Y1,Y2,…,Yn]T,則 MIMO 無線通信模型可以表示為
式中,H是大小為m×n為信道傳輸矩陣,矩陣元素hij,(i=1,2,…,m;j=1,2,…,n)表示第i根發(fā)射天線和第j根接收天線之間的信道沖激響應(yīng)。Z矩陣表示高斯噪聲。
圖1 MIMO系統(tǒng)
OFDM-MIMO系統(tǒng)中信道估計主要有基于分散導頻、正交導頻和分組導頻等方法,其中分散導頻廣泛應(yīng)用于快衰落和頻率選擇性衰落信道中[3]。采用分散導頻時,MIMO信道估計首先將接收到的導頻序列與發(fā)端導頻序列相乘,得到基于導頻的信道頻率響應(yīng)(CFR)序列,然后做反傅里葉變換(IFFT),得到信道脈沖響應(yīng)(CIR)序列;最后將CIR序列分成相等的m段,每段對應(yīng)一對收發(fā)天線的估計CIR,補零后再進行IFFT變換即得到所有天線信道響應(yīng)的估計[4]。
這里采用最小均方誤差算法(MMSE)準則進行OFDM-MIMO信道估計。MMSE估計在最小二乘估計(LS)的基礎(chǔ)上進行。最小二乘估計的代價函數(shù)為
MMSE估計的代價函數(shù)為
MMSE估計的信道估計值可以表示為
3.1.1 數(shù)據(jù)精度
本文給出的MIMO解碼器針對發(fā)射天線數(shù)為4、接收天線數(shù)為6的OFDM-MIMO系統(tǒng)設(shè)計,假設(shè)OFDM系統(tǒng)采用基于訓練序列的同步方式。由于MIMO處理過程中數(shù)據(jù)動態(tài)范圍較大,采用定點量化實現(xiàn)時會使系統(tǒng)性能嚴重降低,因此考慮采用全浮點設(shè)計,基本運算單元采用Xilinx提供的IP核實現(xiàn)。
3.1.2 數(shù)據(jù)緩存
另外,為保持系統(tǒng)的實時性和節(jié)省存儲資源,應(yīng)該在接收到訓練序列后盡可能在較短時間內(nèi)完成信道估計并計算出式(6)中的,這樣才能減少接收數(shù)據(jù)序列的存儲要求,如圖2所示。
圖2 MIMO解碼時間示意圖
MIMO信道估計和解碼針對每一幀數(shù)據(jù)進行,在接收到訓練序列后立即開始信道估計,在得到信道估計結(jié)果后才能針對每個接收數(shù)據(jù)序列計算。但是在信道估計和計算時,必須緩存數(shù)據(jù)序列,這是因為計算結(jié)果滯后于接收的第一個數(shù)據(jù)。為保證數(shù)據(jù)處理的順序性,必須采用先入先出的FIFO進行數(shù)據(jù)緩存。
3.1.3 矩陣求逆
在OFDM-MIMO系統(tǒng)中信道估計和MIMO解碼都涉及到矩陣求逆運算,由于信道都是浮點復數(shù)類型,因此基于初等變換的矩陣求逆的計算量很大,幾乎無法在FPGA上實現(xiàn)。因此這里針對4×6矩陣與其轉(zhuǎn)置相乘后得到的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信道矩陣與其轉(zhuǎn)置相乘后得到的矩陣為對稱矩陣,將式(6)的計算分解為如下4步:1)計算A=·;2)計算B=A*;3)計算|A|和 G=B/|A|;4)計算X=Y·G。其中G矩陣的結(jié)果需要存儲,用于在時間順序上計算X??傮w設(shè)計框圖如圖3所示。
圖3 MIMO解碼的FPGA總體結(jié)構(gòu)
輸入數(shù)據(jù)經(jīng)Xilinx FPGA高速串行端口GTX送入模塊,根據(jù)圖2,首先將訓練序列和數(shù)據(jù)序列分離(通過標記信號實現(xiàn)),其中數(shù)據(jù)序列送入FIFO緩存;訓練序列數(shù)據(jù)送入CSI模塊(這里不做討論)進行信道估計計算,得到的信道估計結(jié)果CH_est進入緩存,在信道估計完成后從RAM讀出數(shù)據(jù)并用定點(浮點轉(zhuǎn)換IP核轉(zhuǎn)換成浮點數(shù)據(jù)后送入 ACal、InvBCal和 GCal模塊完成上述 1)、2)、3)步運算后送入,同時從FIFO緩存中讀取對應(yīng)位置的輸入數(shù)據(jù)(經(jīng)過定點(浮點轉(zhuǎn)換),在DmmseCal模塊中完成步驟4)的計算;最后得到的結(jié)果經(jīng)過浮點(定點轉(zhuǎn)換后經(jīng)IO端口輸出。MMCM模塊為時鐘生成模塊,用于實現(xiàn)時鐘速率轉(zhuǎn)換[5]。設(shè)計過程中,充分考慮芯片計算資源、存儲資源和模塊處理速率的關(guān)系,設(shè)計了基于流水和復用的模塊實現(xiàn)機制。下面逐個說明各主要模塊的功能和關(guān)聯(lián)關(guān)系。
3.2.1 輸入接口
模塊的輸入接口采用Xilinx提供的高速串行接口GTX硬核實現(xiàn),Xilinx Vertix6 GTX可以達到最高6.6 Gbit/s的傳輸速率,滿足速率為1.485 Gbit/s GDI信號的傳輸要求。對于6路接收復信號,實部和虛部信號分別傳輸,故使用12個GTX模塊,輸入數(shù)據(jù)為LVDS形式,以保證信號的穩(wěn)定性。接口模塊的設(shè)計結(jié)構(gòu)如圖4所示。
圖4 GTX接口設(shè)計
Xilinx Vertix6 FPGA提供20個GTX模塊,每4個1組,共用1組時鐘,且相鄰組也可以共用1組時鐘,故選擇第9~20個GTX模塊實現(xiàn)。
3.2.2 計算模塊
根據(jù)上述分析可以看出,在 ACal、InvBCal、GCal和GmmseCal模塊中主要實現(xiàn)復數(shù)浮點乘法和加法。各模塊的設(shè)計結(jié)構(gòu)基本相同,這里以ACal計算模塊為例進行說明。ACal模塊用于計算A=·,設(shè)計結(jié)構(gòu)如圖5所示。
圖5 ACal模塊結(jié)構(gòu)
模塊輸入為4×6路信號,對于k時刻的信道估計矩陣,實部和虛部分別輸入,drdy為控制信號。為節(jié)省資源,對矩陣運算過程進行復用,對于有2 048個子載波的OFDM系統(tǒng),共調(diào)用8個浮點復數(shù)乘法器(每個由4個復數(shù)乘法器和2個復數(shù)加法器組成)進行矩陣元素乘法運算和16個復數(shù)加法器實現(xiàn)累加,復用12次,延時56個時鐘周期。得到結(jié)果矩陣的元素值,在輸出之前還要將結(jié)果解復用。仿真結(jié)果如圖6所示。
圖6 ACal計算模塊的仿真結(jié)果(截圖)
3.2.3 FIFO 緩存模塊
XilinxFPGA芯片提供FIFO緩存器,且緩存深度可設(shè)置。根據(jù)本設(shè)計的處理速率和信道估計與MIMO解碼所需處理延時,存儲的數(shù)據(jù)量較大。當FIFO深度較大時將嚴重影響系統(tǒng)處理速率,因此這里采用級聯(lián)FIFO緩存機制,采用4級深度為16 384、位寬為32 bit的FIFO實現(xiàn)。組成結(jié)構(gòu)如圖7所示。
圖7 FIFO級聯(lián)設(shè)計結(jié)構(gòu)
其中FIFO1~FIFO4由Xilinx LogiCORETM IP核生成,讀寫控制邏輯獨立實現(xiàn),數(shù)據(jù)循環(huán)寫入和讀出,不使用FIFO的空滿信號控制,從而保證FIFO控制的靈活性。
圖8給出了在Xilinx Veritex6系列FPGA芯片Xc6vsx315tff1156-1上實現(xiàn)MIMO解碼時占用的資源統(tǒng)計結(jié)果及可達到的處理速率,由PlanAhead仿真給出,與在芯片上實現(xiàn)的結(jié)果一致。
圖8 MIMO譯碼的總資源和速率仿真結(jié)果(截圖)
該MIMO解碼器應(yīng)用于某OFDM-MIMO寬帶無線傳輸系統(tǒng)中,實現(xiàn)了速率為1.485 Gbit/s的HDI高清視頻的無壓縮傳輸。具體參數(shù)設(shè)置為:OFDM子載波數(shù)為2 048,數(shù)據(jù)載波數(shù)為1 740,導頻數(shù)為12,64QAM 調(diào)制,(710,620)RS糾錯碼,4路信號并行發(fā)送,每路數(shù)據(jù)速率為120 MHz,信息傳輸速率為1.5 Gbit/s。在步行移動速度條件下,數(shù)據(jù)準確傳輸距離達到了100m以上。
MIMO作為一種在現(xiàn)代無線移動通信系統(tǒng)中最有應(yīng)用前景的技術(shù)得到了廣泛重視和研究。本文針對高速率視頻無線傳輸?shù)囊?,在研究MIMO解碼原理的基礎(chǔ)上,綜合考慮硬件實現(xiàn)的數(shù)據(jù)處理速率、系統(tǒng)性能和資源使用的平衡,設(shè)計了全浮點化的4×6 MIMO解碼器,并在Xilinx公司的Xc6vsx315tff1156-1 FPGA芯片上實現(xiàn)驗證,達到了120 Mbit/s以上的處理速度,有很好的參考意義和工程應(yīng)用價值。
[1]羅濤,樂光新.多天線無線通信原理與應(yīng)用[M].北京:北京郵電大學出版社,2006.
[2] NEE L,PRASAD R.OFDM for multimedia wireless communications[M].Boston,MA:Artech House,2000.
[3]李夏.MIMO-OFDM試驗系統(tǒng)同步算法VLSI實現(xiàn)技術(shù)研究[D].成都:電子科技大學,2010.
[4]孫亮,郭金京,王亞峰,等.一種新的基于參數(shù)信道模型的MIMO信道估計算法[J].電子與信息學報,2007(5):1145-1149.
[5]武鋼.多入多出無線通信中的信道模型、空時編碼及關(guān)鍵技術(shù)研究[D].成都:電子科技大學,2004.