TWI402695B - 分裂基數-2/8快速傅立葉轉換裝置及方法 - Google Patents
分裂基數-2/8快速傅立葉轉換裝置及方法 Download PDFInfo
- Publication number
- TWI402695B TWI402695B TW099122897A TW99122897A TWI402695B TW I402695 B TWI402695 B TW I402695B TW 099122897 A TW099122897 A TW 099122897A TW 99122897 A TW99122897 A TW 99122897A TW I402695 B TWI402695 B TW I402695B
- Authority
- TW
- Taiwan
- Prior art keywords
- srfft
- memory
- butterfly
- data
- control block
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
本發明是有關於一種分裂基數(split-radix,SR)-2/8快速傅立葉轉換(Fast Fourier Transform,FFT)裝置及方法,且特別是有關於一種簡單且有效的SR-2/8 FFT裝置及方法。
快速傅立葉轉換(Fast Fourier Transform,FFT)常見於數位訊號處理的即時應用中。依據歐洲數位影音廣播標準(DVB-T/DAB),正交分頻多工(Orthogonal Frequency Division Multiplexer,OFDM)系統被廣泛地應用,而專屬的FFT/IFFT處理單元對於OFDM系統及數位通訊而言更是適於達到高頻寬的目標。
眾所週知地,在FFT演算法中,相較於基數(radix)-4 FFT,分裂基數(split-radix,SR)-2/8 FFT可以節省約1/3複數乘法運算。SR-2/8 FFT如下列偶數項FFT及奇數項FFT的運算式所示,並請參照第6圖及第7圖,第6圖繪示頻率降次SR-8蝴蝶運算之示意圖,第7圖繪示時間降次SR-8蝴蝶運算之示意圖。
And
wherek
=0,1,2,...,(N
/8)-1 andl
=1,3,5,7 (奇數項FFT)
因此,SR-2/8 FFT可更有效地利用資源或時間。然而,SR-2/8 FFT的不規則分解架構使其難以用硬體實現,而被視為較適於用軟體實現。
茲舉SR-2/4 FFT演算法為例做說明。SR-2/4 FFT及基數-4 FFF的蝴蝶(butterfly)處理器有4個輸入及4個輸出。對應於一固定輸入時脈及有限硬體資源,記憶體與蝴蝶處理器間的資料存取必須盡可能地快。同時讀取及寫入SR-2/4 FFT的蝴蝶處理器的四個輸入可以得到最快的FFT速度,即每一個蝴蝶運算只耗費1時脈週期(clock cycle)。
假定記憶體包含4個記憶庫(memory bank),則基數-4 FFT處理器在處理16筆輸入資料時的時間降次(decimation in time,DIT)基數-4蝴蝶計算的資料輸入序列如表1所示。
在表1中,於階段1開始前,資料0~資料3被放在記憶庫0,資料8~資料11被放在記憶庫1,資料4~資料7被放在記憶庫2,資料12~資料15被放在記憶庫3。因此,在階段1,基數-4蝴蝶處理器的4個輸入可以在單一時脈週期同時讀取資料,例如(0,8,4,12)。然而,在階段2,基數-4蝴蝶處理器需要4個時脈週期才能從記憶體讀取資料,例如(0,2,1,3)。因此,整體FFT的運算速度降低,導致整體系統的效率不佳。
本發明係有關於一種分裂基數-2/8快速傅立葉轉換裝置及方法,利用記憶體管理使得分裂基數快速傅立葉轉換處理器可以在單一時脈週期同時對記憶體擷取/寫入多筆資料,並利用規則的分解架構,使得分裂基數快速傅立葉轉換處理器可用低成本硬體實現。
根據本發明之第一方面,提出一種分裂基數(SR)-2/8快速傅立葉轉換(FFT)裝置,包括一記憶體、一分裂基數快速傅立葉轉換(SRFFT)處理器以及一控制單元。記憶體包含多個記憶庫,並用以接收2M
筆輸入資料,每一筆資料具有一原始位址,M為正整數。SRFFT處理器用以執行一時間降次(DIT)SR蝴蝶計算。控制單元包括一輸入控制區塊、一SRFFT控制區塊及一輸出控制區塊。輸入控制區塊用以依據此些記憶庫的個數及此些原始位址的位元反向位址決定一第一次序,並用以控制記憶體依第一次序將此些輸入資料載入對應的記憶庫內,使得SRFFT處理器可在單一時脈週期內從此些記憶庫同時擷取資料。SRFFT控制區塊用以決定對應此2M
筆輸入資料之一2M
點FFT的分解架構,並控制SRFFT處理器沿著分解架構重複執行蝴蝶計算。其中每一次蝴蝶計算的輸入資料次序符合第一次序。SRFFT控制區塊更用以控制每一次蝴蝶計算後的輸出結果被寫回輸入資料所對應的記憶庫。輸出控制區塊用以當DIT SR蝴蝶計算完成後,依據此些記憶庫的個數及2M
筆輸出資料的原始位址決定一第二次序,並並用以控制寫回並儲存在該些記憶庫內的該些輸出結果依第二次序輸出為2M
筆輸出資料,2M
筆輸出資料包含的輸出結果依序對應符合第一次序之2M
筆輸入資料。
根據本發明之第二方面,提出一種分裂基數(SR)-2/8快速傅立葉轉換(FFT)方法,應用於一SR-2/8 FFT裝置,SR-2/8 FFT裝置包括一記憶體、一分裂基數快速傅立葉轉換(SRFFT)處理器以及一控制單元。記憶體包含多個記憶庫。SRFFT處理器用以執行一時間降次(DIT) SR蝴蝶計算。控制單元包括一輸入控制區塊、一SRFFT控制區塊及一輸出控制區塊。此SR-2/8 FFT方法包括下列步驟。記憶體接收2M
筆輸入資料,每一筆資料具有一原始位址,M為正整數。輸入控制區塊依據此些記憶庫的個數及此些原始位址的位元反向位址決定一第一次序。輸入控制區塊控制該記憶體依第一次序將此些輸入資料載入對應的此些記憶庫內,使得SRFFT處理器可在單一時脈週期內從此些記憶庫同時擷取資料。SRFFT控制區塊決定對應此2M
筆輸入資料之一2M
點FFT的分解架構,並控制SRFFT處理器沿著分解架構重複執行蝴蝶計算,其中每一次蝴蝶計算的輸入資料次序符合第一次序。SRFFT控制區塊控制每一次蝴蝶計算後的輸出結果被寫回輸入資料所對應的記憶庫。當DIT SR蝴蝶計算完成後,輸出控制區塊依據此些記憶庫的個數及2M
筆輸出資料的原始位址決定一第二次序,並並用以控制寫回並儲存在此些記憶庫內的此些輸出結果依第二次序輸出為2M
筆輸出資料,2M
筆輸出資料包含的輸出結果依序對應符合第一次序之2M
筆輸入資料。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下:
本發明提出一種分裂基數(split-radix,SR)-2/8快速傅立葉轉換(Fast Fourier Transform,FFT)裝置及方法,利用記憶體管理使得分裂基數快速傅立葉轉換處理器可以在單一時脈週期(clock cycle)同時對記憶體擷取/寫入多筆資料,並利用規則的分解架構,使得分裂基數快速傅立葉轉換處理器可用低成本硬體實現。
請參照第1圖,其繪示依照本發明較佳實施例之SR-2/8 FFT裝置之示意圖。SR-2/8 FFT裝置100包括一記憶體110、一SRFFT處理器120以及一控制單元130。記憶體110包含多個記憶庫(memory bank),並用以接收2M
筆輸入資料,每一筆輸入資料具有一原始位址,M為正整數。考量到成本及效率,在此較佳實施例中之記憶體110至多包含8個記憶庫。SRFFT處理器120用以從記憶體110讀取資料以執行一時間降次(decimation in time,DIT)SR蝴蝶計算(butterfly computation)。
控制單元130包括一輸入控制區塊140、一SRFFT控制區塊150以及一輸出控制區塊160。輸入控制區塊140依據記憶體110所包含的記憶庫的個數及2M
筆輸入資料的原始位址的位元反向(bit-reversed)位址決定一第一次序。接著,輸入控制區塊140控制記憶體110依第一次序將2M
筆輸入資料載入對應於第一次序的多個記憶庫內,使得SRFFT處理器120在進行每一階段的蝴蝶計算時都可在單一時脈週期內從記憶庫同時擷取資料。其中,每一筆輸入資料在對應的記憶庫的位址由輸入資料的位元反向位址值除以記憶庫個數取其商數的整數值得到。
對應於2M
筆輸入資料,SRFFT處理器120要執行一2M
點FFT運算,因此SRFFT控制區塊150會決定此2M
點FFT的分解架構。SRFFT控制區塊150將2M
點FFT依M階段不同基數的蝴蝶計算分解得到一分解執行次序,並控制SRFFT處理器120沿著分解執行次序執行蝴蝶計算,其中每一階段不同基數的蝴蝶計算可能被重複執行,且每一次蝴蝶計算饋入輸入端的輸入資料符合第一次序。
當SRFFT處理器120所執行的蝴蝶計算為SR-8蝴蝶計算時,SRFFT控制區塊150會產生4個旋轉因子(twiddle factor)以提供給SR-8蝴蝶計算,使得SR-8蝴蝶計算的末4個輸入分別被旋轉達特定角度。此4個旋轉因子例如為W1/N
、W5/N
、W3/N
及W7/N
,其中W k / N
=。在每一次蝴蝶計算完成後,SRFFT控制區塊150控制每一次蝴蝶計算後的輸出結果被寫回輸入資料所對應的記憶庫。
當SRFFT處理器120沿著分解執行次序完成DIT SR蝴蝶計算後,輸出控制區塊160依據記憶體110所包含的記憶庫的個數及2M
筆輸出資料的原始位址決定一第二次序。接著,輸出控制區塊160控制寫回並儲存在多個記憶庫內的每一筆輸出結果依第二次序輸出為2M
筆輸出資料,此2M
筆輸出資料包含的輸出結果依序對應符合第一次序之2M
筆輸入資料。其中,每一筆輸出結果在所寫回並儲存的記憶庫的位址由對應的輸出資料的原始位址值除以記憶庫個數取其商數的整數值得到。
接下來茲舉16(M=4)筆輸入資料,及記憶體110包含8個記憶庫為例做說明,然並不限於此。假定此16筆輸入資料為x[0]~x[15],每一筆資料包含原始位址A[3:0](即A3~A0)。又假定此8個記憶庫為b0~b7,對應於16筆輸入資料,每一個記憶庫包含2個位址a0~a1以儲存輸入資料。輸入控制區塊140依據記憶體110的記憶庫個數8及16筆輸入資料的原始位址的位元反向位址決定如表2所示之第一次序。其中,每一筆輸入資料在對應的記憶庫的位址由輸入資料的位元反向位址值除以記憶庫個數取其商數的整數值得到。請配合參照第2圖,其繪示依照本發明較佳實施例之第一次序之部分運算流程之示意圖。其中,基於8個記憶庫,故取每隔3個反向位元進行互斥或(XOR)的運算,再將互斥或運算結果乘上2的冪次方,並加總得出要載入的記憶庫。
對應於16筆輸入資料,SRFFT處理器120要執行一16點FFT運算,因此SRFFT控制區塊150會決定此16點FFT的分解架構。請參照第3圖,其示依照本發明較佳實施例之16點SR-2/8FFT分解架構之示意圖。SRFFT控制區塊150將16點FFT依4階段不同基數的蝴蝶計算分解得到一分解執行次序(如第3圖中之箭號所示)。SRFFT控制區塊150控制SRFFT處理器120沿著分解執行次序執行蝴蝶計算。SRFFT控制區塊150可以一有限狀態機(finite state machine)構成,有限狀態機記錄多個目前狀態,每一個目前狀態包含多個變數,例如階段S、表示蝴蝶計算開始位置的基本位置BP、表示每階段處理的資料數目的區塊大小BS、表示階段S的蝴蝶計算兩相鄰輸入端樣本的間距SS、及前一狀態LS。其中,蝴蝶計算輸入端樣本(#0,#1,#2,#3,...,#7)的記憶體讀取位置為:將(BP,BP+SS,BP+SS×2,BP+SS×3,...,BP+SS×7)經由表2所示的第一次序轉換得之。有限狀態機實質上可由一暫存檔案(register file)配合一狀態指標(state pointer)實現。每儲存一次目前狀態,狀態指標加1;每恢復(restore)一次前一狀態,狀態指標減1。
請參照第4A~4F圖,其繪示依照本發明較佳實施例之利用有限狀態機執行SR-2/8 FFT分解架構之流程圖。基於本實施例之16點SR-2/8 FFT,於步驟S402中,S=4,BS=16,BP=0,SS=2。在步驟S404中,BS=16大於8,故進入步驟S406,LS=1,並儲存目前狀態,狀態指標變為1。上述步驟對應於第3圖中之階段4,但此時並未執行階段4之蝴蝶計算。在步驟S408中,S=3,BS=8,SS=1。回到步驟S404中,BS=8,故進入步驟S406,LS=1,並儲存目前狀態,狀態指標變為2。上述步驟對應於第3圖中之階段4進入階段3,但此時亦未執行階段3之蝴蝶計算。
接著,在步驟S408中,S=2,BS=4,SS=1。回到步驟S404中,BS=4小於8,故連結步驟G。在步驟S410中,BS=4,故進入步驟S412,執行基數-4蝴蝶計算。上述步驟對應於第3圖中之階段3進入階段2,且基於目前狀態記錄的多個變數,SRFFT處理器120同時擷取儲存於記憶庫(b0,a0)、(b1,a0)、(b2,a0)及(b3,a0)的資料x[0]、x[8]、x[4]及x[12]以進行基數-4蝴蝶計算。SRFFT控制區塊150控制基數-4蝴蝶計算的輸出結果寫回記憶庫(b0,a0)、(b1,a0)、(b2,a0)及(b3,a0)為x[0]、x[8]、x[4]及x[12]。之後,連結步驟H。
在步驟S414中,狀態指標=2大於0,故進入步驟S416,恢復前一狀態,S=3,BS=8,BP=0,SS=1,LS=1,狀態指標變為1。於步驟S418中,由於LS=1,故連結步驟A。在步驟S420中,由於BS=8小於16,故連結步驟E,進入步驟S422,執行SR-8蝴蝶計算。上述步驟對應於第3圖中之階段2回到階段3,且基於目前狀態記錄的多個變數,SRFFT處理器120同時擷取儲存於記憶庫(b0,a0)、(b1,a0)、(b2,a0)、(b3,a0)、(b4,a0)、(b5,a0)、(b6,a0)及(b7,a0)的資料x[0]、x[8]、x[4]、x[12]、x[2]、x[10]、x[6]及x[14]以進行SR-8蝴蝶計算。SRFFT控制區塊150控制SR-8蝴蝶計算的輸出結果寫回記憶庫(b0,a0)、(b1,a0)、(b2,a0)、(b3,a0)、(b4,a0)、(b5,a0)、(b6,a0)及(b7,a0)為x[0]、x[8]、x[4]、x[12]、x[2]、x[10]、x[6]及x[14]。之後,連結步驟H。
在步驟S414中,狀態指標=1大於0,故進入步驟S416,恢復前一狀態,S=4,BS=16,BP=0,SS=2,LS=1,狀態指標變為0。於步驟S418中,由於LS=1,故連結步驟A。由於BS=16,故經由步驟S420及S424進入步驟S426,LS=5,儲存目前狀態,狀態指標變為1。然後,於步驟S428中,S=1,BP=8,BS=2,SS=1。上述步驟對應於第3圖中之階段3回到階段4,但此時亦未執行階段4之蝴蝶計算而是進入階段1。
回到步驟S404中,BS=2小於8,故連結步驟G。在步驟S410中,BS=2,故進入步驟S430,執行基數-2蝴蝶計算。上述步驟對應於第3圖中之階段4進入階段1,且基於目前狀態記錄的多個變數,SRFFT處理器120同時擷取儲存於記憶庫(b0,a1)與(b1,a1)、(b2,a1)與(b3,a1)、(b4,a1)與(b5,a1)、以及(b6,a1)與(b7,a1)的資料x[1]與x[9]、x[5]與x[13]、x[3]與x[11],以及x[7]與x[15]以進行4次基數-2蝴蝶計算。SRFFT控制區塊150控制4次基數-2蝴蝶計算的輸出結果寫回記憶庫(b0,a1)與(b1,a1)、(b2,a1)與(b3,a1)、(b4,a1)與(b5,a1)、以及(b6,a1)與(b7,a1)為x[1]與x[9]、x[5]與x[13]、x[3]與x[11],以及x[7]與x[15]。之後,連結步驟H。
在步驟S414中,狀態指標=1大於0,故進入步驟S416,恢復前一狀態,S=4,BS=16,BP=0,SS=2,LS=5,狀態指標變為0。於步驟S418及S432~S436中,由於LS=5,故連結步驟E,進入步驟S422,執行SR-8蝴蝶計算。上述步驟對應於第3圖中之階段1回到階段4,且基於目前狀態記錄的多個變數,SRFFT處理器120同時擷取儲存於記憶庫(b0,a0)、(b2,a0)、(b4,a0)、(b6,a0)、(b1,a1)、(b3,a1)、(b5,a1)及(b7,a1)的資料x[0]、x[4]、x[2]、x[6]、x[1]、x[5]、x[3]及x[7]以進行一次SR-8蝴蝶計算。SRFFT控制區塊150控制SR-8蝴蝶計算的輸出結果寫回記憶庫(b0,a0)、(b2,a0)、(b4,a0)、(b6,a0)、(b1,a1)、(b3,a1)、(b5,a1)及(b7,a1)為X[0]、X[4]、X[2]、X[6]、X[1]、X[5]、X[3]及X[7]。
此外,SRFFT處理器120更同時擷取儲存於記憶庫(b1,a0)、(b3,a0)、(b5,a0)、(b7,a0)、(b0,a1)、(b2,a1)、(b4,a1)及(b6,a1)的資料x[8]、x[12]、x[10]、x[14]、x[9]、x[13]、x[11]及x[15]以進行另一次SR-8蝴蝶計算。其中,x[9]、x[13]、x[11]及x[15]在SR-8蝴蝶計算前分別被4個旋轉因子W1/N
、W5/N
、W3/N
及W7/N
旋轉達特定角度。SRFFT控制區塊150控制SR-8蝴蝶計算的輸出結果寫回記憶庫(b1,a0)、(b3,a0)、(b5,a0)、(b7,a0)、(b0,a1)、(b2,a1)、(b4,a1)及(b6,a1)為X[8]、X[12]、X[10]、X[14]、X[9]、X[13]、X[11]及X[15]。
在完成上述2次SR-8蝴蝶計算之後,狀態指標變為-1,是故在步驟S414之後,SRFFT處理器120的DIT SR蝴蝶計算結束。此時,儲存在8個記憶庫內的16筆輸出結果X[0]~X[15]即為輸入資料x[0]~x[15]的FFT運算結果。當SRFFT處理器120沿著如第3圖所示的分解執行次序完成DIT SR蝴蝶計算後,輸出控制區塊160依據記憶體110所包含的記憶庫的個數及16筆輸出資料的原始位址決定如表3所示之第二次序。接著,輸出控制區塊160控制寫回並儲存在多個記憶庫內的每一筆輸出結果依第二次序輸出為16筆輸出資料,此16筆輸出資料包含的輸出結果依序對應符合第一次序之16筆輸入資料。其中,每一筆輸出結果在所寫回並儲存的記憶庫的位址由對應的輸出資料的原始位址值除以記憶庫個數取其商數的整數值得到。請配合參照第5圖,其繪示依照本發明較佳實施例之第二次序之部分運算流程之示意圖。其中,基於8個記憶庫,故取每隔3個位元進行互斥或(XOR)的運算,再將互斥或運算結果乘上2的冪次方,並加總得出要載入的記憶庫。
由表3可得知,此16筆輸出資料包含的輸出結果依序對應符合第一次序之16筆輸入資料。
此外,本發明上述實施例之FFT運算架構亦可適用於分裂基數(Split-Radix,SR)-2/4 FFT,而記憶體100須包含4個記憶庫即可。其中,當上述之FFT運算架構應用於SR-2/4 FFT時,在第一次序之部分運算流程中,基於4個記憶庫,故取每隔2個反向位元進行互斥或(XOR)的運算,再將互斥或運算結果乘上2的冪次方,並加總得出輸入資料要載入的記憶庫。
本發明更提出一種SR-2/8 FFT方法,應用於一SR-2/8 FFT裝置,SR-2/8 FFT裝置包括一記憶體、一SRFF處理器以及一控制單元。記憶體包含多個記憶庫。SRFFT處理器用以執行一DIT SR蝴蝶計算。控制單元包括一輸入控制區塊、一SRFFT控制區塊及一輸出控制區塊。此SR-2/8 FFT方法包括下列步驟。記憶體接收2M
筆輸入資料,每一筆資料具有一原始位址,M為正整數。輸入控制區塊依據此些記憶庫的個數及此些原始位址的位元反向位址決定一第一次序。輸入控制區塊控制該記憶體依第一次序將此些輸入資料載入對應的此些記憶庫內,使得SRFFT處理器可在單一時脈週期內從此些記憶庫同時擷取資料。
SRFFT控制區塊決定對應此2M
筆輸入資料之一2M
點FFT的分解架構,並控制SRFFT處理器沿著分解架構重複執行蝴蝶計算,其中每一次蝴蝶計算的輸入資料次序符合第一次序。SRFFT控制區塊控制每一次蝴蝶計算後的輸出結果被寫回輸入資料所對應的記憶庫。當DIT SR蝴蝶計算完成後,輸出控制區塊依據此些記憶庫的個數及2M
筆輸出資料的原始位址決定一第二次序,並用以控制寫回並儲存在此些記憶庫內的此些輸出結果依第二次序輸出為2M
筆輸出資料,2M
筆輸出資料包含的輸出結果依序對應符合第一次序之2M
筆輸入資料。
上述SR-2/8 FFT方法之運作原理已詳述於SR-2/8 FFT裝置100及第1圖~第5圖的相關內容中,故於此不再重述。
本發明上述實施例所揭露之SR-2/8 FFT裝置及方法,具有多項優點,以下僅列舉部分優點說明如下:本發明之SR-2/8 FFT裝置及方法,利用簡單且有效的記憶體管理方法,將輸入資料依特定次序載入記憶體的記憶庫內,使得SRFFT處理器可以在單一時脈週期內同時對記憶體擷取多筆資料,故不需採用較記憶體(memory)來得貴的暫存器(register)儲存資料。此外,本發明亦利用有限狀態機實現對FFT的規則分解架構,使得SRFFT處理器可用低成本硬體實現。因此,本發明之SR-2/8 FFT裝置及方法具有高效率及低成本的優點。
綜上所述,雖然本發明已以一較佳實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...SR-2/8 FFT裝置
110...記憶體
120...SRFFT處理器
130...控制單元
140...輸入控制區塊
150...SRFFT控制區塊
160...輸出控制區塊
第1圖繪示依照本發明較佳實施例之SR-2/8 FFT裝置之示意圖。
第2圖繪示依照本發明較佳實施例之第一次序之部分運算流程之示意圖。
第3圖示依照本發明較佳實施例之16點SR-2/8 FFT分解架構之示意圖。
第4A~4F圖繪示依照本發明較佳實施例之利用有限狀態機執行SR-2/8 FFT分解架構之流程圖。
第5圖繪示依照本發明較佳實施例之第二次序之部分運算流程之示意圖。
第6圖繪示頻率降次SR-8蝴蝶運算之示意圖。
第7圖繪示時間降次SR-8蝴蝶運算之示意圖。
100...SR-2/8 FFT裝置
110...記憶體
120...SRFFT處理器
130...控制單元
140...輸入控制區塊
150...SRFFT控制區塊
160...輸出控制區塊
Claims (12)
- 一種分裂基數(split-radix,SR)-2/8快速傅立葉轉換(Fast Fourier Transform,FFT)裝置,包括:一記憶體,包含複數個記憶庫(memory bank),並用以接收2M 筆輸入資料,每一筆資料具有一原始位址,M為正整數;一分裂基數快速傅立葉轉換(split-radix Fast Fourier Transform,SRFFT)處理器,用以執行一時間降次(decimation in time,DIT)分裂基數(split-radix,SR)蝴蝶計算(butterfly computation);以及一控制單元,包括:一輸入控制區塊,用以依據該些記憶庫的個數及該些原始位址的位元反向位址決定一第一次序,並用以控制該記憶體依該第一次序將該些輸入資料載入對應於該第一次序的該些記憶庫內,使得該SRFFT處理器可在單一時脈週期內從該些記憶庫同時擷取資料;一分裂基數快速傅立葉轉換(split-radix Fast Fourier Transform,SRFFT)控制區塊,用以決定對應該2M 筆輸入資料之一2M 點FFT的分解架構,並控制該SRFFT處理器沿著該分解架構重複執行蝴蝶計算,其中每一次蝴蝶計算的輸入資料次序符合該第一次序,該SRFFT控制區塊更用以控制每一次蝴蝶計算後的輸出結果被寫回輸入資料所對應的記憶庫;及一輸出控制區塊,用以當該DIT SR蝴蝶計算完成後,依據該些記憶庫的個數及2M 筆輸出資料的原始位址決定一第二次序,並用以控制寫回並儲存在該些記憶庫內的該些輸出結果依該第二次序輸出為2M 筆輸出資料,該2M 筆輸出資料包含的輸出結果依序對應符合第一次序之該2M 筆輸入資料。
- 如申請專利範圍第1項所述之SR-2/8 FFT裝置,其中每一筆輸入資料在對應的該記憶庫的位址由該筆輸入資料的位元反向位址值除以記憶庫個數取其商數的整數值得到。
- 如申請專利範圍第1項所述之SR-2/8 FFT裝置,其中當該SRFFT處理器所執行的蝴蝶計算為SR-8蝴蝶計算時,該SRFFT控制區塊更用以產生4個旋轉因子(twiddle factor)以提供給SR-8蝴蝶計算,使得SR-8蝴蝶計算的末4個輸入分別被旋轉達特定角度。
- 如申請專利範圍第1項所述之SR-2/8 FFT裝置,其中,該SRFFT控制區塊將該2M 點FFT依M階段不同基數的蝴蝶計算分解得到一分解執行次序,並控制該SRFFT處理器沿著該分解執行次序執行該些蝴蝶計算,其中每一階段不同基數的蝴蝶計算可能被重複執行,且每一次蝴蝶計算饋入輸入端的輸入資料符合該第一次序。
- 如申請專利範圍第4項所述之SR-2/8 FFT裝置,其中該SRFFT控制區塊以一有限狀態機(finite state machine)構成,該有限狀態機記錄複數個狀態,每一個狀態包含複數個變數,該些變數包括一階段、表示蝴蝶計算開始位置的一基本位置、表示每階段處理的資料數目的一區塊大小、表示該階段的蝴蝶計算兩輸入端間距的一樣本空間、及一上一狀態。
- 如申請專利範圍第1項所述之SR-2/8 FFT裝置,其中每一筆輸出資料在所讀取的該記憶庫的位址由該筆輸出資料的原始位址值除以記憶庫個數取其商數的整數值得到。
- 一種分裂基數(split-radix,SR)-2/8快速傅立葉轉換(Fast Fourier Transform,FFT)方法,應用於一SR-2/8 FFT裝置,該SR-2/8 FFT裝置包括一記憶體、一分裂基數快速傅立葉轉換(split-radix Fast Fourier Transform,SRFFT)處理器以及一控制單元,該記憶體包含複數個記憶庫,該SRFFT處理器用以執行一時間降次(decimation in time,DIT) SR蝴蝶計算,該控制單元包括一輸入控制區塊、一分裂基數快速傅立葉轉換(split-radix Fast Fourier Transform,SRFFT)控制區塊及一輸出控制區塊,該SR-2/8 FFT方法包括:該記憶體接收2M 筆輸入資料,每一筆資料具有一原始位址,M為正整數;該輸入控制區塊依據該些記憶庫的個數及該些原始位址的位元反向位址決定一第一次序;該輸入控制區塊控制該記憶體依該第一次序將該些輸入資料載入對應於該第一次序的該些記憶庫內,使得該SRFFT處理器可在單一時脈週期內從該些記憶庫同時擷取資料;該SRFFT控制區塊決定對應該2M 筆輸入資料之一2M 點FFT的分解架構,並控制該SRFFT處理器沿著該分解架構重複執行蝴蝶計算,其中每一次蝴蝶計算的輸入資料次序符合該第一次序;該SRFFT控制區塊控制每一次蝴蝶計算後的輸出結果被寫回輸入資料所對應的記憶庫;以及當該DIT SR蝴蝶計算完成後,該輸出控制區塊依據該些記憶庫的個數及2M 筆輸出資料的原始位址決定一第二次序,並並用以控制寫回並儲存在該些記憶庫內的該些輸出結果依該第二次序輸出為2M 筆輸出資料,該2M 筆輸出資料包含的輸出結果依序對應符合第一次序之該2M 筆輸入資料。
- 如申請專利範圍第7項所述之SR-2/8 FFT方法,更包括:由每一筆輸入資料的位元反向位址值除以記憶庫個數取其商數的整數值得到該筆輸入資料在對應的該記憶庫的位址。
- 如申請專利範圍第7項所述之SR-2/8 FFT方法,更包括:當該SRFFT處理器所執行的蝴蝶計算為SR-8蝴蝶計算時,該SRFFT控制區塊產生4個旋轉因子以提供給SR-8蝴蝶計算,使得SR-8蝴蝶計算的末4個輸入分別被旋轉達特定角度。
- 如申請專利範圍第7項所述之SR-2/8 FFT方法,更包括:該SRFFT控制區塊將該2M 點FFT依M段階不同基數的蝴蝶計算分解得到一分解執行次序,並控制該SRFFT處理器沿著該分解執行次序執行該些蝴蝶計算,其中每一階段不同基數的蝴蝶計算可被重複執行,且每一次蝴蝶計算饋入輸入端的輸入資料符合第一次序。
- 如申請專利範圍第10項所述之SR-2/8 FFT方法,其中係以一有限狀態機構成該SRFFT控制區塊,該有限狀態機記錄複數個狀態,每一個狀態包含複數個變數,該些變數包括一階段、表示蝴蝶計算開始位置的一基本位置、表示每階段處理的資料數目的一區塊大小、表示該階段的蝴蝶計算兩輸入端間距的一樣本空間、及一上一狀態。
- 如申請專利範圍第7項所述之SR-2/8 FFT方法,更包括:由每一筆輸出資料的原始位址值除以記憶庫個數取其商數的整數值得到該筆輸出資料在所讀取的該記憶庫的位址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099122897A TWI402695B (zh) | 2010-07-12 | 2010-07-12 | 分裂基數-2/8快速傅立葉轉換裝置及方法 |
US13/048,344 US8601045B2 (en) | 2010-07-12 | 2011-03-15 | Apparatus and method for split-radix-2/8 fast fourier transform |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW099122897A TWI402695B (zh) | 2010-07-12 | 2010-07-12 | 分裂基數-2/8快速傅立葉轉換裝置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201202963A TW201202963A (en) | 2012-01-16 |
TWI402695B true TWI402695B (zh) | 2013-07-21 |
Family
ID=45439349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099122897A TWI402695B (zh) | 2010-07-12 | 2010-07-12 | 分裂基數-2/8快速傅立葉轉換裝置及方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8601045B2 (zh) |
TW (1) | TWI402695B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI402695B (zh) * | 2010-07-12 | 2013-07-21 | Novatek Microelectronics Corp | 分裂基數-2/8快速傅立葉轉換裝置及方法 |
CN103198055B (zh) * | 2013-01-29 | 2016-03-30 | 西安空间无线电技术研究所 | 一种分裂基fft结构设计方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200534121A (en) * | 2003-12-05 | 2005-10-16 | Qualcomm Inc | Fft architecture and method |
US20070088773A1 (en) * | 2005-10-19 | 2007-04-19 | Sunplus Technology Co., Ltd. | Digital signal processing apparatus |
US20070266070A1 (en) * | 2006-05-12 | 2007-11-15 | Chung Hua University | Split-radix FFT/IFFT processor |
TW200915095A (en) * | 2007-09-21 | 2009-04-01 | Univ Nat Chiao Tung | Fast Fourier Transform (FFT) and inverse FFT (IFFT) device and method |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061705A (en) * | 1998-01-21 | 2000-05-09 | Telefonaktiebolaget Lm Ericsson | Power and area efficient fast fourier transform processor |
US7870176B2 (en) * | 2004-07-08 | 2011-01-11 | Asocs Ltd. | Method of and apparatus for implementing fast orthogonal transforms of variable size |
US20100030831A1 (en) * | 2008-08-04 | 2010-02-04 | L-3 Communications Integrated Systems, L.P. | Multi-fpga tree-based fft processor |
US8694570B2 (en) * | 2009-01-28 | 2014-04-08 | Arun Mohanlal Patel | Method and apparatus for evaluation of multi-dimensional discrete fourier transforms |
TWI402695B (zh) * | 2010-07-12 | 2013-07-21 | Novatek Microelectronics Corp | 分裂基數-2/8快速傅立葉轉換裝置及方法 |
US8819097B2 (en) * | 2011-09-09 | 2014-08-26 | Texas Instruments Incorporated | Constant geometry split radix FFT |
-
2010
- 2010-07-12 TW TW099122897A patent/TWI402695B/zh not_active IP Right Cessation
-
2011
- 2011-03-15 US US13/048,344 patent/US8601045B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200534121A (en) * | 2003-12-05 | 2005-10-16 | Qualcomm Inc | Fft architecture and method |
US20070088773A1 (en) * | 2005-10-19 | 2007-04-19 | Sunplus Technology Co., Ltd. | Digital signal processing apparatus |
US20070266070A1 (en) * | 2006-05-12 | 2007-11-15 | Chung Hua University | Split-radix FFT/IFFT processor |
TW200915095A (en) * | 2007-09-21 | 2009-04-01 | Univ Nat Chiao Tung | Fast Fourier Transform (FFT) and inverse FFT (IFFT) device and method |
Also Published As
Publication number | Publication date |
---|---|
US8601045B2 (en) | 2013-12-03 |
US20120011184A1 (en) | 2012-01-12 |
TW201202963A (en) | 2012-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6366936B1 (en) | Pipelined fast fourier transform (FFT) processor having convergent block floating point (CBFP) algorithm | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
US20140330880A1 (en) | Methods and devices for multi-granularity parallel fft butterfly computation | |
WO2008132510A2 (en) | Fft processor | |
JP4160564B2 (ja) | 処理速度の向上した高速フーリエ変換装置およびその処理方法 | |
EP1436725A2 (en) | Address generator for fast fourier transform processor | |
US9098449B2 (en) | FFT accelerator | |
TWI402695B (zh) | 分裂基數-2/8快速傅立葉轉換裝置及方法 | |
US7657587B2 (en) | Multi-dimensional fast fourier transform | |
US6728742B1 (en) | Data storage patterns for fast fourier transforms | |
Cui-xiang et al. | Some new parallel fast Fourier transform algorithms | |
WO2013097235A1 (zh) | 并行位反序装置和方法 | |
Zheng | Encrypted cloud using GPUs | |
Malashri et al. | Low power and memory efficient FFT architecture using modified CORDIC algorithm | |
Psarakis et al. | Fpga-based acceleration for tracking audio effects in movies | |
Shome et al. | Architectural design of a highly programmable Radix-2 FFT processor with efficient addressing logic | |
CN104572578B (zh) | 用于显著改进微控制器中fft性能的新颖方法 | |
US20090172062A1 (en) | Efficient fixed-point implementation of an fft | |
Ranganathan et al. | Efficient hardware implementation of scalable FFT using configurable Radix-4/2 | |
US20230171084A1 (en) | Appratus and method with homomorphic encryption | |
US20200372095A1 (en) | Fast fourier transform device, data sorting processing device, fast fourier transform processing method, and program recording medium | |
US20180373676A1 (en) | Apparatus and Methods of Providing an Efficient Radix-R Fast Fourier Transform | |
CN102339272A (zh) | 分裂基数-2/8快速傅立叶转换装置及方法 | |
Voss et al. | Low area overhead custom buffering for FFT | |
Du Pont et al. | Hardware Acceleration of the Prime-Factor and Rader NTT for BGV Fully Homomorphic Encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |