非基2點多數據模式FFT的實現方法和裝置與流程
2023-05-02 12:54:16
本發明涉及快速傅立葉變換的數據處理,尤其涉及一種非基2點多數據模式FFT的實現方法和裝置。
背景技術:
目前進行FFT(Fast Fourier Transformation,快速傅立葉變換)方法是將3780點FFT分為三層,頂層用混合基法分解3780點,中間層用素因子算法分解63點和60點FFT,底層用WFTA算法完成7點、9點、3點、4點、5點的FFT計算。但是這種方法僅僅單一解決固定非基2點(3780點)FFT的運算需求,不能依據需要靈活配置所需FFT運算點數。
採用這種方法,不能勝任解調算法對於FFT運算點數的多樣需求,使得FFT的運算效率較低。
技術實現要素:
針對現有技術的問題,本發明提供了一種非基2點多數據模式FFT的實現方法和裝置,能夠實現兼容3780,4200,4375,4725等非基2點的各種多模的FFT運算。
本發明採用如下技術方案:
一種非基2點多數據模式FFT的實現方法,應用於對3780點數據、4200點數據、4375點數據和4725點數據的DTMB解調算法中,所述實現方法包括對3780點數據、4200點數據、4375點數據和4725點數據的DTMB解調算法的一級分解和二級分解,其中二級分解包括第一階段和第二階段,第一階段於第二階段後進行或者第一階段於第二階段前進行,並且本實施例中第一階段和第二階段的內部的順序不予限定,可以根據實際情況進行調整,並且:
一級分解具體包括:採用混合基算法將所述3780點數據分解成108*35、所述4200點數據分解成120*35、所述4375點數據分解成125*35及所述4725點數據分別分解成135*35;
二級分解的第一階段具體為:採用混合基算法將108分解成3*4*9、120分解成3*5*8、 125分解成5*5*5及135分解成 3*5*9;其中,
利用一級可編程WFTA單元完成3780點數據中的3點、4200點數據中的3點、4375點數據中的5點及4725點數據中的3點的FFT運算;
利用二級可編程WFTA單元完成3780點數據中的4點、4200點數據中的5點、4375點數據中的5點及4725點數據中的5點的FFT運算;
利用三級可編程WFTA單元完成3780點數據中的9點、4200點數據中的8點、4375點數據中的5點及4725點數據中的9點的FFT運算;
二級分解的第二階段具體為:採用素因子分解算法把35分解成5*7;其中,
利用四級可編程WFTA單元完成3780點數據中的5點、4200點數據中的5點、4375點數據中的5點和4725點數據中的5點的FFT運算;
利用五級可編程WFTA單元完成3780點數據中的7點、4200點數據中的7點、4375點數據中的7點及4725點數據中7點的FFT運算。
優選的,所述實現方法還包括:
在二級分解的第一階段中,對應的三個可編程WFTA單元,即所述一級可編程WFTA單元、所述二級可編程WFTA單元、所述三級可編程WFTA單元中,相鄰的兩個可編程WFTA單元之間的運算均使用桌球結構的SRAM緩存器;
在一級分解的邊界對應的兩個可編程WFTA單元,即所述三級可編程WFTA單元、所述四級可編程WFTA單元,相鄰的兩個可編程WFTA單元之間的運算使用主從結構的SRAM緩存器。從SRAM只有在主SRAM緩存器工作時才會參與工作,在沒有連續FFT運算要求的情況下可以省去這個從SRAM緩存器,節約資源。
在二級分解的第二階段對應的兩個可編程WFTA單元,即所述四級可編程WFTA單元、所述五級可編程WFTA單元中,相鄰的兩個可編程WFTA單元之間的運算使用桌球結構的SRAM緩存器;
桌球結構SRAM緩存器在一次FFT運算中會有多次切換。主從結構SRAM緩存器在一次FFT運算中不會有切換,在連續的FFT運算之間僅會有一次切換。
優選的,所述實現方法還包括:
在所述一級可編程WFTA單元和/或所述二級可編程WFTA單元和/或所述三級可編程WFTA單元和/或所述四級可編程WFTA單元和/或所述五級可編程WFTA單元進行FFT運算之前和/或之後進行共軛計算。
優選的,所述實現方法中:
按照所述一級可編程WFTA單元、所述二級可編程WFTA單元、所述三級可編程WFTA單元、所述四級可編程WFTA單元、所述五級可編程WFTA單元的數據流進行的FFT運算;以及
按照所述第五級可編程WFTA單元、所述第四級可編程WFTA單元、所述第三級可編程WFTA單元、所述第二級可編程WFTA單元、所述第一級可編程WFTA單元的反向數據流進行FFT運算;其中,
在所述FFT運算的前後對數據進行共軛計算來實現IFFT運算。
一種非基2點多數據模式FFT的實現系統,應用於對3780點數據、4200點數據、4375點數據和4725點數據的DTMB解調算法中,所述實現系統包括多模FFT模塊,所述多模FFT模塊包括:
依次連接的可編程WFTA單元,對所述3780點數據、4200點數據、4375點數據和4725點數據進行FFT運算,每一級可編程WFTA單元為一個FFT運算階段;以及
一級分解使用了混合基算法,一級分解中的相鄰兩個可編程WFTA單元之間連接有一第一相位旋轉單元,所述第一相位旋轉單元與一第一存儲單元連接,並且所述第一存儲單元還與下一個FFT運算階段的可編程WFTA單元連接,所述第一存儲單元採用主從結構混續存儲所述第一相位旋轉單元的數據;以及
二級分解的第一階段使用了混合基算法,二級分解的第一階段中的相鄰兩個可編程WFTA單元之間連接有一第二相位旋轉單元,所述第二相位旋轉單元與一第二存儲單元連接,並且所述第二存儲單元還與下一個FFT運算階段的可編程WFTA單元連接,所述第二存儲單元採用桌球結構混續存儲所述第二相位旋轉單元的數據;以及
二級分解的第二階段使用了素因子分解算法,二級分解的第二階段中的相鄰兩個可編程WFTA單元之間無需相位旋轉單元,直接由一第三存儲單元與下一個FFT運算階段的可編程WFTA單元連接,所述第三存儲單元採用桌球結構混續存儲數據。
優選的,所述實現系統還包括:
共軛單元,包括第一共軛單元和第二共軛單元;
所述第一共軛單元與依次連接的所述可編程WFTA單元中的首個可編程WFTA單元連接,所述第一共軛單元對所述首個可編程WFTA單元的輸入數據取共軛;
所述第二共軛單元與依次連接的所述可編程WFTA單元中的最後一個可編程WFTA單元連接,所述第二共軛單元對所述最後一個可編程WFTA單元的輸出數據取共軛;
可配置同時打開第一共軛單元和第二共軛單元運算,以實現IFFT運算功能。
優選的,所述實現系統還包括多模IFFT模塊,所述多模IFFT模塊與所述多模FFT模塊連接,並且所述多模FFT模塊能夠與所述多模IFFT模塊級聯,以實現FFT運算和IFFT的迭代運算。
本發明的有益效果是:
本發明可進行多種數據模式的非基2點FFT或者IFFT運算,並且無需等待當前FFT輸出完畢即可接收新一次的FFT輸入,同時進行DTMB解調運算中的多種數據模式的非基2點連續FFT和IFFT的運算,即對DTMB解調運算中,3780點數據、4200點數據、4375點數據和4725點數據這4種數據模式的多次FFT和IFFT迭代運算。
附圖說明
圖1為本發明可編程WFTA單元的結構示意圖;
圖2為本發明多模FFT模塊的工作示意圖;
圖3為本發明基於3780,4200,4375,4725點FFT運算的多模FFT模塊;
圖4為本發明基於3780,4200,4375,4725點FFT運算的多模IFFT模塊;
圖5為本發明多模FFT模塊和多模IFFT模塊實現迭代運算的示意圖。
具體實施方式
需要說明的是,在不衝突的情況下,下述技術方案,技術特徵之間可以相互組合。
下面結合附圖對本發明的具體實施方式作進一步的說明:
在新興的DTMB解調算法研究中增添了4200,4375,4725等非基2點FFT的運算需求,混合實現3780,4200,4375,4725等非基2點FFT會嚴重增加實現複雜度以及成本本發明旨在使用一個多模FFT模塊來實現兼容3780,4200,4375,4725等非基2點的各種多模的FFT運算模塊。
本實施例使用可編程 WFTA 單元進行FFT,WFTA的運算公式: X = O*D*I*x;使用外部控制模塊讓WFTA FFT 單元分別工作在多模(7,9,3,5,4等點)FFT模式。
在DTMB解調算法中的3780,4200,4375,4725點FFT運算可以採用如下技術方案:
首先,用混合基算法把3780, 4200, 4375, 4725點分別分解成 108x35, 120x35, 125x35, 135x35;
之後,用混合基算法把108, 120, 125, 135點分別分解成3x4x9, 3x5x8, 5x5x5, 3x5x9;其中,9,3,5,4分別用可編程 WFTA 單元來實現。關於上述的可編程WFTA單元包括一級可編程WFTA單元、二級可編程WFTA單元、三級可編程WFTA單元,其中,如圖3所示,一級可編程WFTA單元對108點中的3點、120點中的3點、125點中的5點、135點中的3點進行FFT運算;二級可編程WFTA單元對108點中的4點、120點中的5點、125點中的5點、135點中的5點進行FFT運算;三級可編程WFTA單元對108點中的9點、120點中的8點、125點中的5點、135點中的9點進行FFT運算。
然後,用素因子分解算法把35分解成5x7,5,7 用可編程WFTA單元來實現,這是非基2點多模FFT中的四、五級可編程WFTA單元。圖3中,四級可編程WFTA單元對3780, 4200, 4375, 4725的35點中的5點進行FFT運算,五級可編程WFTA單元對3780,4200,4375,4725的35點中的7點進行FFT運算。
如圖1所示, 圖1中的B Coef、G Coef和C Coef分別為WFTA算法中三個矩陣的係數,本實施例中可以通過3,4,5,7,9數據模式的WFTA係數表進行計算;D11~D1n為寄存器,組成兩個移位寄存器組,移位寄存器對輸入數據移位,以形成流水線輸入;AC1~ACn為累加器,累加器在係數矩陣的控制下對輸入數據進行操作;MUX為多路選擇器,選擇相應累加器的輸出作為第一運算或者第三運算階段的輸出。例如,5點WFTA標準表達式中C、B矩陣元素只有0、1和-1,則第一和第三個運算階段的矩陣相乘實際上是一個對輸入數據的累加。當矩陣每一行的第一個元素為1時,相應累加器的值等於相應的輸入數據,為0時,累加器的值被置為0;當矩陣每行的其他元素為1時,累加器執行加操作,即累加器的值為其原值加新輸入的數據;當為-1時,累加器執行減操作,即累加器的值為其原值減去新輸入的數據;當為0 時,累加器執行保持功能,即後一狀態的值等於前一狀態的值。7點、9點以及3點WFTA結構即輸入數據控制方式與5點基本類似,4點WFTA結構與5點WFTA結構的第二運算階段類似,此處不進行贅述。
如圖2,圖3所示,在以上五級可編程WFTA單元之間使用桌球或者主從結構的SRAM緩存數據。這樣可使模塊能夠進行連續的FFT運算。提高FFT模塊的運行效率。進一步的,將以上五級可編程WFTA FFT 單元前後加上共軛模塊,共軛模塊分別為第一共軛模塊和第二共軛模塊,其可以進行數據共軛選擇,即可實現FFT和IFFT的功能切換,這就實現了完整的非基2點多模FFT裝置A。
例如,圖2中以一組長度為3780點的數據進行舉例,其餘各點的計算與3780點類似,3780點數據在時鐘的同步作用下進入第一共軛模塊,由IFFT使能信號判斷是否進行共軛計算,共軛模塊輸出的3780點數據被FFT一級分解和FFT二級分解的第一階段共分解成為1260組3點數據,數據在FFT使能信號的驅動下,進入到一級可編程WFTA運算單元(1級可編程WFTA)進行3點FFT運算,計算完由第二相位旋轉單元(1級相位旋轉)再進行數據的相位旋轉,之後存到第二存儲單元(2級混續SRAM桌球結構(Static Random Access Memory,靜態隨機存取存儲器))相應地址中,實現原址運算。按照上述方法,直至進行到5級可編程WFTA運算,輸出數據需要進入第二共軛單元,由IFFT使能信號判斷是否進行共軛計算,第二共軛單元輸出,完成3780點的FFT或者是IFFT的計算。需要說明的是,本實施例中的第二相位旋轉單元可以包括1級相位旋轉、2級相位旋轉、3級相位旋轉。第二存儲單元包括2級混續SRAM桌球結構、3級混續SRAM桌球結構。
二級分解的第二階段使用了素因子分解算法,二級分解的第二階段中的相鄰兩個可編程WFTA單元之間無需相位旋轉單元,直接由一第三存儲單元(4級混續SRAM桌球結構、5級混續SRAM桌球結構)與下一個FFT運算階段的可編程WFTA單元連接,所述第三存儲單元採用桌球結構混續存儲數據。
如圖4所示,將這個多模FFT模塊的五級可編程WFTA 單元的數據流反相,即可實現可以與多模FFT或者IFFT運算模塊的輸出混續直接對接的多模IFFT或者FFT運算模塊。
為了實現流水線的桌球結構和主從結構的混續SRAM(存儲單元),以3780數據舉例,3780數據會被分成35組108點數據,逐組存入二級桌球結構混續SRAM,桌球結構的兩塊SRAM會交替處於寫入和讀出狀態,三級混續SRAM和五級混續SRAM會同理二級混續SRAM模式工作;四級混續SRAM位於FFT一級分解的邊界,一幀3780點數據會全部存入到四級混續SRAM中然後全部讀出,當多幀3780點數據連續輸入時,四級主從結構混續SRAM的兩塊SRAM會交替完成3780點數據的寫入和讀出工作,這就實現了3780點數據的實時處理;如果下一幀數據始終在當前幀數據從四級混續SRAM完全讀出之後輸入,則四級主從結構混續SRAM的兩塊SRAM中只有一塊SRAM獨立完成3780點數據的寫入和讀出工作。這樣就實現了SRAM的節約使用。
如圖5所示,將多模FFT模塊和多模FFT模塊級聯可以實現連續的FFT和IFFT運算,以及多次FFT和IFFT的迭代運算。
綜上所述,本發明可進行多種數據模式的非基2點FFT或者IFFT運算,並且無需等待當前FFT輸出完畢即可接收新一次的FFT輸入,同時進行DTMB解調運算中的多種數據模式的非基2點連續FFT和IFFT的運算,即對DTMB解調運算中,3780點數據、4200點數據、4375點數據和4725點數據這4種數據模式的多次FFT和IFFT迭代運算。
通過說明和附圖,給出了具體實施方式的特定結構的典型實施例,基於本發明精神,還可作其他的轉換。儘管上述發明提出了現有的較佳實施例,然而,這些內容並不作為局限。
對於本領域的技術人員而言,閱讀上述說明後,各種變化和修正無疑將顯而易見。因此,所附的權利要求書應看作是涵蓋本發明的真實意圖和範圍的全部變化和修正。在權利要求書範圍內任何和所有等價的範圍與內容,都應認為仍屬本發明的意圖和範圍內。