牛 堃,陳恩慶,楊守義
(鄭州大學 信息工程學院,河南 鄭州 450001)
近年來,隨著DSP和FPGA技術的發展,OFDM技術廣泛應用于數字音頻廣播(DAB)、非對稱數字用戶環線 (ADSL)以及基于IEEE802.11a標準的無線局域網 (WLAN)等領域。相對于傳統單載波傳輸系統,OFDM系統對載波頻偏和定時誤差的敏感程度很高,如果同步未能達到一定的要求,將造成系統性能的急劇下降[1-2]。通常的符號同步算法在硬件實現時,往往需要占用較多資源,對芯片性能要求較高。
筆者介紹了一種采用短訓練符號的符號定時方法,并進行了硬件結構的設計與簡化,在一定信噪比條件下達到了同步性能與資源占用之間的平衡,最后在FPGA中進行了仿真與驗證。
IEEE802.11a標準[3]規定了物理層數據單元(PPDU)的幀結構,也就是基帶調制處理器所要生成的數據結構,如圖1所示。

幀頭部分包括訓練符號和SIGNAL符號。訓練符號包括10個周期重復的短訓練序列(STS)t1~t10和 2個周期重復的長訓練序列(LTS)T1~T2,STS 的符號間隔為正常OFDM符號間隔的1/4,LTS的符號間隔與正常OFDM符號相同。SIGNAL符號中包含后續數據的調制類型、編碼數據和數據長度等接收機需要的信息。
本文的符號同步算法是基于IEEE802.11a標準的短訓練符號來實現的,首先接收機在空閑時要不斷檢測接收信號的能量,以判斷是否有數據幀到達,如果到達,開始進行接收信號與短訓練符號的互相關運算,尋找峰值位置,最終完成符號定時。
幀檢測采用滑動窗信號能量檢測的方法,計算滑動窗口R中接收信號的能量,滑動窗口長度取短訓練符號長度D,其公式為


如圖2所示,當沒有數據幀出現時,得到的R(n)為噪聲的能量,值通常比較小,一旦有數據幀到達,窗口中信號能量會迅速躍升,達到一個數值平臺。因此,如果R(n)幅值超過了預設的門限值就開始進行下一步的相關運算。SNR為信噪比。

由于IEEE802.11a協議中設計的訓練符號對于發射機和接收機來說都是已知的,將接收數據與本地短訓練符號S(i)的共軛進行相乘累加,即得到互相關系數

式中:D=16,即每個短訓練符號的樣值個數。接收信號與訓練符號具有很好的相關特性,當 C(n)有峰值出現時,表示這個樣值點為一個短訓練符號的結束點,圖2中10個峰值點就是每個短訓練符號的結束位置。
本地短訓練符號和接收到數據的實部虛部均為帶符號位的8位二進制數,進行能量計算和互相關計算時將占用FPGA中較多的乘法器資源。顯然,這樣所需的硬件資源開銷非常大,如果要在單片FPGA中實現整個OFDM解調會比較困難,而且會影響系統的運行速度。因此有必要在硬件實現時對算法做一些改進,對接收數據和本地短訓練符號進行二階量化得到d[n]=P[r(n)],其中 P 為復數量化函數,公式如下

經過量化處理后,需要復數乘法處理的數據就只能取 1+j,1-j,-1+j,-1-j,結果也只有 16 種可能,這時可將結果儲存在程序中,將輸入作為查找地址,這樣就避免了乘法器的使用,經過累加就可以得到互相關系數C(n)和能量 R(n)。
接下來要進行互相關系數C(n)幅值的計算,這涉及到乘法操作及開方運算,硬件實現起來十分困難。通常可以計算互相關系數C(n)的實部和虛部的絕對值之和,近似其幅值,計算公式如下

圖3針對簡化后的硬件實現結構在Matlab中進行了仿真,對比圖2峰值位置仍然有較好的識別性,門限值大小也根據圖3選取,這樣也就避免了前兩步近似計算結果對同步效果的影響。

整個符號同步模塊的硬件組成結構如圖4所示,它主要由量化模塊、延時單元、加法器、移位寄存器、取模模塊和判決器組成。
接收到復數信號的實部虛部,各取其符號位進行量化后,第一路直接進行乘法運算,根據式(2)的遞推方法,運算結果及其延時輸入到減法器,把減法器的輸出進行累加得到滑動窗口內信號能量,經過取模后與門限值(由圖3分析,為便于二進制表示,門限值設為0.75)進行比較,輸出的結果作為后續互相關模塊的使能信號;另外一路數據直接延時16個時鐘周期后與本地量化后的訓練符號進行互相關運算(如果不進行延時,在判定數據幀到達后計算互相關系數時,因為第1個短訓練符號沒有完整參與運算,導致第1個峰值不明顯,容易誤判),然后對取模后的結果進行峰值檢測(由圖3分析,為便于二進制表示,門限值設為1.25),得到10個峰值后輸出同步信號。

采用Verilog HDL語言進行符號同步模塊的硬件設計,并在ISE9.2i集成設計環境中配合ModelSim SE 6.2b進行仿真,仿真結果如圖5所示。

其中,CLK為 20 MHz的時鐘信號,Data_re和Data_im分別為送入同步模塊進行計算的實部和虛部數據,Frame_flag為幀檢測信號,用于判斷是否有數據幀到達接收機,Peak_flag為峰值位置標志信號,可以產生最終的同步信號。在Frame_flag信號為高電平期間,互相關系數有10個峰值位置,這也符合Matlab中的仿真結果。
表1是選用Xilinx公司Spartan3系列的xc3s1000-4ft256芯片進行仿真實現的資源占用情況,邏輯單元使用率為14%,系統最高工作頻率為60.942 MHz。

表1 FPGA中的資源占用情況
筆者對基于IEEE802.11a協議的OFDM符號同步算法的硬件實現結構進行了簡化,在Matlab中對簡化結構前后的算法分別進行了仿真分析,確保了簡化的可行性,最后完成了在FPGA中的硬件電路設計。最終的結果表明該算法在降低了硬件資源占用的條件下,仍然能夠達到較為理想的符號同步效果,并且提高了芯片運行速度。這樣就便于將解調模塊集成在單芯片中,或者是使用較低端的芯片實現同步功能。
[1]史治國,洪少華,陳抗生.基于XILINX FPGA的OFDM通信系統基帶設計[M].杭州:浙江大學出版社,2009.
[2]謝英浩,李紹榮.一種優化的OFDM符號定時與頻偏估計算法及其 FPGA 實現[J].通信技術,2008,41(12):4-6.
[3]陳霞,章堅武.基于IEEE802.11a OFDM同步算法的FPGA實現[J].無線電工程,2007,37(7):55-57.