文獻標(biāo)識碼: A
文章編號: 0258-7998(2011)10-0063-04
在數(shù)字信號處理中,,離散傅里葉變換(DFT)是常用的變換方法,它在各種數(shù)字信號處理系統(tǒng)中扮演著重要的角色,。快速傅里葉變換(FFT)[1-2]是離散傅里葉變換的快速算法,,它是根據(jù)離散傅里葉變換的奇、偶,、虛,、實等特性,對離散傅里葉變換的算法進行改進獲得的,,兩者都是為了將信號變換到頻域并進行相應(yīng)的頻譜分析,。對于實時性要求很強的信號處理來說,運算速度對整個處理的影響是顯而易見的,。因為FFT擁有很高的運算能力,,使其在無線通信和數(shù)字通信、高速圖像處理,、匹配濾波等領(lǐng)域得到極為廣泛的應(yīng)用,。
LTE作為準(zhǔn)4 G技術(shù),以正交頻分復(fù)用OFDM和多輸入多輸出MIMO技術(shù)為基礎(chǔ),,下行采用正交頻分多址(OFDM)技術(shù),,上行采用單載波頻分多址(SC-FDMA)技術(shù),在20 MHz頻譜帶寬下能夠提供下行100 Mb/s和上行50 Mb/s的峰值速率[3],。
頻域分析比時域分析更優(yōu)越,,不僅簡單,,且易于分析復(fù)雜信號[4]。在LTE系統(tǒng)中,,F(xiàn)FT算法主要應(yīng)用于基帶信號生成,、信號的接收和檢測等,將時域信號轉(zhuǎn)移到頻域進行處理,。
其中,,x(n)為復(fù)數(shù)序列,WNkn和X(K)也為復(fù)數(shù),,因此每計算一個X(K)值,,需要進行N次復(fù)數(shù)乘法運算和N-1次復(fù)數(shù)加法運算。而X(K)共有N個點,,所以完成整個DFT運算需要進行N2次復(fù)數(shù)乘法和N(N-1)次復(fù)數(shù)加法運算,,當(dāng)N很大時,運算量相當(dāng)可觀,。然而對于實時性很強的信號處理來說,,如滿足其要求,運算速度就太高了,。利用旋轉(zhuǎn)因子WNkn的對稱性,、周期性和可約性,可以使DFT運算中的有些項合并,,將長序列的DFT分解為幾個短序列的DFT,,從而大大減少運算次數(shù)。FFT算法可以分為時間抽取法和頻域抽取法兩大類,。頻域抽取法的運算特點與時間抽取法的基本相同,,不同之處是頻域抽取法的蝶形運算是先加后乘,時間抽取法的蝶形運算是先乘后加,;頻域抽取的輸入序列是自然順序,,輸出序列是倒序,而時間抽取法的輸入序列是倒序,,輸出序列是自然順序,。
假設(shè)輸入序列x(n)長度為N=2M,M是正整數(shù),。如果不滿足這個條件,,在序列尾部人為地加上若干零值點,使其達到這一要求,。將序列x(n)按n的奇偶分解為兩個N/2點的子序列:
2 FFT算法的DSP實現(xiàn)
2.1 硬件
TMS320C6000系列DSP是TI公司推向市場的高性能DSP,綜合了目前性價比高、功耗低等優(yōu)點,。TMS320C64系列提高了時鐘頻率,,在體系結(jié)構(gòu)上采用了VelociTI甚長指令集VLIW(Very Long Instruction Word)結(jié)構(gòu)[5],芯片內(nèi)有8個獨立功能單元的內(nèi)核,,每個周期可以并行執(zhí)行8條32 bit指令,最大峰值速度為4 800 MIPS,,2組共64個32 bit通用寄存器,,32 bit尋址范圍,支持8/16/32/40 bit的數(shù)據(jù)訪問,,芯片內(nèi)集成大容量SRAM,,最大可達8 Mb,。由于出色的運算能力、高效的指令集,、大范圍的尋址能力,,使其特別適用于無線基站、測試儀表等對運算能力和存儲量要求高的應(yīng)用場合,。
2.2 FFT算法的DSP實現(xiàn)
FFT算法作為一個子函數(shù)模塊且輸入序列長度不盡相同,,所以,方案定義了輸入輸出變量及其調(diào)用格式,。調(diào)用格式:Turbo_Code(int*,,int,int,,char*,,char*,int*),,其中,,int分別表示輸入序列的長度和FFT的級數(shù);int*分別表示輸入序列的首地址和輸出序列的首地址,;char*分別表示旋轉(zhuǎn)因子的余弦的首地址和旋轉(zhuǎn)因子的正弦的首地址,。
FFT算法具體實現(xiàn)流程如下:
(1)時間抽取法的FFT中,每個蝶形的輸入,、輸出數(shù)據(jù)節(jié)點在一條水平線上,,所以每個蝶形的輸出數(shù)據(jù)可以立即存入原輸入數(shù)據(jù)所占用的存儲單元。這種原位計算可節(jié)省大量的內(nèi)存,并且理論上減少不同寄存器之間存取數(shù)據(jù)的時間,。
使用C語言編寫主函數(shù),,匯編語言編寫FFT算法的實現(xiàn)函數(shù)。程序中假設(shè)輸入數(shù)據(jù)最大長度為1 024,,由于DSP C6455可以直接存取處理32 bit,,所以在內(nèi)存中定義了長度為8 192 bit作為存放輸出序列的內(nèi)存空間,。為了提高運算精確度,,輸入數(shù)的實部和虛部分別占用一個字,,在程序中進行復(fù)數(shù)相乘操作是采用匯編指令MPYHI。內(nèi)存定義了長度為2 048 bit的Tempsequence作為存放倒序序列,,并且建立了2張旋轉(zhuǎn)因子查找表,,分別為Wr和Wi,。
外循環(huán)中,在每次內(nèi)循環(huán)之前從輸入比特序列中取出32 bit放入一個寄存器,,作為一個內(nèi)循環(huán)的輸入,內(nèi)循環(huán)結(jié)束后,,取下一個32 bit輸入比特更新這個寄存器。
內(nèi)循環(huán)中,,計算蝶形過程采用查表的方式,。對于每一級,,計算出需要的旋轉(zhuǎn)因子個數(shù)以及相同旋轉(zhuǎn)因子相距的間隔。計算蝶形過程時,,首先提取出X(k),根據(jù)相同旋轉(zhuǎn)因子間隔找到X(k+B)完成蝶形計算,??紤]到旋轉(zhuǎn)因子的對稱性,在內(nèi)存中存放旋轉(zhuǎn)因子時只存放一半,,剩余的數(shù)據(jù)根據(jù)對稱性進行處理,。圖2給出了FFT算法實現(xiàn)計算流程圖,。
按時間抽取法的FFT輸入序列是倒序,,輸出序列是自然順序,;按頻率抽取法的FFT輸入序列是自然順序,,輸出序列是倒序的,。不管采用哪種方法進行FFT計算,都需要倒序處理。倒序是整個FFT計算的重要部分,,進行匯編程序時,按自然順序?qū)⑤斎霐?shù)據(jù)存入到存儲單元內(nèi),,通過變址運算,將自然順序的序列按時間抽取法要求進行倒位,。
重新排序之前,,存儲單元Y中依次存放輸入數(shù)據(jù),I表示當(dāng)前輸入數(shù)據(jù)比特的順序數(shù)的十進制數(shù)值,,I的取值從0到N-I;J表示當(dāng)前倒序數(shù)的十進制數(shù)值,。輸入序列的第一個和最后一個數(shù)的位置不需要倒序處理,完成倒序的外循環(huán)的次數(shù)為N-2,。為了保證調(diào)換數(shù)據(jù)的正確性,需要檢測一下是否I<J,,只有當(dāng)I<J,才將Y(I)與Y(J)的內(nèi)容互換,。形成倒序數(shù)J以后,,就可以實現(xiàn)變址功能,按照自然順序存放在存儲單元的數(shù)據(jù)重新按照倒序排列,。圖3給出了實現(xiàn)倒序的匯編流程圖。
3 性能分析與總結(jié)
在DSP軟件實現(xiàn)中,,通過指令并行,盡量優(yōu)化程序循環(huán)體,,減少或消除程序中的’NOP’指令[6],。通過程序仿真運行,,得到統(tǒng)計結(jié)果如表1所示。
從表中可以看出,,當(dāng)運用TMS320C64×DSP芯片實現(xiàn)時,由于處理器的超高主頻一般為1 GHz,,一個指令周期耗時為1 ns,其運算速率非??欤耆梢詽M足實時性信號處理,。因此,采用旋轉(zhuǎn)因子查表法的實現(xiàn)方案不僅簡化了程序?qū)崿F(xiàn)方法,,還減少了模塊程序代碼編寫,節(jié)約了系統(tǒng)存儲空間,。
本文提出了一種簡單有效的FFT算法實現(xiàn)方案,詳細介紹了算法在DSP的實現(xiàn)方法,,并在TMS320C64x芯片上加以實現(xiàn),。程序運行結(jié)果表明,,該算法能夠滿足TD-LTE系統(tǒng)的需求,具有可行性和高效性,。該方案已應(yīng)用于LTE-TDD無線綜合測試儀表的開發(fā)中,。
參考文獻
[1] 丁玉美.數(shù)字信號處理[M].西安:西安電子科技大學(xué)出版社,,2002.
[2] 何方白,張德民.數(shù)字信號處理[M].北京:高等教育出版社,,2009.
[3] 3GPP TS 36.211 v9.0.0.Evolved universal terrestrial radio access(E-UTRA) physical channels and modulation (Release 9)[S].2009-12.
[4] SAIDI A.Decimation-in-time-frequency FFT algorithm[M]. Manuscript, To be published.1993.
[5] Texas Instruments Incorporated.TMS320C64x/C64x+DSP CPU and instruction set referenceguide[EB/OL].Http://www.ti.com.cn,2008.
[6] Texas Instruments Incorporated.TMS320C6000系列DSP編程工具與指南[M].田黎育,,何佩琨,朱夢宇,,譯.北京:清華大學(xué)出版社,2006.