陳 超 余厚全 龔光勇 朱嶸濤
(中石油川慶測井公司 重慶)
OFDM系統(tǒng)中低存儲可配置的(I)FFT的設(shè)計與實現(xiàn)
陳 超 余厚全 龔光勇 朱嶸濤
(中石油川慶測井公司 重慶)
文章提出了一種OFDM系統(tǒng)中高速、可配置、低存儲的(I)FFT處理器設(shè)計方法。該方法采用了按頻率抽取的基4流水線結(jié)構(gòu)實現(xiàn)高速運算,利用單個原位同址運算RAM及CORDIC算法實現(xiàn)低存儲運算,通過改變流水線的級數(shù)實現(xiàn)多種點數(shù)的(I)FFT運算。整個設(shè)計通過FPGA實現(xiàn)。在外部時鐘為100 MHz時,處理器計算一次4096點、13位長數(shù)據(jù)FFT的時間約為103μs,所消耗的存儲器僅為106 Kb。
快速傅立葉變換;正交頻分復(fù)用;坐標(biāo)旋轉(zhuǎn)數(shù)字計算機(jī);基4算法;現(xiàn)場可編程門陣列
隨著成像測井等測井新技術(shù)的發(fā)展,測井過程中需要實時上傳的數(shù)據(jù)量越來越大。受限于測井電纜惡劣的傳輸環(huán)境,傳統(tǒng)的測井電纜數(shù)據(jù)傳輸系統(tǒng)的傳輸速率一般只有100 kb/s,極大的限制了整個成像測井系統(tǒng)的性能。OFDM(正交頻分復(fù)用)是一種多載波調(diào)制技術(shù),由于其具有高效的頻譜利用率、抗窄帶干擾及對抗頻率選擇性衰落等能力,已被廣泛應(yīng)用于各種寬帶通信系統(tǒng)中。根據(jù)測井電纜的傳輸特性,將OFDM技術(shù)應(yīng)用到測井電纜數(shù)傳系統(tǒng)中將有望大大提高測井電纜數(shù)據(jù)傳輸?shù)乃俣?。OFDM系統(tǒng)中最核心的部分無疑是負(fù)責(zé)調(diào)制解調(diào)的(I)FFT/FFT運算。其(I)FFT的變換點數(shù)都是多種可配置的,對FFT處理器的數(shù)據(jù)吞吐量和數(shù)據(jù)處理的實時性也有著很高的要求。為滿足這些需求,本文設(shè)計了一種高速、位長及點數(shù)可配置、低存儲的(I)FFT處理器。該處理器采用了乒乓流水線結(jié)構(gòu)來滿足高速、大吞吐量數(shù)據(jù)處理要求,單個原位同址運算RAM及CORDIC算法實現(xiàn)低存儲運算,通過改變流水線的級數(shù)來實現(xiàn)多種點數(shù)的(I)FFT變換。
從FFT算法的復(fù)雜性來看,基4算法比基2算法減少約20%的運算量。從硬件實現(xiàn)的難易程度來看,基4算法具有比分裂基和更高基較易控制的特點。
FFT算法有按時間抽取DIT和按頻率抽取DIF兩種形式,其區(qū)別在于輸入數(shù)據(jù)和旋轉(zhuǎn)因子乘、加的順序不同。在DIT中,蝶形運算的輸入數(shù)據(jù)和旋轉(zhuǎn)因子是先乘后加,而在DIF中,則是先加后乘,兩者并沒有實質(zhì)區(qū)別。本設(shè)計采用的是DIF的基4 FFT的算法。
一個基4蝶形運算單元需要8個復(fù)加和3個復(fù)乘,也就是12個實數(shù)乘法和22個實數(shù)加法,若直接用乘法器實現(xiàn)需要消耗大量的硬件資源,還需要專門用一塊ROM存放旋轉(zhuǎn)因子的實部和虛部。所以本文采用CORDIC算法來實現(xiàn)蝶算單元的乘法。
參數(shù)化(I)FFT處理器的結(jié)構(gòu)如圖1所示,首先給定位長的4M點數(shù)據(jù)串行輸入到RAM中經(jīng)過第一級(共M級)基4蝶形運算處理后,得到的數(shù)據(jù)經(jīng)過“溢出檢測控制模塊”處理,再寫入到雙口RAM中,經(jīng)過第二級基4(I)FFT運算處理。重復(fù)上述操作,直到第后,數(shù)據(jù)經(jīng)過“4M級點(I)FFT/FFT”后直接混序輸出,之后輸出整序和循環(huán)前綴插入共用一個模塊,這樣做不僅節(jié)省了一級存儲器,而且在下一次(I)FFT開始前,不必等待上一次(I)FFT的輸出、整序及循環(huán)前綴插入,從而大大提高了處理器的速度。各個功能模塊的設(shè)計和實現(xiàn)如下:
圖1 圖1 OFDM系統(tǒng)中參數(shù)化(I)FFT整體實現(xiàn)框圖
控制信號與地址產(chǎn)生模塊是整個系統(tǒng)的核心,也是最復(fù)雜的部分。它負(fù)責(zé)控制系統(tǒng)運行過程中的各個啟動信號的產(chǎn)生,及對高速數(shù)據(jù)存儲交換單元RAM的操作,選擇何時該寫入何處的數(shù)據(jù),同時產(chǎn)生各級流水線中RAM的讀寫地址。其工作流程可以簡述如下:在(I)FFT啟動信號發(fā)出后,判斷(I)FFT的選擇信號(如0為fft,1為ifft),由此決定是對輸入數(shù)據(jù)何種變換。確定所作變換后,開始讀入輸入的數(shù)據(jù)。RAM在第一級的時候,寫入的數(shù)據(jù)就是輸入樣本,在后面的各級中,寫入RAM的數(shù)據(jù)是經(jīng)過蝶型運算后的中間數(shù)據(jù)。此時地址產(chǎn)生模塊會按照蝶型運算信號流圖上各中間數(shù)據(jù)點的位置產(chǎn)生RAM的讀寫地址。到最后一級蝶算完成后,控制數(shù)據(jù)不必經(jīng)過CORDIC模塊,直接輸出,即為數(shù)據(jù)經(jīng)過(I)FFT變換后的結(jié)果,此時由模塊產(chǎn)生一個輸出有效信號。,模塊還會產(chǎn)生一個系統(tǒng)工作狀態(tài)指示信號,以確定下一次(I)FFT運算何時開始。
RAM是存儲輸入數(shù)據(jù)及中間運算結(jié)果的單元。蝶型運算的輸入、輸出數(shù)據(jù)都要經(jīng)過RAM的讀寫操作,因此RAM的讀寫速度直接影響(I)FFT處理器的速度。為了提高系統(tǒng)的整體速度,在盡量節(jié)約硬件資源的前提下,本設(shè)計采用了Altera提供的參數(shù)化功能模塊LPM實現(xiàn)的雙口RAM,實部和虛部數(shù)據(jù)各一個雙口RAM。這樣可以對一塊RAM同時進(jìn)行讀寫操作,大大提高了數(shù)據(jù)吞吐量及這個系統(tǒng)的效率。
圖2所示是基4蝶算的信號流圖,四點FFT模塊中完全不需要復(fù)數(shù)乘法。乘-j只需將實部虛部交換,再加上相應(yīng)的正負(fù)號即可。四點FFT模塊采用的是流水線結(jié)構(gòu),每次蝶算需要四個周期才能完成。四點(I)FFT與四點FFT共用一個模塊,只需將圖2中的-j變?yōu)閖即可,其中原理將在后面講述。
圖2 基4蝶算單元信號流圖
CORDIC算法的原理在前面已有說明,其硬件實現(xiàn)如圖3所示,本設(shè)計采用的是流水線結(jié)構(gòu)。該結(jié)構(gòu)能夠在執(zhí)行過程中同時輸入數(shù)據(jù),從而極大的提高了模塊的運行效率。在該結(jié)構(gòu)中,每一個移位都是固定的深度,且旋轉(zhuǎn)因子的各個值作為常數(shù)直接連到累加器上,不需要存儲空間和讀取時間。整個CORDIC簡化為加減法的直接相連,硬件實現(xiàn)非常的簡單方便。
圖3 CORDIC硬件實現(xiàn)結(jié)構(gòu)圖
當(dāng)需要旋轉(zhuǎn)的角度在(0,π/2)范圍之外時,只需簡單的互換、取反操作就可以將其調(diào)整到(0,π/2)范圍之內(nèi),代價比直接作旋轉(zhuǎn)要低。不同角度范圍的預(yù)旋轉(zhuǎn)對應(yīng)關(guān)系見表1。
表1 角度預(yù)旋轉(zhuǎn)關(guān)系對應(yīng)表
在一個基4蝶形運算單元中,由于旋轉(zhuǎn)因子的實部和虛部的絕對值總是不大于1,故乘法運算不會引起輸出數(shù)據(jù)位數(shù)的增加,而輸入數(shù)據(jù)的加減也最多只有兩次進(jìn)位。因此,若輸入數(shù)據(jù)的實部、虛部分別為N位字長,為防止溢出,輸出數(shù)據(jù)要用N+2位字長表示。溢出檢測可采用狀態(tài)機(jī)的描述形式對輸出數(shù)據(jù)的高3位進(jìn)行比較,得到溢出控制位,以決定下一級作何種移位處理,移位輸出的N位字長的數(shù)據(jù)作為下一級蝶形運算的輸入。同時,對各級的溢出控制位進(jìn)行求和運算,得到一次N點FFT處理結(jié)果的塊浮點指數(shù)。
本設(shè)計中,數(shù)據(jù)經(jīng)過第M級流水線處理后,直接混序輸出,不用再輸入到RAM中,之后輸出整序和循環(huán)前綴插入共用一個模塊,這樣做不僅節(jié)省了一級存儲器,而且在下一次(I)FFT開始前,不必等待上一次(I)FFT的輸出、整序及循環(huán)前綴插入,從而大大提高了處理器的速度。基4FFT算法的整序如圖4所示。
圖4 基4FFT整序規(guī)律圖
利用FFT模塊求序列的IFFT在硬件實現(xiàn)中通常有兩種方法:一是對輸入序列取共軛,在輸出端同樣對數(shù)據(jù)取共軛,得到的序列除以點數(shù)N就是輸入序列的(I)FFT變換結(jié)果。另一種是直接按照IDFT的公式(式1)直接求得x(n)。兩種方法實現(xiàn)起來都比較簡單。本設(shè)計采用的是后一種方法,具體做法就是產(chǎn)生與FFT運算相反的旋轉(zhuǎn)因子,輸出數(shù)據(jù)除以點數(shù)N即可。
在QuartusII平臺上,選用Altera公司的CycloneII系列EP2C35F672C6器件進(jìn)行綜合、布局布線和時序分析。在外部時鐘為100 MHz的情況下,一次13位、4096點數(shù)據(jù)FFT處理所需時間是103μs,所消耗的資源如下:存儲器106 Kb,邏輯單元1 880個,其中寄存器單元1 295個。圖5是用Altera提供的SignalTapII邏輯分析儀得到的硬件測試結(jié)果,圖中Iin是加載到子載波上的單個脈沖,經(jīng)過256點(I)FFT變換、整序,加循環(huán)前綴后,得到數(shù)據(jù)Iout、Qout。圖中0~31是循環(huán)前綴(CP),32~287是256點IFFT的變換結(jié)果,由(I)FFT的性質(zhì)可知:單個脈沖組成的實序列(Iin)經(jīng)過IFFT變換后所得到的序列(Iout&Qout),其實部(Iout)是余弦信號,虛部(Qout)是正弦信號。兩者頻率、幅度相同,相位相差90°。
圖5 單個脈沖加載到子載波后(I)FFT加循環(huán)前綴
本文設(shè)計了一種高速、低存儲、位長及點數(shù)可配置的(I)FFT處理器。該處理器可被用于測井?dāng)?shù)傳及
WLAN、WiMAX、LTE、DVB等現(xiàn)代通信系統(tǒng)中。在時鐘為100MHz時,處理器計算一次4096點的FFT所需時間稍大于Altera提供的IP Core,但所消耗的存儲資源僅為IP Core的四分之一。
[1] UweMeyer.Baese.數(shù)字信號處理的FPGA實現(xiàn)(第二版)[M].北京:清華大學(xué)出版社,2006
[2] 胡廣書.數(shù)字信號處理—理論、算法與實現(xiàn)(第二版)[M].北京:清華大學(xué)出版社,2003
[3] 尹長川,羅 濤,樂光新.多載波寬帶無線通信技術(shù)[M].北京:北京郵電大學(xué)出版社,2004
[4] F.Kristensen,P.Neilson and A.Olssen.Reduced transceiver-delay for OFDM systems[M].IEEE Vehicular Technology Conference,VTC,Spring 2004
[5] Y.-T.Lin,P.-Y.Tsai and T.-D.Chiueh.Low-power varibable-length fast Fourier transform processor[J].IEE Proc.-Comput.Digit.Tech,2005,152(4)
[6] Son.B.S,Sunwoo.M.H,Y ong Serk Kim.A high-speed FFT processor for OFDMsystems[J].Circuits and Systems,2002.ISCAS 2002.IEEE International Symposiumon Volume 3,2002,3
PI,2010,24(6):74~76
This paper proposes a high speed,reduced-memory and reconfigurable(I)FFT processor for OFDM systems.the processor uses radix-4 DIF pipeline architecture for high speed computation.In order to meet the low memory requirement,single in-place memory and CORDIC algorithm are adopted.Implemented on a FPGA device,the processor can calculate a 4096-point complex FFT in 103us when operates at 100MHz,while just consumes 106K B memory.
Key words:FFT;OFDM;CORDIC;Radix-4 algorithm;FPGA
educed-Memo-ry and reconfigurable(I)FFT processor for OFDM system.
Chen Chao,Yu Houquan,Gong Guangyong and Zhu Rongtao.
P681.8+3
B
1004-9134(2010)06-0074-03
陳 超,男,1985年生,長江大學(xué)工程技術(shù)學(xué)院信息系碩士研究生,主要研究方向為軟件無線電。郵編:434023
2010-07-09編輯:劉雅銘)