專利名稱:通用dsp處理器中fft計(jì)算實(shí)現(xiàn)裝置和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信號(hào)處理領(lǐng)域和通用DSP處理器領(lǐng)域,尤其涉及一種通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置和方法。
背景技術(shù):
數(shù)字信號(hào)處理(DSP,Digital Signal Processing)主要指對(duì)數(shù)字信號(hào)的處理,它對(duì)于許多應(yīng)用來(lái)說(shuō)都是必需的,所述應(yīng)用例如是數(shù)字信號(hào)及圖像濾波、語(yǔ)音合成、高速調(diào)制解調(diào)器、語(yǔ)音識(shí)別、信號(hào)及圖像壓縮等等。通用DSP處理器是指是一種處理大量數(shù)字信號(hào)信息的微處理器,具有強(qiáng)大的數(shù)據(jù)處理能力和很高的運(yùn)行速度。在通用DSP處理器中常常使用DFT (Discrete Fourier Transform,離散傅里葉變換)來(lái)對(duì)離散信號(hào)進(jìn)行處理,但是DFT的計(jì)算復(fù)雜度較高。隨之出現(xiàn)的FFT (Fast Fourier ^Transform,快速傅里葉變換)不但將DFT的計(jì)算復(fù)雜度由
F2降到了 Mog ^V,而且其控制相對(duì)簡(jiǎn)單,存儲(chǔ)單元結(jié)構(gòu)簡(jiǎn)單,耗費(fèi)硬件資源最少,從而便
于低功耗系統(tǒng)設(shè)計(jì),因此在數(shù)字信號(hào)領(lǐng)域,尤其在數(shù)字通信、圖像處理、無(wú)線通信等方面FFT 都有極為廣泛的應(yīng)用。目前存在許多基于ASIC或者FPGA的FFT處理器。FFT處理器通常有兩種結(jié)構(gòu),一種是級(jí)聯(lián)結(jié)構(gòu),一種是單級(jí)結(jié)構(gòu)。所述級(jí)聯(lián)結(jié)構(gòu)是指具有多級(jí)計(jì)算單元,前一級(jí)的計(jì)算結(jié)果作為后一級(jí)的輸入;所述單級(jí)結(jié)構(gòu)是指只有一級(jí)的計(jì)算單元,計(jì)算結(jié)果作為下一次計(jì)算的輸入,循環(huán)計(jì)算。在FFT處理器中采用基于 cooley-turkey算法實(shí)現(xiàn)的流水線結(jié)構(gòu),由于cooley turkey具有原址計(jì)算的特點(diǎn),所以易于硬件實(shí)現(xiàn)。常用的FFT處理器都采用多級(jí)結(jié)構(gòu),計(jì)算速度快,可以實(shí)現(xiàn)流水線計(jì)算,但是通用性不強(qiáng),且價(jià)格昂貴。如果要完成各種常用信號(hào)處理,還需要通用DSP核來(lái)協(xié)助處理。對(duì)于通用DSP處理器,沒(méi)有FFT計(jì)算所需要的巨量存儲(chǔ)器,且計(jì)算單元比較少,其通常采用單級(jí)結(jié)構(gòu)。該單級(jí)結(jié)構(gòu)主要包括基2或基4 FFT計(jì)算單元,每次只能進(jìn)行一級(jí)FFT碟形計(jì)算。就基2 FFT計(jì)算來(lái)說(shuō),其只能處理2N點(diǎn),其中,N=l,….,η。而基4 FFT計(jì)算,其只能處理4〃點(diǎn),其中,N=l,....,n,例如16點(diǎn)、256點(diǎn)、1024點(diǎn)等等,卻無(wú)法處理32點(diǎn)、128點(diǎn)、 512點(diǎn)、2048點(diǎn)等2〃點(diǎn)。由上述可知,基2 FFT計(jì)算比基4 FFT計(jì)算的作用范圍大,但是基4 FFT計(jì)算的并行性價(jià)比要比基2 FFT計(jì)算的高,并且基4 FFT計(jì)算的速度要比基2FFT計(jì)算快。
發(fā)明內(nèi)容
本發(fā)明公開(kāi)了一種計(jì)算效率高的通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置和方法。為了解決上述問(wèn)題,本發(fā)明通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置的技術(shù)方案包括
通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置,用于對(duì)存儲(chǔ)在RAM中的計(jì)算點(diǎn)進(jìn)行FFT變換,其特征在于,包括FFT計(jì)算點(diǎn)處理控制單元、數(shù)據(jù)輸入控制單元、混合基FFT計(jì)算單元、數(shù)據(jù)輸出控制單元和旋轉(zhuǎn)因子計(jì)算單元,其中
所述FFT計(jì)算點(diǎn)處理控制單元將點(diǎn)數(shù)大于等于閾值的計(jì)算點(diǎn)轉(zhuǎn)換為二維數(shù)據(jù)IXJ, 其中I為4的冪且I X J等于該FFT計(jì)算點(diǎn)的點(diǎn)數(shù),對(duì)于小于閾值的計(jì)算點(diǎn)和二維數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù),若不能進(jìn)行純基4計(jì)算則進(jìn)行基4或基2的混合級(jí)計(jì)算的控制;
所述數(shù)據(jù)輸入控制單元用于根據(jù)所述FFT計(jì)算點(diǎn)處理控制單元處理的結(jié)果產(chǎn)生FFT計(jì)算點(diǎn)在RAM中的反序地址,使用DMA讀取數(shù)據(jù),輸送給所述混合基FFT計(jì)算單元; 所述旋轉(zhuǎn)因子計(jì)算單元用于計(jì)算旋轉(zhuǎn)因子并輸出給所述混合基FFT計(jì)算單元; 所述混合基FFT計(jì)算單元用于結(jié)合所述旋轉(zhuǎn)因子對(duì)輸入的計(jì)算點(diǎn)進(jìn)行基4 FFT碟形計(jì)算或者基2 FFT碟形計(jì)算;
所述數(shù)據(jù)輸出控制單元用于把經(jīng)過(guò)所述混合基FFT計(jì)算單元處理的結(jié)果按其在RAM中的原地址輸出。所述混合基FFT計(jì)算單元包括
數(shù)據(jù)緩存,用于緩存所述數(shù)據(jù)輸入控制單元輸送的數(shù)據(jù)或中間結(jié)果; 彼此連接的4個(gè)乘法器和8個(gè)加法器,用于結(jié)合旋轉(zhuǎn)因子對(duì)所述數(shù)據(jù)緩存中的數(shù)據(jù)進(jìn)行一級(jí)基4 FFT碟形計(jì)算或者基2 FFT碟形計(jì)算,并輸出計(jì)算結(jié)果給輸出控制單元。所述計(jì)算點(diǎn)處理控制單元包括
數(shù)據(jù)二維變換邏輯單元,用于對(duì)大于閾值的計(jì)算點(diǎn)進(jìn)行二維的分組以產(chǎn)生對(duì)應(yīng)的二維數(shù)組信息,包含地址,行號(hào)和列號(hào);
混合基FFT計(jì)算控制邏輯單元,用于對(duì)于小于閾值的計(jì)算點(diǎn)和二維分組后的數(shù)據(jù),若能進(jìn)行純基4 FFT碟形計(jì)算,則進(jìn)行基4 FFT碟形計(jì)算的控制,否則進(jìn)行基4或基2 FFT碟形計(jì)算的控制。所述數(shù)據(jù)輸入控制單元包括
輸入地址產(chǎn)生邏輯,用于根據(jù)需要計(jì)算的數(shù)據(jù)信息,生成操作數(shù)的反序地址。所述數(shù)據(jù)輸出控制單元包括
輸出地址產(chǎn)生邏輯,用于根據(jù)計(jì)算點(diǎn)的數(shù)據(jù)信息,生成輸出數(shù)據(jù)的原始保存地址。所述I的值根據(jù)所述數(shù)據(jù)緩存的容量來(lái)確定,該數(shù)據(jù)緩存優(yōu)選為64點(diǎn)。所述閾值可以預(yù)先設(shè)定或者由用戶設(shè)定。相應(yīng)地,本發(fā)明通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)方法包括
將點(diǎn)數(shù)大于等于閾值的FFT計(jì)算點(diǎn)轉(zhuǎn)換為二維數(shù)據(jù)IX J,其中I為4的冪且IX J等于該FFT計(jì)算點(diǎn)的點(diǎn)數(shù);
對(duì)于二維FFT計(jì)算點(diǎn),先對(duì)一維I點(diǎn)進(jìn)行基4 FFT碟形計(jì)算,然后對(duì)于二維J點(diǎn)或點(diǎn)數(shù)小于閾值的FFT計(jì)算點(diǎn),若其能進(jìn)行純基4 FFT碟形計(jì)算則對(duì)其進(jìn)行基4 FFT碟形計(jì)算,否則對(duì)其先進(jìn)行基4 FFT碟形計(jì)算再進(jìn)行基2 FFT碟形計(jì)算。對(duì)于點(diǎn)數(shù)小于閾值的FFT計(jì)算點(diǎn),若能進(jìn)行純基4 FFT蝶形計(jì)算,則對(duì)其進(jìn)行基4 FFT蝶形計(jì)算,否則先進(jìn)行基4 FFT蝶形計(jì)算再進(jìn)行基2 FFT蝶形計(jì)算。所述I的值根據(jù)所述數(shù)據(jù)緩存的容量來(lái)確定。所述閾值可以預(yù)先設(shè)定或者由用戶設(shè)定。與現(xiàn)有技術(shù)相比,本發(fā)明通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置和方法的有益效果為
首先,由于本發(fā)明能夠在通用DSP處理器中對(duì)FFT計(jì)算進(jìn)行混合基處理,也就是說(shuō),既能進(jìn)行基4 FFT計(jì)算也能夠進(jìn)行基2 FFT計(jì)算,且優(yōu)先采用基4 FFT計(jì)算,因此提高了通用 DSP處理器中FFT計(jì)算的效率。其次,本發(fā)明實(shí)現(xiàn)了數(shù)據(jù)的二維計(jì)算,對(duì)于計(jì)算量大的數(shù)據(jù),進(jìn)行二維計(jì)算,有效的降低了計(jì)算的時(shí)間,編程比較簡(jiǎn)單,提高了計(jì)算速度。
參照附圖根據(jù)僅作為例子給出的如下描述,將更清楚地理解本發(fā)明,在附圖中 圖1是本發(fā)明DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置的示意圖2是16點(diǎn)基4的FFT碟形計(jì)算示意圖; 圖3是8點(diǎn)基2的FFT碟形計(jì)算示意圖4是依據(jù)本發(fā)明DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置的計(jì)算點(diǎn)處理控制單元的示例示意
圖5是依據(jù)本發(fā)明DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置的混合基FFT計(jì)算單元的示例示意
圖6是依據(jù)本發(fā)明DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置的數(shù)據(jù)輸入控制單元的示例示意
圖7是依據(jù)本發(fā)明DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置的數(shù)據(jù)輸出控制單元的示例示意圖。
具體實(shí)施例方式在介紹本發(fā)明通過(guò)DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置和方法的具體實(shí)施例之前,先介紹一下基2 FFT碟形計(jì)算和基4 FFT碟形計(jì)算。對(duì)于變換長(zhǎng)度為N的序列x(n)其傅立葉變換(DFT)可以表示如下長(zhǎng)度為N的有限長(zhǎng)序列Χ (η)的DFT為
權(quán)利要求
1.一種通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置,用于對(duì)存儲(chǔ)在RAM中的計(jì)算點(diǎn)進(jìn)行FFT 計(jì)算變換,其特征在于,包括FFT計(jì)算點(diǎn)處理控制單元、數(shù)據(jù)輸入控制單元、混合基FFT計(jì)算單元、數(shù)據(jù)輸出控制單元和旋轉(zhuǎn)因子計(jì)算單元,其中所述FFT計(jì)算點(diǎn)處理控制單元將點(diǎn)數(shù)大于等于閾值的計(jì)算點(diǎn)轉(zhuǎn)換為二維數(shù)據(jù)IXJ, 其中I為4的冪且IXJ等于該FFT計(jì)算點(diǎn)的點(diǎn)數(shù),對(duì)于小于閾值的計(jì)算點(diǎn)和二維數(shù)據(jù)轉(zhuǎn)換后的數(shù)據(jù),若不能進(jìn)行純基4計(jì)算則進(jìn)行基4或基2的混合級(jí)計(jì)算的控制;所述數(shù)據(jù)輸入控制單元用于根據(jù)所述FFT計(jì)算點(diǎn)處理控制單元處理的結(jié)果產(chǎn)生FFT計(jì)算點(diǎn)在RAM中的反序地址,使用DMA讀取數(shù)據(jù),輸送給所述混合基FFT計(jì)算單元; 所述旋轉(zhuǎn)因子計(jì)算單元用于計(jì)算旋轉(zhuǎn)因子并輸出給所述混合基FFT計(jì)算單元; 所述混合基FFT計(jì)算單元用于結(jié)合所述旋轉(zhuǎn)因子對(duì)輸入的計(jì)算點(diǎn)進(jìn)行基4 FFT碟形計(jì)算或者基2 FFT碟形計(jì)算;所述數(shù)據(jù)輸出控制單元用于把經(jīng)過(guò)所述混合基FFT計(jì)算單元處理的結(jié)果按其在RAM中的原地址輸出。
2.如權(quán)利要求1所述的通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置,其特征在于,所述計(jì)算點(diǎn)處理控制單元包括數(shù)據(jù)二維變換邏輯單元,用于對(duì)大于閾值的計(jì)算點(diǎn)進(jìn)行二維的分組以產(chǎn)生對(duì)應(yīng)的二維數(shù)組信息,包含地址,行號(hào)和列號(hào);混合基FFT計(jì)算控制邏輯單元,用于對(duì)于小于閾值的計(jì)算點(diǎn)和二維分組后的數(shù)據(jù),若能進(jìn)行純基4 FFT碟形計(jì)算,則進(jìn)行基4 FFT碟形計(jì)算的控制,否則進(jìn)行基4或基2 FFT碟形計(jì)算的控制。
3.如權(quán)利要求2所述的通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置,其特征在于,所述混合基FFT計(jì)算單元包括數(shù)據(jù)緩存,用于緩存所述數(shù)據(jù)輸入控制單元輸送的數(shù)據(jù)或中間結(jié)果; 彼此連接的4個(gè)乘法器和8個(gè)加法器,用于結(jié)合旋轉(zhuǎn)因子對(duì)所述數(shù)據(jù)緩存中的數(shù)據(jù)進(jìn)行一級(jí)基4 FFT碟形計(jì)算或者基2 FFT碟形計(jì)算,并輸出計(jì)算結(jié)果給輸出控制單元。
4.如權(quán)利要求3所述的通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置,其特征在于,所述數(shù)據(jù)輸入控制單元包括輸入地址產(chǎn)生邏輯,用于根據(jù)需要計(jì)算的數(shù)據(jù)信息,生成操作數(shù)的反序地址。
5.如權(quán)利要求4所述的通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置,其特征在于,所述數(shù)據(jù)輸出控制單元包括輸出地址產(chǎn)生邏輯,用于根據(jù)計(jì)算點(diǎn)的數(shù)據(jù)信息,生成輸出數(shù)據(jù)的原始保存地址。
6.如權(quán)利要求3所述的通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置,其特征在于,所述I的值根據(jù)所述數(shù)據(jù)緩存的容量來(lái)確定。
7.如權(quán)利要求1至6所述的通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置,其特征在于,所述閾值可以預(yù)先設(shè)定或者由用戶設(shè)定。
8.一種通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)方法,其特征在于,所述方法包括將點(diǎn)數(shù)大于等于閾值的FFT計(jì)算點(diǎn)轉(zhuǎn)換為二維數(shù)據(jù)IX J,其中I為4的冪且IX J等于該FFT計(jì)算點(diǎn)的點(diǎn)數(shù);對(duì)于二維FFT計(jì)算點(diǎn),先對(duì)一維I點(diǎn)進(jìn)行基4 FFT碟形計(jì)算,然后對(duì)于二維J點(diǎn),若其能進(jìn)行純基4 FFT碟形計(jì)算則對(duì)其進(jìn)行基4 FFT碟形計(jì)算,否則對(duì)其先進(jìn)行基4 FFT碟形計(jì)算再進(jìn)行基2 FFT碟形計(jì)算;對(duì)于點(diǎn)數(shù)小于閾值的FFT計(jì)算點(diǎn),若能進(jìn)行純基4 FFT蝶形計(jì)算,則對(duì)其進(jìn)行基4 FFT 蝶形計(jì)算,否則先進(jìn)行基4 FFT蝶形計(jì)算再進(jìn)行基2 FFT蝶形計(jì)算。
9.如權(quán)利要求8所述的通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)方法,其特征在于,所述I的值根據(jù)所述數(shù)據(jù)緩存的容量來(lái)確定。
10.如權(quán)利要求9所述的通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)方法,其特征在于,所述閾值可以預(yù)先設(shè)定或者由用戶設(shè)定。
全文摘要
本發(fā)明公開(kāi)了一種通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置和方法。本發(fā)明通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)裝置的技術(shù)方案包括FFT計(jì)算點(diǎn)處理控制單元、數(shù)據(jù)輸入控制單元、混合基FFT計(jì)算單元、數(shù)據(jù)輸出控制單元和旋轉(zhuǎn)因子計(jì)算單元,其中所述混合基FFT計(jì)算單元既能進(jìn)行基4FFT碟形計(jì)算也能夠進(jìn)行基2FFT碟形計(jì)算。本發(fā)明通用DSP處理器中FFT計(jì)算實(shí)現(xiàn)方法包括將點(diǎn)數(shù)大于等于閾值的FFT計(jì)算點(diǎn)轉(zhuǎn)換為二維數(shù)據(jù)I×J;對(duì)于二維FFT計(jì)算點(diǎn),先對(duì)一維I點(diǎn)進(jìn)行基4FFT碟形計(jì)算,然后對(duì)于二維J點(diǎn)或者點(diǎn)數(shù)小于閾值的FFT計(jì)算點(diǎn),若其能進(jìn)行純基4FFT碟形計(jì)算則對(duì)其進(jìn)行基4FFT碟形計(jì)算,否則對(duì)其先進(jìn)行基4FFT碟形計(jì)算再進(jìn)行基2FFT碟形計(jì)算。采用本發(fā)明的技術(shù)方案計(jì)算效率高,速度快。
文檔編號(hào)G06F17/14GK102567282SQ201010607219
公開(kāi)日2012年7月11日 申請(qǐng)日期2010年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者樊廣超 申請(qǐng)人:北京國(guó)睿中數(shù)科技股份有限公司