一種并行快速傅立葉變換處理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及FFT處理器設(shè)計(jì)技術(shù)領(lǐng)域,特別涉及一種并行快速傅立葉變換處理方 法。
【背景技術(shù)】
[0002] 快速傅立葉變換是通信、雷達(dá)系統(tǒng)中數(shù)字信號(hào)處理過程的關(guān)鍵組成,用來實(shí)現(xiàn)數(shù) 字信號(hào)在時(shí)域和頻域之間的變換。它在實(shí)際應(yīng)用中能夠?qū)崿F(xiàn)諸如頻譜分析、數(shù)字濾波、相關(guān) 處理等功能。
[0003] 當(dāng)前,多蝶形并行計(jì)算快速傅立葉變換基本采用原位存儲(chǔ)下的基2、基4結(jié)構(gòu)實(shí)現(xiàn), 主要包括存儲(chǔ)器訪問地址生成、無沖突數(shù)據(jù)交換、蝶形計(jì)算等步驟。無沖突數(shù)據(jù)交換過程 中,如果采用加入額外緩存的方法,會(huì)使得緩存的占用量隨著點(diǎn)數(shù)的增加而增加,同時(shí)大量 緩存的讀寫操作會(huì)增加整個(gè)計(jì)算的時(shí)間。目前多蝶形并行計(jì)算快速傅立葉變換中,多采用 存儲(chǔ)器無沖突訪問地址生成模塊,由此抵消掉蝶形計(jì)算前數(shù)據(jù)訪問過程中產(chǎn)生的沖突,在 無沖突訪問存儲(chǔ)器的條件下進(jìn)行多蝶形并行計(jì)算。
[0004] 北京理工大學(xué)CN101504638號(hào)專利公開了一種可變點(diǎn)數(shù)流水線FFT處理器,該發(fā)明 是一種可變點(diǎn)數(shù)流水線FFT處理器,包括第一 1024點(diǎn)可變FFT處理模塊、旋轉(zhuǎn)因子處理模塊、 第二1024點(diǎn)可變FFT處理模塊、選擇與控制模塊。上述四個(gè)模塊與處理器外部的中間數(shù)據(jù)存 儲(chǔ)模塊共同完成大點(diǎn)數(shù)FFT的二維處理。中興通訊股份有限公司CN101847986A號(hào)專利公開 了一種實(shí)現(xiàn)FFT/IFFT變換的電路及方法,方法為:確定迭代次數(shù)、第一和第二RAM的深度、 ROM存儲(chǔ)器的深度;將待變換的輸入數(shù)據(jù)的前和后半部分分別存入第二和第一 RAM;進(jìn)行迭 代蝶形運(yùn)算:第首次迭代中,讀取第一和第二RAM時(shí)采用倒位序讀取,偶數(shù)次蝶形運(yùn)算結(jié)果 寫入第一RAM,奇數(shù)次蝶形運(yùn)算結(jié)果寫入第二RAM;在其他迭代中,采用正常位序讀取第一和 第二RAM,寫回RAM的方式與第一次相同;最后一次迭代采用正常順序來訪問存儲(chǔ)器。
[0005] 上述方法主要存在以下問題:
[0006] (1)基數(shù)的單一性影響了實(shí)際應(yīng)用中傅里葉變換點(diǎn)數(shù)的選擇
[0007] 現(xiàn)有技術(shù)中的快速傅里葉變換在基2、基4相對(duì)應(yīng)的點(diǎn)數(shù)選擇時(shí),最多需要補(bǔ)足一 倍的零以此來達(dá)到長(zhǎng)度為2的冪次方的條件。這就使得在計(jì)算過程中增加一倍的存儲(chǔ)空間 和一倍以上的計(jì)算時(shí)間。
[0008] (2)基數(shù)的單一性影響了實(shí)際應(yīng)用中蝶形計(jì)算單元并行度的選擇
[0009] 現(xiàn)有技術(shù)中,由于基數(shù)是2的冪次方,蝶形計(jì)算單元的并行度也要是2的冪次方才 能達(dá)到計(jì)算效率最高。而在實(shí)際應(yīng)用中硬件資源可能達(dá)不到這樣的要求,這種情況下采用 降低并行度滿足設(shè)計(jì)要求則會(huì)顯著降低系統(tǒng)計(jì)算的性能。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種并行快速傅立葉變換處理器及 處理方法,可以實(shí)現(xiàn)。
[0011] 本發(fā)明的上述目的通過以下方案實(shí)現(xiàn):
[0012] 一種并行快速傅立葉變換處理方法,包括如下步驟:
[0013] ⑴、對(duì)接收到的數(shù)據(jù)序列x(n)進(jìn)行第一級(jí)數(shù)據(jù)分組,即將 N個(gè)數(shù)據(jù)劃分為v個(gè)一級(jí) 數(shù)據(jù)塊,每個(gè)所述一級(jí)數(shù)據(jù)塊包括個(gè)數(shù)據(jù);其中,第ri2個(gè)一級(jí)數(shù)據(jù)塊中第m個(gè)數(shù)據(jù)為X'
、…或S-2, S和r為整數(shù);
[0014] (2)、對(duì)步驟(1)劃分的各一級(jí)數(shù)據(jù)塊進(jìn)行第二級(jí)數(shù)據(jù)分組,即將每個(gè)一級(jí)數(shù)據(jù)塊 劃分為r個(gè)二級(jí)數(shù)據(jù)塊,每個(gè)所述二級(jí)數(shù)據(jù)塊包括-個(gè)數(shù)據(jù);其中,第n2個(gè)一級(jí)數(shù)據(jù)塊劃分
的第n'2個(gè)二級(jí)數(shù)據(jù)塊中的第n'i個(gè)數(shù)據(jù)x〃(n'i,n'2,n2)=x / (n'ir + n'2,n2),
[0015] (3)、對(duì)每個(gè)二級(jí)數(shù)據(jù)塊中的個(gè)數(shù)據(jù)進(jìn)行-點(diǎn)FFT計(jì)算;其中第n2個(gè)一級(jí)數(shù)據(jù)塊
劃分的第n'2個(gè)二級(jí)數(shù)據(jù)塊中的
個(gè)數(shù)據(jù)FFT計(jì)算結(jié)果為
其中
[0016] (4)、將每個(gè)一級(jí)數(shù)據(jù)塊中的r個(gè)二級(jí)數(shù)據(jù)塊的FFT計(jì)算結(jié)果進(jìn)行合并,得到每個(gè)一 級(jí)數(shù)據(jù)塊的FFT計(jì)算結(jié)果;其中,第n2個(gè)一級(jí)數(shù)據(jù)塊中的個(gè)數(shù)據(jù)的FFT計(jì)算結(jié)果為
:,其中,A =〇 .、1、色-"n2 = 〇、l、…、v-1, V
[0017] (5)、將V個(gè)一級(jí)數(shù)據(jù)塊的FFT計(jì)算結(jié)果進(jìn)行合并,得至丨撒據(jù)序列義⑷的喊種!'計(jì)算 結(jié)果
,其中,k=〇、l、…、N_l,WN = e-j2ii/n。
[0018] 上述的并行快速傅立葉變換處理方法,在步驟(2)中,采用vr個(gè)I點(diǎn)的雙口存儲(chǔ)器 VV 存放vr個(gè)二級(jí)數(shù)據(jù)塊的數(shù)據(jù);所述vr個(gè)雙口存儲(chǔ)器分為V個(gè)存儲(chǔ)器組,對(duì)應(yīng)于V個(gè)一級(jí)數(shù)據(jù) 塊;每個(gè)所述存儲(chǔ)器組中包括r個(gè)雙口存儲(chǔ)器,對(duì)應(yīng)于1個(gè)一級(jí)數(shù)據(jù)塊中的r個(gè)二級(jí)數(shù)據(jù)塊; 其中采用一個(gè)S位r進(jìn)制計(jì)數(shù)器得到序列x(n)中每個(gè)數(shù)據(jù)的存儲(chǔ)地址,即確定序列x(n)中第 n個(gè)數(shù)據(jù)保存在第Group_Id(n)個(gè)存儲(chǔ)器組中的第Ram_Id(n)個(gè)存儲(chǔ)器中的存儲(chǔ)地址序號(hào) Add_ID(n),n = 0、l、…、N-1,具體實(shí)現(xiàn)方法如下:
[0019] 所述計(jì)數(shù)器的計(jì)數(shù)值n的r進(jìn)制數(shù)值為(as-ias-2...az+iazaz-i...aia〇) r,其中a〇~as-1為 所述r進(jìn)制數(shù)值第1位~第S位的數(shù)字,所述數(shù)字的取值范圍為0~r-1,則存儲(chǔ)器組序號(hào) Group_Id(n)的r進(jìn)制數(shù)值為(az-r"aia〇)r,存儲(chǔ)器序號(hào)Ram_Id(n)的r進(jìn)制數(shù)值為(az)i?,存 儲(chǔ)地址序號(hào)Add_ID(n)的r進(jìn)制數(shù)值為(as-ias-2'"az+i)r。
[0020] 上述的并行快速傅立葉變換處理方法,在步驟(3)中,采用基r FFT計(jì)算得到每個(gè) 二級(jí)數(shù)據(jù)塊中的個(gè)數(shù)據(jù)的FFT結(jié)果;在步驟(4)中采用基r FFT計(jì)算對(duì)每個(gè)一級(jí)數(shù)據(jù)塊中
的r個(gè)二級(jí)數(shù)據(jù)塊的FFT計(jì)算結(jié)果進(jìn)行合并;在步驟(5)中采用基v FFT計(jì)算對(duì)v個(gè)一級(jí)數(shù)據(jù) 塊的FFT計(jì)算結(jié)果進(jìn)行合并。
[0021] 上述的并行快速傅立葉變換處理方法,在步驟(3)中,采用v個(gè)基r蝶形單元對(duì)vr個(gè) 二級(jí)數(shù)據(jù)塊進(jìn)行基r FFT計(jì)算,每個(gè)一級(jí)數(shù)據(jù)塊中的r個(gè)二級(jí)數(shù)據(jù)塊通過時(shí)分復(fù)用系統(tǒng)共用 1個(gè)基r蝶形計(jì)算單元;所述時(shí)分復(fù)用系統(tǒng)包括r個(gè)串并轉(zhuǎn)換模塊、第一級(jí)選通控制單元、基r 蝶形計(jì)算單元、第二級(jí)選通控制單元和r個(gè)并串轉(zhuǎn)換模塊,其中:
[0022] r個(gè)串并轉(zhuǎn)換模塊:與一個(gè)一級(jí)數(shù)據(jù)塊中的r個(gè)二級(jí)數(shù)據(jù)塊--對(duì)應(yīng);分別從r個(gè)二 級(jí)數(shù)據(jù)塊的存儲(chǔ)器中讀取數(shù)據(jù),得到r路串行數(shù)據(jù),其中每路串行數(shù)據(jù)包括
個(gè)數(shù)據(jù)點(diǎn);然 后每個(gè)串并轉(zhuǎn)換模塊對(duì)相應(yīng)的串行數(shù)據(jù)進(jìn)行串并轉(zhuǎn)換,將串行的
個(gè)數(shù)據(jù)點(diǎn)轉(zhuǎn)換為r路并 行數(shù)據(jù),每路并行數(shù)據(jù)包括
個(gè)數(shù)據(jù)點(diǎn);
[0023] 第一級(jí)選通控制單元:對(duì)r個(gè)串并轉(zhuǎn)換模塊輸出的并行數(shù)據(jù)進(jìn)行選通操作,每次選 通其中1個(gè)串并轉(zhuǎn)換模塊輸出的r路并行數(shù)據(jù),然后將所述 r路并行數(shù)據(jù)輸出到基4棠形計(jì)算 單元;
[0024] 基r蝶形計(jì)算單元:接收r路并行數(shù)據(jù)進(jìn)行基r FFT計(jì)算,輸出r路并行計(jì)算結(jié)果到 第二級(jí)通道選通控制單元;
[0025]第二級(jí)選通控制單元:在r個(gè)并串轉(zhuǎn)換模塊之間進(jìn)行選通,將接收到的r路并行FFT 計(jì)算結(jié)果輸出到其中1個(gè)并串轉(zhuǎn)換模塊,選通的并串轉(zhuǎn)換模塊序號(hào)與第一級(jí)選通控制單元 選通的串并轉(zhuǎn)換模塊序號(hào)一致;
[0026] r個(gè)并串轉(zhuǎn)換模塊:與一個(gè)一級(jí)數(shù)據(jù)塊中的r個(gè)二級(jí)數(shù)據(jù)塊--對(duì)應(yīng);經(jīng)第二級(jí)選 通控制單元選通后的并串轉(zhuǎn)換模塊,接收r路并行FFT計(jì)算結(jié)果,進(jìn)行并串變換1路串行數(shù) 據(jù),將所述串行數(shù)據(jù)保存在對(duì)應(yīng)的二級(jí)數(shù)據(jù)塊的存儲(chǔ)器內(nèi),存儲(chǔ)位置與串并轉(zhuǎn)換模塊讀取 數(shù)據(jù)的位置一致,即實(shí)現(xiàn)原位存儲(chǔ)。
[0027] 本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):
[0028] (1)、在現(xiàn)有技術(shù)中限定FFT變換的數(shù)據(jù)點(diǎn)數(shù)N為2的冪次方,而本發(fā)明采用基r快速 傅立葉變換,進(jìn)行FFT變換的數(shù)據(jù)點(diǎn)數(shù)N = rs,其中r和S為任意整數(shù),因此本發(fā)明的數(shù)據(jù)點(diǎn)數(shù) N具有更多的取值,可以在這些取值中選擇補(bǔ)零最少的方案,從而減少對(duì)存儲(chǔ)空間和計(jì)算時(shí) 間的占用;
[0029] (2)、本發(fā)明采用多蝶形并行計(jì)算,且并行蝶形計(jì)算單元的個(gè)數(shù)v = rz,其中z = 0、 1、…、S-2,r和S為任意整數(shù),因此本發(fā)明可以