摘 要: 研究了MIMO-GMC" title="MIMO-GMC">MIMO-GMC系統中高效信道估計" title="信道估計">信道估計及其FPGA實現技術。通過大量研究和設計,得到一種既能保證性能和速度,又適合硬件實現的信道估計算法。采用Xilinx公司的FPGA芯片Vertex-II Pro 100和適量的并行流水方案,設計出高速可行的MIMO信道估計器,單片實現3個載波的信道估計。經海量測試,驗證了硬件的正確性和魯棒性。
關鍵詞: MIMO-GMC DCT變換? 單點" title="單點">單點濾波? FPGA
?
為適應未來發展的需要,提高系統的頻譜利用率,在后三代(B3G)或稱第四代(4G)移動通信的MIMO-GMC系統中,采用了多天線發送和多天線接收的空中接口機制。為了可靠有效地支持高速傳輸,MIMO-GMC系統仍需要很高的帶寬。寬帶傳輸加重了頻率選擇性衰落,造成嚴重的多徑干擾;而終端的高速移動性導致的多普勒頻移,加重了時間選擇性衰落。因而,在這種雙選擇性衰落的信道條件下,迫切需要采用一種高速率、高性能的信道估計技術。
為了實現相干接收,需要估計信道的沖激響應系數和噪聲方差。為了能夠及時準確地估計出信道參數,設計了一種基于循環正交碼的雙循環時隙" title="時隙">時隙結構,采用循環正交序列不同相位的循環移位序列作為不同發送天線的導頻" title="導頻">導頻序列。在接收端,利用循環正交序列的特性,以低實現復雜度獲得最小二乘(LS)意義上最優的信道估計,利用時域相關性獲得導頻段更為精確的最小均方誤差(MMSE)意義上最優的信道估計,進一步采用插值可獲得數據段信道參數的估計。
1 信道估計原理[1]
發送信號的時隙結構如圖1所示。定義一個時隙有K個子時隙,每個子時隙都由保護段(G)、導頻段(P)和數據段(D)組成,在每個時隙的最后一個子時隙后追加一個保護段和一個導頻段來構成該時隙。
在MIMO_GMC系統中,發送天線個數為NT,接收天線的個數為NR。假設信道沖激響應序列的長度為P,即假設有P徑,則每個接收通道待估計的信道參數個數為NTP,相應的導頻序列長度應該滿足LP≥NTP。
信道估計原理如圖2所示。首先用接收的導頻段數據與存儲原始發送導頻的共軛進行矩陣乘法運算,得到LS意義上的信道沖激響應系數。將得到的LS信道系數送到噪聲方差估計模塊進行能量統計,并結合接收導頻數據的能量統計值得到噪聲方差的估計;同時將每個時隙的LS信道參數變換到DCT域進行單點濾波。最后在IDCT變換的同時進行插值,得到數據段的MMSE信道沖激響應輸出。
2 信道估計的FPGA實現
在B3G的MIMO-GMC系統上行鏈路中采用4發8收的空中接口方案,接收符號速率為每載波1.28MHz,總共有12個載波傳送數據,系統傳輸能力達到100Mbps。對于時隙結構,每個時隙包含5個導頻段,導頻長度32,保護段長度8,數據段長度216。采用高速可靠的信道估計器實現,假設總共有6徑,使用92.16MHz的工作時鐘來實現,則一個時隙總共有77 184個時鐘周期。
在MIMO-GMC硬件實現中,接收機總共使用了4塊如圖3所示結構的信號處理(SP)板,M1同時接收來自兩塊Rx-AMS(接收預處理)板各4根天線3個載波的同步接收信號。按照載波將8根天線的接收信號分配到3個相同的信道估計和空時合并模塊進行處理;3個載波的合并結果通過接口輸出到M2~M4分別進行迭代檢測譯碼;最后將譯碼結果匯聚到M2板輸出到數據交換板。其中M1~M4均采用Xilinx公司Vertex II Pro 100芯片[2]。
信道估計部分按照功能主要劃分為三大模塊,分別是最小二乘信道估計模塊(LS)、噪聲方差估計模塊(Var)和DCT域插值濾波模塊(DCTFilter),如圖4所示,其中DCTFilter模塊包含DCT變換、單點濾波和IDCT插值變換。圖中Source模塊接收分別來自兩塊AMS板的同步數據,將其合并,并按照載波分配到三個相同的信道估計模塊進行處理。
2.1 Source模塊FPGA實現
Source模塊主要由兩塊18KB雙端口BlockRAM組成,如圖5所示。將兩塊RAM當作FIFO使用,兩個端口分別為輸入和輸出,分別接收存儲來自兩塊Rx_AMS板各4根天線的同步數據。兩塊RAM每存滿1個符號(3個載波各4根天線共12個復數數據),就將3個載波的數據按照8根天線的順序分別輸出到3個寄存器,同步輸出給3個信道估計模塊。
這里考慮到來自兩塊Rx_AMS板的數據不可能完全同步到達,而且存在數據到達先后的問題,所以采用兩塊FIFO來實現。這樣兩路數據同一符號之間的輸入時差即使達到3 000個時鐘周期,亦能正常工作,大大增強了系統魯棒性。
?
2.2 LS模塊FPGA實現
LS模塊結構框圖如圖6所示,將存儲的發送導頻的共軛與接收到的導頻信號進行矩陣乘法運算,得到信道沖擊響應系數輸出。
由于本地共軛導頻是由原導頻循環右移產生各發送天線的導頻段,所以這里只要存儲第一個原始導頻的32個數據。在讀取時只要對讀取地址加適當的偏移地址就可以讀到發送到相應天線的導頻數據。這里采用分布式RAM來存儲,將初值直接置入,設置為只讀模式。
對于接收導頻存儲RAM,由于一個導頻段有256個數據,為了保證接收存儲和輸出運算不沖突,這里采用深度為512B的雙端口RAM構造乒乓結構,用最高位地址線進行兩塊存儲區的區分,RAM兩端口,一個只寫另一個只讀。
雖然這里的接收存儲RAM采用了乒乓結構來實現,但每個時隙最后一個導頻段與下一時隙第一個導頻段是連續輸入的,而該時隙的后續估計工作需要在下一時隙第一個導頻段開始LS估計前完成,否則后續的估計模塊均需要乒乓結構才能保證兩個時隙的估計不沖突,這樣將耗費大量資源。為了解決這一沖突,首先設置了一個LS估計開始信號(Start LS)來控制每個導頻段LS估計開始的時間,對于每個時隙的第一個導頻段,總等到前一個時隙信道估計完全結束以后才能開始,以保證其輸出對前一個時隙的估計不產生影響;對于其余導頻段,接收完成即開始LS估計,以盡量減少輸出時延。但僅僅進行以上措施依然不能解決沖突問題,所以還需要對各個估計模塊進行并行處理,以保證工作速率,從而保證前一個時隙的信道估計完全輸出以后,依然有足夠的時間處理下一個時隙的接收導頻,使得RAM中的數據在處理完成之前不被后續到來的導頻數據刷新,即在下一個時隙的第一個子時隙內必須完成當前時隙的信道估計的全部工作。
從圖6可以看出,這里采用了兩路復數乘法累加器來實現LS估計以提高速度。但這里對RAM的讀寫提出了特殊要求,兩塊RAM需要同時輸出兩個不同的信號。考慮到對于不同的接收天線,其發送導頻順序是一樣的,這樣如果當前處理的僅僅是不同接收天線同一位置同一徑的數據,即所需讀取的本地導頻也一樣,則本地導頻輸出僅需一個。對于接收導頻存儲RAM,利用雙端口RAM的特性[2],將輸出端口寬度設置為輸入端口寬度的兩倍,將接收導頻的存儲地址的低地址設置為接收天線,這樣每次輸出均能同時輸出相鄰兩根接收天線的導頻數據,保證了并行處理的數據源,最終將兩路并行輸出數據并串轉換,串行輸出。由于導頻長度為32,所以兩路數據每32個時鐘分別輸出1個信道參數。這樣兩路串行以后每32個時鐘周期連續輸出2個信道參數。
2.3 Var模塊FPGA實現
Var模塊結構框圖如圖7所示。該模塊同時接收系統輸入的導頻信號和LS模塊輸出的信道參數,將其分別進行能量累加,通過一個FIFO同步輸出到噪聲方差計算模塊,得到當前時隙的噪聲方差,與存儲的前一時隙的噪聲方差進行平滑處理得到當前噪聲方差輸出。
?
2.4 DCTFilter模塊FPGA實現
DCTFilter模塊結構框圖如圖8所示。該模塊接收初次信道估計參數對其進行DCT變換,存儲結果的同時對其按照塊和徑進行信道增益矩陣統計。一個時隙的信道參數全部輸入完成以后,對得到的信道增益矩陣與存儲的前一時隙的信道增益矩陣進行平滑處理得到當前時隙的信道增益矩陣,計算出單點濾波矩陣,接著用其對信道參數進行單點濾波,最后做IDCT插值變換輸出,得到MMSE信道參數輸出。
從圖8可以看出,這里僅用一塊RAM存儲一個17×5的IDCT陣,而沒有存儲DCT陣,這是由于5×5的DCT矩陣是IDCT矩陣模4余1行全部元素的轉秩。
DCT子模塊接收來自LS模塊的信道參數,按照公式:

