專利名稱:一種fft/dft的倒序排列系統(tǒng)與方法及其運(yùn)算系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域技術(shù),尤其涉及一種FFT/DFT的倒序排列系統(tǒng)與方法及其運(yùn)算系統(tǒng)。
背景技術(shù):
快速傅立葉變換FFT (Fast Fourier Transformation)及離散傅里葉變換DFT廣泛應(yīng)用于信號(hào)處理、通信系統(tǒng)中,尤其是涉及正交頻分復(fù)用技術(shù)(Orthogonal FrequencyDivision Multiplexing, OFDM)的 LTE (Long Term Evolution,長(zhǎng)期演進(jìn)),數(shù)字音頻廣播(Digital Audio Broadcast, DAB)等通信系統(tǒng)中。傳統(tǒng)的FFT/DFT算法,無(wú)論是時(shí)間抽取(DIT)還是頻率抽取(DIF)算法,都需要對(duì)輸入或者輸出數(shù)據(jù)進(jìn)行一次專門(mén)的倒序操作,并且無(wú)論是DIT算法還是DIF算法,在矢量處理器中實(shí)現(xiàn)時(shí)都需要在矢量處理單元引入一定的交叉連線,否則無(wú)法充分發(fā)揮矢量處理器的效率,導(dǎo)致功耗的增加。如圖1所示,為16點(diǎn)正序輸入的FFT時(shí)間抽取算法的流程圖,如果直接在4個(gè)DIT蝶形的矢量處理器中實(shí)現(xiàn),最高的效率是每級(jí)FFT兩次矢量蝶形運(yùn)算完成,從圖2可以看到最后兩級(jí)FFT需要引入交叉連線才能充分利用所有4個(gè)蝶形,否則無(wú)法充分發(fā)揮矢量處理器的效率,尤其是最后一級(jí)每次只能計(jì)算一個(gè)蝶形,導(dǎo)致效率的大大降低,增加功耗。另一方面,交叉連線的引入雖然可以提高運(yùn)算的效率,但是在計(jì)算單元較多時(shí)連線的數(shù)量龐大,譬如在矢量計(jì)算單元有16個(gè)DIT單元時(shí),那么FFT運(yùn)算在最后四級(jí)都需要引入交叉連線,而交叉連線總數(shù)高達(dá)4000(如果數(shù)據(jù)位寬為16),大量交叉連線導(dǎo)致充放電的電流增加,功耗增加。另外,除了上述交叉連線的問(wèn)題,標(biāo)準(zhǔn)FFT/DFT算法在蝶形運(yùn)算之外還需要一次專門(mén)的數(shù)據(jù)倒序操作。數(shù)據(jù)的倒序可以采用串行或并行的方式進(jìn)行,串行方式可以用軟件或硬件計(jì)算每個(gè)數(shù)據(jù)倒序后的地址,這種方式倒序需要消耗大量時(shí)間,在矢量蝶形單元較多時(shí),倒序時(shí)間可能是數(shù)倍于蝶形運(yùn)算消耗的時(shí)間,導(dǎo)致矢量處理器效率低下。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種FFT/DFT的倒序排列系統(tǒng)與方法及其運(yùn)算系統(tǒng),能夠快速并行完成FFT/DFT運(yùn)算中的倒序排列。本發(fā)明實(shí)施例提供了一種FFT/DFT的倒序系統(tǒng),包括:信號(hào)控制裝置以及倒序裝置; 所述信號(hào)控制裝置,用于獲取各點(diǎn)待倒序的數(shù)據(jù)對(duì)應(yīng)的控制信號(hào),并向所述倒序裝置發(fā)送所述控制信號(hào),以使所述倒序裝置按照接收到的所述控制信號(hào)進(jìn)行各點(diǎn)數(shù)據(jù)倒序;其中所述控制信號(hào)根據(jù)特定倒序規(guī)則設(shè)置,所述特定倒序規(guī)則為:根據(jù)待倒序的數(shù)據(jù)的點(diǎn)數(shù)N = Pn/" Pi…P2P1,判斷出該點(diǎn)數(shù)為按基pm、…基Pp…基P2、基P1的順序進(jìn)行m級(jí)FFT//DFT倒序排列,對(duì)第m-1級(jí)的數(shù)據(jù)進(jìn)行倒序時(shí),將相鄰的PniP111VPw作為一個(gè)數(shù)據(jù)組,將數(shù)據(jù)對(duì)應(yīng)的地址比特表示為(V..C2C1,其第i位Ci按取值從上到下分為Pi個(gè)部分,以所述數(shù)據(jù)組為單位交替排列;所述倒序裝置,用于根據(jù)接收到的所述控制信號(hào),將所述待倒序數(shù)據(jù)進(jìn)行倒序。較佳的,所述信號(hào)控制裝置中存儲(chǔ)有控制信號(hào)查找表,通過(guò)所述控制信號(hào)查找表查找出對(duì)應(yīng)所述待倒序數(shù)據(jù)的控制信號(hào),并發(fā)出。進(jìn)一步,所述系統(tǒng)還包括:控制信號(hào)查找表存儲(chǔ)裝置;所述信號(hào)控制裝置從所述控制信號(hào)查找表存儲(chǔ)裝置中獲取存儲(chǔ)的控制信號(hào)查找表,通過(guò)所述控制信號(hào)查找表查找出對(duì)應(yīng)所述待倒序數(shù)據(jù)的控制信號(hào),并發(fā)出。進(jìn)一步,所述倒序裝置,還包括:控制信號(hào)處理單元、存儲(chǔ)單元和交換單元;所述控制信號(hào)處理單元,用于接收所述信號(hào)控制裝置發(fā)出的控制信號(hào),并將該控制信號(hào)發(fā)送給對(duì)應(yīng)的交換單元;所述存儲(chǔ)單元,用于存儲(chǔ)各點(diǎn)待倒序數(shù)據(jù);所述交換單元,用于實(shí)現(xiàn)兩個(gè)存儲(chǔ)單元中存儲(chǔ)的對(duì)應(yīng)待倒序數(shù)據(jù)的交換。較佳的,所述交換單元組成多級(jí)網(wǎng)狀結(jié)構(gòu),級(jí)數(shù)由矢量處理器存取數(shù)據(jù)的寬度決定;每級(jí)交換單元的數(shù)量相同;每級(jí)所述交換單元的數(shù)量由矢量處理器運(yùn)算單元個(gè)數(shù)決定。較佳的,每級(jí)所述交換單元的數(shù)量由矢量處理器運(yùn)算單元個(gè)數(shù)決定,具體為:所述矢量處理器運(yùn)算單元個(gè)數(shù)為n,則每級(jí)交換單元的個(gè)數(shù)為n/2。較佳的,所述交換單元具體包括:兩個(gè)多路選擇器;每個(gè)多路選擇器的控制信號(hào)輸入端,用于輸入與兩點(diǎn)待倒序的數(shù)據(jù)對(duì)應(yīng)的控制信號(hào);每個(gè)多路選擇器的兩個(gè)數(shù)據(jù)輸入端,分別連接兩點(diǎn)待倒序數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)單元,根據(jù)輸入的所述控制信號(hào),將輸入的兩點(diǎn)數(shù)據(jù)進(jìn)行交換或者直通。本發(fā)明還提供一種FFT/DFT運(yùn)算系統(tǒng),包括:矢量運(yùn)算裝置、矢量寄存器以及存儲(chǔ)器,所述矢量運(yùn)算裝置將每級(jí)FFT/DFT運(yùn)算后的數(shù)據(jù)發(fā)送到所述矢量寄存器緩存,所述矢量寄存器緩存的數(shù)據(jù)被倒序后發(fā)送給所述存儲(chǔ)器,還包括:所述的倒序系統(tǒng);所述倒序系統(tǒng),用于將所述矢量運(yùn)算裝置每級(jí)FFT/DFT運(yùn)算后緩存到所述矢量寄存器的數(shù)據(jù),進(jìn)行倒序后發(fā)送給所述存儲(chǔ)器;所述存儲(chǔ)器,用于存儲(chǔ)每級(jí)通過(guò)所述倒序系統(tǒng)倒序后的數(shù)據(jù),并將下一級(jí)需要運(yùn)算的數(shù)據(jù)發(fā)送給所述 矢量寄存器緩存,等待下一級(jí)FFT/DFT運(yùn)算。本發(fā)明還提供一種FFT/DFT的倒序方法,該方法包括:存儲(chǔ)待倒序的數(shù)據(jù);根據(jù)待倒序的數(shù)據(jù)的點(diǎn)數(shù)N = pm...Pi…P2P1,判斷出該點(diǎn)數(shù)為按基pm、…基Pp...基P2、基P1的順序進(jìn)行m級(jí)FFT//DFT倒序排列,倒序規(guī)則為:對(duì)第m_i級(jí)的數(shù)據(jù)進(jìn)行倒序時(shí),將相鄰的P111PniVPw作為一個(gè)數(shù)據(jù)組,將數(shù)據(jù)對(duì)應(yīng)的地址比特表示為C/..C2C1,其第i位Ci按取值從上到下分為Pi個(gè)部分,以所述數(shù)據(jù)組為單位交替排列。進(jìn)一步,在首次獲得待倒序的數(shù)據(jù)時(shí),將運(yùn)算級(jí)初始化為O ;每次接收下一級(jí)倒序數(shù)據(jù)后,將運(yùn)算級(jí)加I。進(jìn)一步,在進(jìn)行每級(jí)倒序排列時(shí),通過(guò)存儲(chǔ)的控制信號(hào)查找表,查找出對(duì)應(yīng)所述待倒序數(shù)據(jù)的控制信號(hào),根據(jù)所述待倒序數(shù)據(jù)的對(duì)應(yīng)控制信號(hào)完成本級(jí)倒序排列,經(jīng)過(guò)m次蝶形運(yùn)算和m-Ι次排序,完成FFT/DFT運(yùn)算。本發(fā)明與現(xiàn)有技術(shù)相比具有以下優(yōu)點(diǎn):本發(fā)明實(shí)施例提供了一種FFT/DFT的倒序排列系統(tǒng)與方法及其運(yùn)算系統(tǒng),F(xiàn)FT/DFT倒序通過(guò)矢量流水線數(shù)據(jù)通路中的硬件排序網(wǎng)絡(luò)中的交換單元進(jìn)行,在每級(jí)蝶形運(yùn)算之后通過(guò)控制流水線中的倒序裝置對(duì)數(shù)據(jù)進(jìn)行排序,以解決采用矢量處理器計(jì)算FFT/DFT時(shí),F(xiàn)FT/DFT倒序排列時(shí)間過(guò)長(zhǎng),矢量處理器利用效率低下的問(wèn)題,可以提高FFT/DFT的矢量計(jì)算效率。
圖1為現(xiàn)有技術(shù)16點(diǎn)正序輸入的FFT時(shí)間抽取流程圖;圖2為圖1中在四個(gè)DIT蝶形矢量處理器中需要的交叉線布圖;圖3為本發(fā)明實(shí)施例倒序排列系統(tǒng)的結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例運(yùn)算系統(tǒng)的結(jié)構(gòu)示意圖;圖5為本發(fā)明實(shí)施例方法的流程示意圖;圖6為本發(fā)明實(shí)施例一倒序裝置的結(jié)構(gòu)示意圖;圖7為本發(fā)明實(shí)施例一中交換單元的結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例二 16點(diǎn)FFT的迭代倒序的規(guī)則
圖9為本發(fā)明實(shí)施例三中24點(diǎn)DFT的迭代倒序的規(guī)則圖;圖10為本發(fā)明實(shí)施例四16點(diǎn)數(shù)據(jù)在級(jí)間進(jìn)行排序的流程圖;圖11為本發(fā)明實(shí)施例五24點(diǎn)數(shù)據(jù)在級(jí)間進(jìn)行排序的流程圖;圖12為本發(fā)明實(shí)施例六中具有16個(gè)DIT蝶形單元排序的流程圖;圖13為本發(fā)明實(shí)施例六中的第一級(jí)數(shù)據(jù)通路結(jié)構(gòu)圖;圖14為本發(fā)明實(shí)施例六中的第二級(jí)數(shù)據(jù)通路結(jié)構(gòu)圖;圖15為本發(fā)明實(shí)施例六中的第三級(jí)數(shù)據(jù)通路結(jié)構(gòu)圖;圖16為本發(fā)明實(shí)施例六中的第四級(jí)數(shù)據(jù)通路結(jié)構(gòu)圖。
具體實(shí)施例方式下面結(jié)合各個(gè)附圖對(duì)本發(fā)明實(shí)施例技術(shù)方案的主要實(shí)現(xiàn)原理具體實(shí)施方式
及其對(duì)應(yīng)能夠達(dá)到的有益效果進(jìn)行詳細(xì)地闡述。如圖3所示,為本發(fā)明實(shí)施例倒序排列系統(tǒng)的結(jié)構(gòu)示意圖,包括:信號(hào)控制裝置31以及倒序裝置32 ;信號(hào)控制裝置31,用于獲取各點(diǎn)待倒序的數(shù)據(jù)對(duì)應(yīng)的控制信號(hào),并向倒序裝置32發(fā)送所述控制信號(hào),以使所述倒序裝置32按照接收到的所述控制信號(hào)進(jìn)行各點(diǎn)數(shù)據(jù)倒序;其中所述控制信號(hào)根據(jù)特定倒序規(guī)則設(shè)置,所述特定倒序規(guī)則為:根據(jù)待倒序數(shù)據(jù)的點(diǎn)數(shù)N = PfPi…P2P1,判斷出該點(diǎn)數(shù)為按基Pm、…基P1、…基P2、基Pi的順序進(jìn)行m級(jí)FFT//DFT倒序排列,對(duì)第m-1級(jí)的數(shù)據(jù)進(jìn)行倒序時(shí),將相鄰的PniPniVPw作為一個(gè)數(shù)據(jù)組,將數(shù)據(jù)對(duì)應(yīng)的地址比特表示為(VC2C1,其第i位Ci按取值從上到下分為Pi個(gè)部分,以所述數(shù)據(jù)組為單位交替排列;
倒序裝置32,用于根據(jù)接收到的所述控制信號(hào),將所述待倒序數(shù)據(jù)進(jìn)行倒序。如圖4所示,為本發(fā)明實(shí)施例運(yùn)算系統(tǒng)的結(jié)構(gòu)示意圖,包括:矢量運(yùn)算裝置41、矢量寄存器42以及存儲(chǔ)器43,矢量運(yùn)算裝置41將每級(jí)FFT/DFT運(yùn)算后的數(shù)據(jù)發(fā)送到矢量寄存器42緩存,矢量寄存器42緩存的數(shù)據(jù)被倒序后發(fā)送給存儲(chǔ)器43,還包括:倒序系統(tǒng)44 ;倒序系統(tǒng)44,用于將所述矢量運(yùn)算裝置41每級(jí)FFT/DFT運(yùn)算后緩存到所述矢量寄存器42的數(shù) 據(jù),進(jìn)行倒序后發(fā)送給所述存儲(chǔ)器43 ;存儲(chǔ)器43,用于存儲(chǔ)每級(jí)通過(guò)所述倒序系統(tǒng)44倒序后的數(shù)據(jù),并將下一級(jí)需要運(yùn)算的數(shù)據(jù)發(fā)送給所述矢量寄存器42緩存,等待下一級(jí)FFT/DFT運(yùn)算。如圖5所示,為本發(fā)明實(shí)施例方法的流程示意圖,包括以下步驟:步驟1:存儲(chǔ)待倒序的數(shù)據(jù);步驟2:根據(jù)待倒序的數(shù)據(jù)的點(diǎn)數(shù)N = pm...Pi...P2P1,判斷出該點(diǎn)數(shù)為按基Pm、…基Ρ 、...$Ρ2、基P1的順序進(jìn)行m級(jí)FFT//DFT倒序排列,倒序規(guī)則為:對(duì)第m_i級(jí)的數(shù)據(jù)進(jìn)行倒序時(shí),將相鄰的PJVf pi+1作為一個(gè)數(shù)據(jù)組,將數(shù)據(jù)對(duì)應(yīng)的地址比特表示為CfC2C1,其第i位Ci按取值從上到下分為Pi個(gè)部分,以所述數(shù)據(jù)組為單位交替排列。如圖6所示,為本發(fā)明實(shí)施例一倒序裝置的結(jié)構(gòu)示意圖,每個(gè)黑點(diǎn)代表一個(gè)交換單元,其中包括5級(jí)交換單元,每級(jí)交換單元的數(shù)量為16個(gè),通過(guò)32個(gè)腳碼器存放待倒序的數(shù)據(jù),各點(diǎn)數(shù)據(jù)可以直通輸出,也可以交叉輸出。具體通路是根據(jù)交換單元接收到的控制信號(hào)來(lái)控制。如圖7所示為交換單元的結(jié)構(gòu)示意圖,包括:兩個(gè)多路選擇器;每個(gè)多路選擇器的控制信號(hào)輸入端ctl,用于輸入與兩點(diǎn)待倒序的數(shù)據(jù)對(duì)應(yīng)的控制信號(hào);每個(gè)多路選擇器的兩個(gè)數(shù)據(jù)輸入端in0、inl,分別連接兩點(diǎn)待倒序數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)單元,根據(jù)輸入的所述控制信號(hào),將輸入的兩點(diǎn)數(shù)據(jù)進(jìn)行交換,并通過(guò)其輸出端outO、outl輸出交換后的兩點(diǎn)數(shù)據(jù)。如圖8所示,為本發(fā)明實(shí)施例二 16點(diǎn)FFT的迭代倒序的規(guī)則圖,其過(guò)程為:16個(gè)數(shù)據(jù)用4個(gè)地址比特C4C3C2C1表示,從左至右,每次對(duì)數(shù)據(jù)進(jìn)行一次排序,使得4個(gè)地址比特每次新增一個(gè)比特與最終倒序結(jié)果一致。第一次排序使C4與倒序后的地址排列一致,其過(guò)程通過(guò)將數(shù)據(jù)分為C4 = O的上半部和C4 = I的下半部,而后將上半部和下半部交替排列實(shí)現(xiàn)。第二次排序使C3與倒序后的地址排列一致,為了保證已經(jīng)排列好的C4不受影響,將相鄰的C4分別為O和I的數(shù)據(jù)兩兩視為一個(gè)數(shù)據(jù)組,以數(shù)據(jù)組為單位對(duì)數(shù)據(jù)進(jìn)行排序,其過(guò)程與C4排序過(guò)程類似,同樣將數(shù)據(jù)分為C3 = O的上半部和C3 = I下半部,而后將上半部和下半部的數(shù)據(jù)以數(shù)據(jù)組為單位交替排列實(shí)現(xiàn)。第三次排序使C2與倒序后的地址排列一致,為了保證已經(jīng)排列好的C4C3不受影響,將相鄰的C4C3分別為00、01、10、11的數(shù)據(jù)視為一個(gè)數(shù)據(jù)組,以數(shù)據(jù)組為單位對(duì)數(shù)據(jù)進(jìn)行排序,同樣將數(shù)據(jù)分為C2 = O的上半部和C2 = I下半部,而后將上半部和下半部的數(shù)據(jù)以數(shù)據(jù)組為單位交替排列實(shí)現(xiàn),此時(shí)C1的排列順序與倒序后C1的排列順序自動(dòng)一致,完成倒序。如圖9所示,為本發(fā)明實(shí)施例三中24點(diǎn)DFT的迭代倒序的規(guī)則圖,以按基2、2、3、2的順序計(jì)算的24點(diǎn)DFT的迭代倒序過(guò)程:設(shè)其地址混合基表示為C4C3C2C1 (c4,c3, C1每逢2進(jìn)l,c2每逢3進(jìn)I),第一次排序使C4順序與倒序后的地址排列一致,其排序過(guò)程與上面的16點(diǎn)FFT類似。第二次排序使C3順序與倒序后的地址排列一致,其排序過(guò)程與上面的16點(diǎn)FFT類似。第三次排序使C2順序與倒序后的地址排列一致,其排序過(guò)程為將相鄰的C4C3分別為00、01、10、11的數(shù)據(jù)視為一個(gè)數(shù)據(jù)組,以數(shù)據(jù)組為單位對(duì)數(shù)據(jù)進(jìn)行排序避免對(duì)排好序的C4C3的影響;而后將數(shù)據(jù)按C2取值分割為C2 = 0、1、2的3部分,并將3個(gè)部分的數(shù)據(jù)以數(shù)據(jù)組為單位交替排列。此時(shí)C1順序與倒序后C1的排列順序自動(dòng)一致,完成倒序。如圖10所示,為本發(fā)明實(shí)施例四16點(diǎn)數(shù)據(jù)在級(jí)間進(jìn)行排序的流程圖,及如圖11所示,為本發(fā)明實(shí)施例五24點(diǎn)(基2、2、3、2)數(shù)據(jù)在級(jí)間進(jìn)行排序的流程圖,各點(diǎn)數(shù)據(jù)按正序輸入,運(yùn)算結(jié)果即為FFT/DFT要倒序的結(jié)果。同時(shí)從圖10及圖11中可以看到只要每一級(jí)的輸入按要求排好序,那么只要蝶形運(yùn)算的基相同,不同運(yùn)算級(jí)的輸入數(shù)據(jù)可以按完全相同的順序送入矢量單元進(jìn)行運(yùn)算。以16點(diǎn)FFT為例,每一級(jí)都是前8個(gè)數(shù)據(jù)和后8個(gè)數(shù)據(jù)對(duì)應(yīng)組成蝶形進(jìn)行運(yùn)算,且蝶形的輸入數(shù)據(jù)間有相等最大的距離,非常有利于蝶形的矢量計(jì)算,且矢量計(jì)算單元中不需要為FFT/DFT引入額外的數(shù)據(jù)連線,有利于功耗的降低。為了徹底消除倒序占用的時(shí)間,可以將上述排序過(guò)程插入到如圖4所示的將數(shù)據(jù)從寄存器存回到存儲(chǔ)器的流水級(jí)中,如果矢量運(yùn)算單元有16個(gè)DIT蝶形單元,且FFT/DFT點(diǎn)數(shù)中至少包含4個(gè)因子2,則需要在排序網(wǎng)絡(luò)中實(shí)現(xiàn)如圖12所示的4級(jí)數(shù)據(jù)排序方式(需要將基2運(yùn)算排在最前面),相應(yīng)的排序可以用如圖6所示的5級(jí)排序網(wǎng)絡(luò)實(shí)現(xiàn)。其中,圖6中每個(gè)黑點(diǎn)表示一個(gè)交換單元,數(shù)據(jù)可以直通或者交叉,可以采用如圖7所示的電路結(jié)構(gòu),由兩個(gè)多路選擇器構(gòu)成(如前述)。該排序網(wǎng)絡(luò)可以實(shí)現(xiàn)附圖12所要求的4級(jí)排序,該排序網(wǎng)絡(luò)實(shí)現(xiàn)前4級(jí)排序時(shí)的數(shù)據(jù)通路如圖13-圖16所示。另外,對(duì)于點(diǎn)數(shù)較大的FFT的蝶形運(yùn)算,例如LTE所需的2048點(diǎn)FFT,前4級(jí)運(yùn)算每次將相隔1024點(diǎn)的連續(xù)16個(gè)數(shù)據(jù)輸入矢量計(jì)算單元進(jìn)行蝶形運(yùn)算,再將結(jié)果存回存儲(chǔ)器時(shí)倒序系統(tǒng)分別用4種排序方式對(duì)數(shù)據(jù)進(jìn)行排序,4級(jí)之后的FFT運(yùn)算因?yàn)榻惶媾判虻臄?shù)據(jù)組長(zhǎng)度為16的倍數(shù),只需要在保存數(shù)據(jù)時(shí)控制數(shù)據(jù)存回存儲(chǔ)器的地址就可以實(shí)現(xiàn)所需要的排序。如果FFT/DFT中因子2的個(gè)數(shù)少于4個(gè),例如LTE上行DFT中因子2的個(gè)數(shù)最少為2個(gè),且只有因子2、3、5,需要將基2運(yùn)算排在前面進(jìn)行計(jì)算,以利用排序網(wǎng)絡(luò)的排序功能對(duì)運(yùn)算結(jié)果進(jìn)行排序,之后I或2級(jí)的運(yùn)算需要在數(shù)據(jù)存回存儲(chǔ)器時(shí)添加長(zhǎng)度為4、12或長(zhǎng)度為8的掩碼和移位控制,每次存回4、12或者8個(gè)蝶形運(yùn)算結(jié)果,運(yùn)算效率有所降低,但是仍然可以通過(guò)數(shù)據(jù)保存的地址控制避免數(shù)據(jù)排序消耗的獨(dú)占時(shí)間。本發(fā)明提供了一種FFT/DFT的矢量計(jì)算架構(gòu)及一套相應(yīng)的硬件排序網(wǎng)絡(luò),通過(guò)在矢量運(yùn)算結(jié)果存回存儲(chǔ)器的流水級(jí)中的硬件排序網(wǎng)絡(luò)實(shí)現(xiàn)FFT/DFT倒序,消除了數(shù)據(jù)倒序的獨(dú)占時(shí)間,并且可以避免在矢量計(jì)算單元中引入大量交叉連線,可以降低硬件開(kāi)銷,降低FFT/DFT運(yùn)算的功耗。該排序網(wǎng)絡(luò)還可以實(shí)現(xiàn)一系列的排序操作用于支持矢量運(yùn)算中需要的其它排序操作。本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種FFT/DFT的倒序排列系統(tǒng),其特征在于,包括:信號(hào)控制裝置以及倒序裝置; 所述信號(hào)控制裝置,用于獲取各點(diǎn)待倒序的數(shù)據(jù)對(duì)應(yīng)的控制信號(hào),并向所述倒序裝置發(fā)送所述控制信號(hào),以使所述倒序裝置按照接收到的所述控制信號(hào)進(jìn)行各點(diǎn)數(shù)據(jù)倒序;其中所述控制信號(hào)根據(jù)特定倒序規(guī)則設(shè)置,所述特定倒序規(guī)則為:根據(jù)待倒序的數(shù)據(jù)的點(diǎn)數(shù)N = PfPi…P2P1,判斷出該點(diǎn)數(shù)為按基Pm、…基P1、…基P2、基Pi的順序進(jìn)行m級(jí)FFT//DFT倒序排列,對(duì)第m-1級(jí)的數(shù)據(jù)進(jìn)行倒序時(shí),將相鄰的PniPniVPw作為一個(gè)數(shù)據(jù)組,將數(shù)據(jù)對(duì)應(yīng)的地址比特表示為(VC2C1,其第i位Ci按取值從上到下分為Pi個(gè)部分,以所述數(shù)據(jù)組為單位交替排列; 所述倒序裝置,用于根據(jù)接收到的所述控制信號(hào),將所述待倒序數(shù)據(jù)進(jìn)行倒序。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述信號(hào)控制裝置中存儲(chǔ)有控制信號(hào)查找表,通過(guò)所述控制信號(hào)查找表查找出對(duì)應(yīng)所述待倒序數(shù)據(jù)的控制信號(hào),并發(fā)出。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,還包括控制信號(hào)查找表存儲(chǔ)裝置; 所述信號(hào)控制裝置從所述控制信號(hào)查找表存儲(chǔ)裝置中獲取存儲(chǔ)的控制信號(hào)查找表,通過(guò)所述控制信號(hào)查找表查找出對(duì)應(yīng)所述待倒序數(shù)據(jù)的控制信號(hào),并發(fā)出。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述倒序裝置,還包括:控制信號(hào)處理單元、存儲(chǔ)單元和交換單元; 所述控制信號(hào)處理單元,用于接收所述信號(hào)控制裝置發(fā)出的控制信號(hào),并將該控制信號(hào)發(fā)送給對(duì)應(yīng)的交換單元; 所述存儲(chǔ)單元,用于存儲(chǔ)各點(diǎn)待倒序數(shù)據(jù); 所述交換單元,用于實(shí)現(xiàn)兩個(gè)存儲(chǔ)單元中存儲(chǔ)的對(duì)應(yīng)待倒序數(shù)據(jù)的交換。
5.如權(quán)利要求4所述的系統(tǒng),其特征在于,所述交換單元組成m級(jí)網(wǎng)狀結(jié)構(gòu); 每級(jí)交換單元的數(shù)量相同; 每級(jí)所述交換單元的數(shù)量由矢量處理器運(yùn)算單元個(gè)數(shù)決定。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,每級(jí)所述交換單元的數(shù)量由矢量處理器運(yùn)算單元個(gè)數(shù)決定。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述交換單元具體包括:兩個(gè)多路選擇器; 每個(gè)多路選擇器的控制信號(hào)輸入端,用于輸入與兩點(diǎn)待倒序的數(shù)據(jù)對(duì)應(yīng)的控制信號(hào); 每個(gè)多路選擇器的兩個(gè)數(shù)據(jù)輸入端,分別連接兩點(diǎn)待倒序數(shù)據(jù)對(duì)應(yīng)的存儲(chǔ)單元,根據(jù)輸入的所述控制信號(hào),將輸入的兩點(diǎn)數(shù)據(jù)進(jìn)行交換或者直通。
8.—種FFT/DFT運(yùn)算系統(tǒng),包括:矢量運(yùn)算裝置、矢量寄存器以及存儲(chǔ)器,所述矢量運(yùn)算裝置將每級(jí)FFT/DFT運(yùn)算后的數(shù)據(jù)發(fā)送到所述矢量寄存器緩存,所述矢量寄存器緩存的數(shù)據(jù)被倒序后發(fā)送給所述存儲(chǔ)器,其特征在于,還包括:權(quán)利要求1 7所述的倒序系統(tǒng); 所述倒序系統(tǒng),用于將所述矢量運(yùn)算裝置每級(jí)FFT/DFT運(yùn)算后緩存到所述矢量寄存器的數(shù)據(jù),進(jìn)行倒序后發(fā)送給所述存儲(chǔ)器; 所述存儲(chǔ)器,用于存儲(chǔ)每級(jí)通過(guò)所述倒序系統(tǒng)倒序后的數(shù)據(jù),并將下一級(jí)需要運(yùn)算的數(shù)據(jù)發(fā)送給所述矢量寄存器緩存,等待下一級(jí)FFT/DFT運(yùn)算。
9.一種FFT/DFT的倒序方法,其特征在于,該方法包括: 存儲(chǔ)待倒序的數(shù)據(jù); 根據(jù)待倒序的數(shù)據(jù)的點(diǎn)數(shù)N = PfPr^P2P1,判斷出該點(diǎn)數(shù)為按基pm、…基P1、…基P2、基P1的順序進(jìn)行m級(jí)FFT//DFT倒序排列,倒序規(guī)則為:對(duì)第m_i級(jí)的數(shù)據(jù)進(jìn)行倒序時(shí),將相鄰的pjvfpi+1作為一個(gè)數(shù)據(jù)組,將數(shù)據(jù)對(duì)應(yīng)的地址比特表示為C/..C2C1,其第i位Ci按取值從上到下分為Pi個(gè)部分,以所述數(shù)據(jù)組為單位交替排列。
10.如權(quán)利要求9所述的方法,其特征在于,首次獲得待倒序的數(shù)據(jù)時(shí),將運(yùn)算級(jí)初始化為O ; 每次接收下一級(jí)倒序數(shù)據(jù)后,將運(yùn)算級(jí)加I。
11.如權(quán)利要求10所述的方法,其特征在于,在進(jìn)行每級(jí)倒序排列時(shí),通過(guò)存儲(chǔ)的控制信號(hào)查找表,查找出對(duì)應(yīng)所述待倒序數(shù)據(jù)的控制信號(hào),根據(jù)所述待倒序數(shù)據(jù)的對(duì)應(yīng)控制信號(hào)完成本級(jí)倒序排列, 經(jīng)過(guò)m次蝶形運(yùn)算和m-ι次排序,完成FFT/DFT運(yùn)算。
全文摘要
本發(fā)明涉及通信領(lǐng)域技術(shù),尤其涉及一種FFT/DFT的倒序排列系統(tǒng)與方法及其運(yùn)算系統(tǒng),所述倒序排列系統(tǒng),包括信號(hào)控制裝置,用于獲取各點(diǎn)待倒序的數(shù)據(jù)對(duì)應(yīng)的控制信號(hào),并向所述倒序裝置發(fā)送所述控制信號(hào),以使所述待倒序裝置按照接收到的所述控制信號(hào)進(jìn)行各點(diǎn)數(shù)據(jù)倒序;所述倒序裝置,用于根據(jù)接收到的所述控制信號(hào),將所述待倒序數(shù)據(jù)進(jìn)行倒序。本發(fā)明提供的系統(tǒng),解決了用矢量處理器計(jì)算FFT/DFT時(shí),F(xiàn)FT/DFT倒序排列時(shí)間過(guò)長(zhǎng),矢量處理器利用效率低下的問(wèn)題,可以提高FFT/DFT的矢量計(jì)算效率。
文檔編號(hào)G06F17/14GK103186503SQ201110444738
公開(kāi)日2013年7月3日 申請(qǐng)日期2011年12月27日 優(yōu)先權(quán)日2011年12月27日
發(fā)明者肖海勇 申請(qǐng)人:中興通訊股份有限公司