專利名稱:基于dif的基-2并行fft處理器及其處理方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信號與信息處理技術(shù)領(lǐng)域,涉及一種FFT處理器,尤其涉及一種基于DIF的基-2并行FFT處理器及其處理方法。
背景技術(shù):
FFT在數(shù)字信號處理領(lǐng)域有著非常廣泛的應(yīng)用,但長序列FFT運算量很大,實現(xiàn)比較困難。隨著高速器件的發(fā)展,關(guān)于如何快速實現(xiàn)長序列FFT這方面的研究很多,各種各樣的實現(xiàn)方法也相繼出現(xiàn)。例如使用多個專用芯片來構(gòu)成并行結(jié)構(gòu)以快速實現(xiàn)長序列FFT,但這種方法是基于專用芯片的,靈活性不足。近年來FPGA器件發(fā)展迅速,其可編程重構(gòu)特性使得它在許多領(lǐng)域得到了越來越廣泛的應(yīng)用。Xilinx公司Virtex-II系列FPGA內(nèi)部集成了大量專用乘法器(Block Multiplier)、大量塊RAM (Block RAM)以及豐富的邏輯門資源,這使得它非常適合實現(xiàn)FFT這種需要大量乘法器、大量塊RAM和寄存器的設(shè)計。理論上FFT算法有兩種,即按時間抽取法DIT(Decimation-In-Time)和按頻率抽取法(Decimation-In-Freqency),兩種算法沒有本質(zhì)上的區(qū)別,只是復(fù)數(shù)加減法與旋轉(zhuǎn)因子乘法的次序有區(qū)別,兩種方法的運算量是一樣的。但在實現(xiàn)方式上,兩者的蝶形運算結(jié)構(gòu)不同。為了提高長序列FFT的處理速度和系統(tǒng)吞吐量(Throughput),本發(fā)明分析并設(shè)計了一種基于DIF方法的適合于FPGA實現(xiàn)的并行FFT。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種基于DIF的基-2并行FFT處理器,該并行FFT處理器可線性提高處理速度;此外,本發(fā)明還提供一種基于DIF的基-2并行FFT處理器的處理方法,該方法也可以線性提高處理速度。為解決上述技術(shù)問題,本發(fā)明采用如下技術(shù)方案。一種基于DIF的基-2并行FFT處理器,包括并行FFT輸入運算器、旋轉(zhuǎn)因子模塊和FFT處理器;所述并行FFT輸入運算器包括2M路并行的加減法器、以及用以實現(xiàn)時序同步的延時單元,其中M為非負整數(shù);所述FFT處理器包括2m路并行的FFT IP核;2M路并行的加減法器與0路并行的FFT IP核對應(yīng)相連;每一路加減法器的輸出序列與旋轉(zhuǎn)因子模塊中的相應(yīng)旋轉(zhuǎn)因子相乘后均輸入給與自身對應(yīng)相連的一路FFT IP核;所述延時單元設(shè)置在并行FFT輸入運算器中的加減法器的輸入端、或/和輸出端。作為本發(fā)明的一種優(yōu)選方案,所述基于DIF的基-2并行FFT處理器的輸入序列長為K · 2M,其中K為正整數(shù),所述FFT IP核所處理的序列的長度為K。作為本發(fā)明的另一種優(yōu)選方案,所述旋轉(zhuǎn)因子模塊中存儲有旋轉(zhuǎn)因子查找表。一種基于DIF的基-2并行FFT處理器的處理方法,包括以下步驟步驟一,將長度為K· 2"點的序列x(n)平均分為2"組序列,即x(n), x(n+K),X (η+2Κ),…,X (η+ (2Μ_1)K),其中K為正整數(shù),M為非負整數(shù);
步驟二,將所述2m組序列同步輸入到并行FFT輸入運算器中,所述并行FFT輸入運算器包括2M路并行的加減法器;步驟三,將通過并行FFT輸入運算器計算得到的2M組加減結(jié)果乘以旋轉(zhuǎn)因子模塊中存儲的對應(yīng)的旋轉(zhuǎn)因子,獲得2M組乘積結(jié)果;步驟四,將所述2m組乘積結(jié)果分別輸入到長度為K的FFT IP核進行FFT處理,得到長度為K的FFT結(jié)果;把2m路的FFT結(jié)果首尾相連起來,即獲得輸入序列的FFT結(jié)果。作為本發(fā)明的一種優(yōu)選方案,所述基于DIF的基-2并行FFT處理器的輸入序列長為K · 2M,其中K為正整數(shù),所述FFT IP核所處理的序列的長度為K。作為本發(fā)明的另一種優(yōu)選方案,所述旋轉(zhuǎn)因子模塊中存儲有旋轉(zhuǎn)因子查找表。作為本發(fā)明的再一種優(yōu)選方案,所述并行FFT輸入運算器中的加減法器的輸入·端、或/和輸出端設(shè)有用以實現(xiàn)時序同步的延時單元。本發(fā)明的有益效果在于本發(fā)明所述的基于DIF的基-2并行FFT處理器將長序列分裂成短序列,并由多個FFT處理器并行實現(xiàn)短序列的FFT,從而線性提高了處理速度和系
統(tǒng)吞吐量。
圖I為本發(fā)明所述的基于DIF的基-2并行FFT處理器的結(jié)構(gòu)示意圖;圖2為實施例二所述的基于DIF的基-2并行FFT處理器的結(jié)構(gòu)示意圖;圖3為一個標(biāo)準(zhǔn)的按頻率抽取法(DIF)的N = 16點FFT運算流程圖。主要組件符號說明I、并行FFT輸入運算器;2、旋轉(zhuǎn)因子模塊;3、FFT處理器;11、加減法器;12、延時單元;31、FFT IP 核。
具體實施例方式下面結(jié)合附圖對本發(fā)明的具體實施方式
作進一步詳細說明。實施例一本實施例提供一種基于DIF的基-2并行FFT處理器,如圖I所示,包括并行FFT輸入運算器I、旋轉(zhuǎn)因子模塊2和FFT處理器3 ;所述并行FFT輸入運算器I包括2M路并行的加減法器11和延時單元12,其中M為非負整數(shù);所述FFT IP核3包括2M路并行的FFTIP核31 ;2m路并行的加減法器11與2m路并行的FFT IP核31 —一對應(yīng)相連;每一路加減法器11的輸出序列與旋轉(zhuǎn)因子模塊2中的相應(yīng)旋轉(zhuǎn)因子相乘后均輸入給與自身對應(yīng)相連的一路FFT IP核31。所述基于DIF的基-2并行FFT處理器的輸入序列長為K ·2Μ,其中K為正整數(shù),所述FFTIP核31所處理的序列的長度為K。所述旋轉(zhuǎn)因子模塊2中存儲有旋轉(zhuǎn)因子查找表。所述并行FFT輸入運算器I中的加減法器11的輸入端、或/和輸出端設(shè)有用以實現(xiàn)時序同步的延時單元12。所述基于DIF的基-2并行FFT處理器的處理方法為步驟一,將長度為K · 2Μ點的序列X (η)平均分為2Μ組序列,即χ (η),χ (η+Κ),X (n+2K),…,χ (η+ (2Μ_1) K),其中K為正整數(shù),M為非負整數(shù);步驟二,將所述2μ組序列同步輸入到并行FFT輸入運算器中,所述并行FFT輸入運算器包括2Μ路并行的加減法器;
步驟三,將通過并行FFT輸入運算器計算得到的2Μ組加減結(jié)果乘以旋轉(zhuǎn)因子模塊中存儲的對應(yīng)的旋轉(zhuǎn)因子,獲得2Μ組乘積結(jié)果;步驟四,將所述2μ組乘積結(jié)果分別輸入到長度為K的FFT IP核進行FFT處理,得到長度為K的FFT結(jié)果,把2Μ路的FFT結(jié)果首尾相連起來,即獲得輸入序列的FFT結(jié)果。其中FFT處理器包括2μ路并行的FFT IP核,每路FFT IP核處理一組乘積結(jié)果。實施例二本實施例提供了一種基于DIF的基-2并行FFT處理器,如圖2所示,其與實施例一的區(qū)別在于并行FFT輸入運算器包括4路并行的加減法器,F(xiàn)FT處理器包括4路并行的FFT IP核;基于DIF的基-2并行FFT處理器的輸入序列長為N。圖3顯示了一個標(biāo)準(zhǔn)的按頻率抽取法(DIF)的N = 16點FFT運算流程圖,其中前面兩級之后的數(shù)據(jù)流程在水平上明顯地分成四個獨立單元(如圖3中虛線所示),每個單元獨立地實現(xiàn)Ν/4點的FFT,從而構(gòu)成一個四路并行的結(jié)構(gòu)。因此,可以用四個Ν/4點的FFT單元來并行計算N點的FFT,即所謂并行結(jié)構(gòu)的FFT。然后設(shè)計一個特定結(jié)構(gòu)的運算電路來處理最初的兩級。下面對本實施例所述的基于DIF的基-2并行FFT處理器的設(shè)計過程進行詳細描述設(shè)計一個適合于FPGA實現(xiàn)的并行DIF方式FFT處理器的關(guān)鍵是設(shè)計前面提到的特定結(jié)構(gòu)的運算電路,而標(biāo)準(zhǔn)的FFT單元設(shè)計將不在這里闡述,本發(fā)明采用專用FFT IP核來實現(xiàn)短序列(長度為Ν/4)的FFT處理。對于長度為N的序列χ (η),設(shè)其對應(yīng)的FFT結(jié)果為N點序列X (w),那么有X(W) = YjX(Ti)W^nCl)
M=O其中,Wn= Ρ2π/Ν 即所謂的旋轉(zhuǎn)因子(twiddle-factor)。為了便于理解,按庫利-圖基算法把輸出序列X(k)按k分裂成奇偶兩組,即
N-IN/2-1N-IX(k) = Σ XinW^n = Σ + Σ
n=0n=0n=N/2
N/2-1N/2-1= Σ x(n)Kn + Σ χ(η + N/2)W^(n+N,2)
n=0n=0
N/2-1N/2-1= Σ Φ)Κ + Σ (-ifxin + Nnwt
n=0n=0(2)
—-2πΝ I,式(2)中,=e-#=(-1)*,所以有
N/2-1 r-,X(k) = Y4 x(n) + {-l)k x(n + NI2) W^n ,^ = 0,1,..…N(3)
n=0同樣,可以把k再細分成4組,SP
Ν/4-1Ν/4-1X(k) = Y4 x(nWNkn + γχ(η +N14WNk(n+N/4)
n=0n=0
權(quán)利要求
1.一種基于DIF的基-2并行FFT處理器,其特征在于包括并行FFT輸入運算器、旋轉(zhuǎn)因子模塊和FFT處理器;所述并行FFT輸入運算器包括2M路并行的加減法器、以及用以實現(xiàn)時序同步的延時單元,其中M為非負整數(shù);所述FFT處理器包括2m路并行的FFT IP核;2M路并行的加減法器與2M路并行的FFT IP核一一對應(yīng)相連;每一路加減法器的輸出序列與旋轉(zhuǎn)因子模塊中的相應(yīng)旋轉(zhuǎn)因子相乘后均輸入給與自身對應(yīng)相連的一路FFT IP核;所述延時單元設(shè)置在并行FFT輸入運算器中的加減法器的輸入端、或/和輸出端。
2.根據(jù)權(quán)利要求I所述的基于DIF的基-2并行FFT處理器,其特征在于所述基于DIF的基-2并行FFT處理器的輸入序列長為K · 2M,其中K為正整數(shù),所述FFT IP核所處理的序列的長度為K。
3.根據(jù)權(quán)利要求I所述的基于DIF的基-2并行FFT處理器,其特征在于所述旋轉(zhuǎn)因子模塊中存儲有旋轉(zhuǎn)因子查找表。
4.權(quán)利要求I所述的基于DIF的基-2并行FFT處理器的處理方法,其特征在于,包括以下步驟 步驟一,將長度為K· 2"點的序列x(n)平均分為2"組序列,即x(n),x(n+K),X (η+2Κ),…,X (η+ (2Μ_1)K),其中K為正整數(shù),M為非負整數(shù); 步驟二,將所述2Μ組序列同步輸入到并行FFT輸入運算器中,所述并行FFT輸入運算器包括2Μ路并行的加減法器; 步驟三,將通過并行FFT輸入運算器計算得到的2Μ組加減結(jié)果乘以旋轉(zhuǎn)因子模塊中存儲的對應(yīng)的旋轉(zhuǎn)因子,獲得2Μ組乘積結(jié)果; 步驟四,將所述2Μ組乘積結(jié)果分別輸入到長度為K的FFT IP核進行FFT處理,得到長度為K的FFT結(jié)果;把2μ路的FFT結(jié)果首尾相連起來,即獲得輸入序列的FFT結(jié)果。
5.根據(jù)權(quán)利要求4所述的基于DIF的基-2并行FFT處理器的處理方法,其特征在于所述基于DIF的基-2并行FFT處理器的輸入序列長為K ·2Μ,其中K為正整數(shù),所述FFT IP核所處理的序列的長度為K。
6.根據(jù)權(quán)利要求4所述的基于DIF的基-2并行FFT處理器的處理方法,其特征在于所述旋轉(zhuǎn)因子模塊中存儲有旋轉(zhuǎn)因子查找表。
7.根據(jù)權(quán)利要求4所述的基于DIF的基-2并行FFT處理器的處理方法,其特征在于所述并行FFT輸入運算器中的加減法器的輸入端、或/和輸出端設(shè)有用以實現(xiàn)時序同步的延時單元。
全文摘要
本發(fā)明公開了一種基于DIF的基-2并行FFT處理器及其處理方法,該處理器包括并行FFT輸入運算器、旋轉(zhuǎn)因子模塊和FFT處理器;所述并行FFT輸入運算器包括2M路并行的加減法器、以及用以實現(xiàn)時序同步的延時單元,其中M為非負整數(shù);所述FFT處理器包括2M路并行的FFTIP核;2M路并行的加減法器與2M路并行的FFTIP核一一對應(yīng)相連;每一路加減法器的輸出序列與旋轉(zhuǎn)因子模塊中的相應(yīng)旋轉(zhuǎn)因子相乘后均輸入給與自身對應(yīng)相連的一路FFTIP核;所述延時單元設(shè)置在并行FFT輸入運算器中的加減法器的輸入端、或/和輸出端。本發(fā)明所述的基于DIF的基-2并行FFT處理器將長序列分裂成短序列,并由多個FFTIP核并行實現(xiàn)短序列的FFT,線性提高了處理速度和系統(tǒng)吞吐量。
文檔編號G06F17/14GK102955760SQ201110243249
公開日2013年3月6日 申請日期2011年8月23日 優(yōu)先權(quán)日2011年8月23日
發(fā)明者黃正 申請人:上海華魏光纖傳感技術(shù)有限公司