計算出DCT域的信道參數,其中
5x192代表輸入的信道參數,其5行分別代表5個導頻段的信道參數,是按照時間順序輸入的。如果按照通常設計方案,需要存儲輸入的信道參數,等到一個時隙的數據完全存儲以后才開始DCT變換,并用另外一個存儲單元來存儲DCT域的信道參數。但這樣的設計有兩個缺點:(1)需要大量的存儲空間來存儲信道參數,存儲壓力很大;(2)大量時間系統處于等待狀態,對于時延要求如此苛刻的系統,這更加重了后續模塊的處理壓力。這里將公式(1)變形為:

其中Ui是DCT陣的列,而
i對應的則是第i個導頻段信道參數。從變形以后的公式可以看出,輸入信道參數無需存儲,每輸入一個數據,與相應DCT系數相乘,與存儲的DCT信道參數累加再存儲,便可以得到DCT域的信道參數;另一方面,LS信道參數的輸入完成以后只需經過幾個時鐘周期,DCT域信道參數計算就可完成了,大大壓縮了系統延遲。
每計算出一個DCT域的信道參數以后,除了送到存儲單元以外還直接送到信道增益矩陣(PG)統計模塊,按照塊和徑進行統計。這里每得到一個DCT域信道參數便進行一次統計,所以對系統產生極少的系統延時。其輸出結果與存儲的上一個時隙的增益矩陣進行平滑,得到當前時隙的增益矩陣存儲;同時輸出到濾波矩陣計算模塊計算出濾波系數。
在所有濾波系數計算完成以后,就開始對DCT域的信道系數進行單點濾波,接著進行IDCT變換輸出。這里是個計算密集型單元,數據輸出速度完全受計算速度控制。乘法器并行程度越高,輸出時延越小,但同時消耗的資源也越多,這就需要找一個合適的折衷方案在滿足時延的需求下盡量減少資源開銷。對于單點濾波,每一個DCT域的信道參數均要進行單點濾波,即每讀取一個存儲的DCT域的信道參數都要進行一次乘法運算;對于IDCT變換,每輸出一個數據需要進行5次乘法運算,總共要輸出3 264個數據,即進行16 320次乘法。如果不復用則總共需要16 320個時鐘周期,而一個子時隙只有18 432個時鐘周期,加上其他模塊的處理延遲,就不能滿足系統時延要求了,因此,這里采用兩路并行處理。
在單點濾波和IDCT變換處理過程中涉及3個RAM的存取:濾波矩陣存儲RAM、DCT域信道參數存儲RAM和IDCT系數存儲RAM。這里采用與DCT變換類似的方法來解決從不同的RAM中同時讀取兩路數據的方法,這是因為對于相同發送天線、相同導頻段、相同徑的DCT域信道參數其濾波系數和IDCT系數都是相同的,這里不再重述。
3 信道估計器硬件測試
信道估計器的硬件測試主要由單模塊測試和系統測試兩部分組成。
模塊測試方案如圖9所示,利用DSP的linkport口與計算機之間的通信能力,對FPGA進行海量數據測試,通過大量測試保證硬件設計的魯棒性。
系統測試主要是將信道估計器放入MIMO-GMC系統中進行測試,保證系統正常運行,達到仿真預計的性能。
本文重點研究了MIMO-GMC系統中的信道估計的硬件實現,設計出一套適合硬件實現的MIMO信道估計算法,完成FPGA設計,并通過大量模塊測試和系統測試,包括大量的現場測試,支持12個載波100Mbps無誤碼的無線傳輸速率,得到了一個高速率、高魯棒、高性能的信道估計器。
參考文獻
[1] GAO Xi Qi, JIANG Bin, YOU Xiao Hu,et al. Efficient channel estimation for MIMO single-carrier block transmi-ssion with dual cyclic timeslot structure. Submitted to IEEE Trans. Commun.
[2] Virtex-II Pro Platform FPGA Handbook. UG012(v1.0).Xilinx January 31, 2002.
[3] YOU Xiao Hu,CHEN Guo An,CHEN Ming,et al.Toward beyond 3G:the FuTURE project of China[J].IEEE Comm-unications Magazine, 2005,43(1):70-75.
[4] GAO Xi Qi. MIMO-GMC Wireless Transmission Technique [R]. National 863 FuTURE Project Research Report,Southeast University, 2004.
[5] PETER H, FICDRIK T. Channel estimation with superim-posed pilot sequence. Advanced Signal Processing for Comm-unications. Global Telecommunications Conference-Globecom’99.
[6] 高西奇,尤肖虎,江彬等.面向后三代移動通信的MIMO-GMC無線傳輸技術. 電子學報,2004,(12A)









