O 引 言 隨著各種FFT算法的出現,DFT在現代信號處理中起著越來越重要的作用。在B3G和4G移動通信中所采用的0FDM技術,更是以IDFT/DFT來進行OFDM調制和解調制,IDFT/DFT的精度直接影響基帶解調的性能。 在硬件實現中,通常影響定點化FFT算法精度的有量化誤差、舍入誤差和溢出誤差。一旦決定了量化方式和數據位寬后,量化誤差和舍入誤差都是可估計的,而溢出誤差則隨著輸入信號功率的增大而急劇增加,造成SNR嚴重惡化。 中射頻接收時,通常使用AAGc和DAGC來改善ADC正常工作的動態范圍。同理,由于實現高精度定點化FFT算法的難度和成本較高,本文將采用DAGC技術調整DFT輸入功率,以降低DFT的實現負擔、增加DFT的實現精度、減少DFT的實現位寬。 1 DFT輸入功率范圍分析 B3G和4G移動通信系統中采用的OFDM技術以OFDM符號為單位進行調制解調,該類系統中高層的子載波分配機制,可以使各個OFDM符號幅度變化較其他通信系統大得多。因此,OFDM符號在接收端中射頻進行放大后,傳至基帶用DFT進行子載波解調,此時的符號功率往往有著較大的動態范圍。針對本文關注的DFT溢出誤差,該部分將推導DFT所能接收的最大輸入信號功率。 復隨機序列z[n]=Re(z[n])+jIm(b[n])(n∈[0,N一1])的DFT正變換表示為: 考慮最極端的一個Z[k],即每一個z[n]乘以旋轉因子WknN后,都旋轉角θ至Re正半軸成為z’[n],如圖1所示。在這種情況下,定義: 則當虛部為Im(Z[k])=0時,實部Re(Z[k])(k∈[0,(n-1)]的模平方滿足: 其中:N為DFT點數,以上推導也可由旋轉至Re負半軸,Im正或負半軸得到。因此,所有Z[k]的實部和虛部的模平方必定都小于或等于式(3)所得結果。 本文僅討論1 024點復隨機序列DFT,采用32 b存儲DFT結果,高16 b存實部,低16 b存虛部,兩個16 b的最高位均為符號位,為了保證DFT后的每一個點都不溢出,則平均功率W,需要滿足: 經典的防止DFT溢出的辦法,通常是將輸入信號的模調整至所允許的最大輸出信號模的1/N,N為DFT點數,同樣針對以上情況,采用經典模調整方式的平均功率僅為Ws/1 024。 2 數據仿真及分析 針對上面所舉例子,用Matlab產生一個長度為1 024的零均值高斯分布復隨機序列,序列方差σ2=2k∈[25,215],k∈[5,15]。定義SNR如式(5),其中Wfloat,Wfix分別是采用浮點、定點FFT算法的平均輸出功率。 Matlab仿真結果如圖2所示,其中橫坐標為20logl0(σ2/215)?梢,當輸入信號平均功率較小時,量化誤差和舍入誤差隨功率增加而下降,但平均功率上升到一定值后,產生的定點溢出誤差增加使得SNR急劇下降。 針對較大的OFDM符號功率動態范圍,本文采用DAGC技術來調整DFT輸入信號功率,使其處在一個較平穩的范圍內,以此提高DFT運算的輸出SNR,同時減輕本身就具有較大運算量的DFT模塊的負擔。根據仿真結果,結合式(4),選擇DFT輸入平均功率為(210)2時最佳。 3 FPGA實現及分析 由于用FPGA實現乘除法會消耗大量資源,一般采用左右移位來代替。因此,為了簡化FPGA實現難度,本文僅將輸入序列的功率從區間[(2i-1)2,(2i)2]調整到[(29)2,(210)2],其中i為非負整數且i∈[6,15]。 DFT模塊選用Altera公司的IPCORE,總體框圖如圖3所示,其中BUFl,BUF2均可存儲1 024點,用于流水處理。該實現方式通過兩個二級模塊以及中間緩存實現,由于存儲功率的寄存器位寬很大,實現時不使用比較器。流水處理1 024點所需要的平均時間la—tency僅為1 029個時鐘周期,即經過1 024個時鐘周期得到1 024個點后,平均僅需要5個時鐘周期得到功率調整因子。本模塊綜合后的最高頻率fmax=220 MHz。以輸入序列平均功率為2×(214)2為例,功率調整方式對SNR影響如表1所示,其中第三種方式僅由Matlab仿真得到。可見,采用調整到區間[(29)2,(210)2]時的SNR較高且易于用FPGA實現。 4 結 語 本文主要針對OFDM系統中定點化DFT的溢出誤差,分析了DFT輸入信號功率對其輸出信噪比的影響,并以高斯零均值輸入信號為例,采用DAGC與DFT模塊級聯的方式進行了Matlab仿真和FPGA實現,證明了其可行性。該方法以很小的時延、較少的資源以及較高的精度為優勢,有效地增大了定點化DFT正常工作的動態范圍,同時為后級恢復原信號提供了可靠保障,完全滿足0FDM系統基帶解調的要求。 |