TWI506457B - 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法 - Google Patents

折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法 Download PDF

Info

Publication number
TWI506457B
TWI506457B TW103133579A TW103133579A TWI506457B TW I506457 B TWI506457 B TW I506457B TW 103133579 A TW103133579 A TW 103133579A TW 103133579 A TW103133579 A TW 103133579A TW I506457 B TWI506457 B TW I506457B
Authority
TW
Taiwan
Prior art keywords
data
buffer
butterfly
stored
output
Prior art date
Application number
TW103133579A
Other languages
English (en)
Other versions
TW201612769A (en
Inventor
Sau Gee Chen
Bo Wei Wang
Shen Jui Huang
Original Assignee
Univ Nat Chiao Tung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ Nat Chiao Tung filed Critical Univ Nat Chiao Tung
Priority to TW103133579A priority Critical patent/TWI506457B/zh
Priority to CN201410648347.7A priority patent/CN105653500B/zh
Priority to US14/741,805 priority patent/US9880974B2/en
Application granted granted Critical
Publication of TWI506457B publication Critical patent/TWI506457B/zh
Publication of TW201612769A publication Critical patent/TW201612769A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast 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

折疊式蝶形模組、管線式快速傅利葉轉換處理 器及控制方法
本發明是有關於快速傅利葉轉換(Fast Fourier Transform,FFT),特別是指一種折疊式蝶形模組、一種管線式快速傅利葉轉換處理器及一種控制方法。
雖然習知的管線式快速傅利葉轉換處理器有高產出(high throughput)的優點,但是其中的蝶形單元(butterfly unit)卻有使用率低的問題。因此,如何提高蝶形單元的使用率同時維持高產出是一個重要的課題。
因此,本發明之目的即在提供一種折疊式蝶形模組、一種管線式快速傅利葉轉換處理器及一種控制方法,可以改善先前技術的缺點。
於是,根據本發明的一層面,一種折疊式蝶形模組適用於執行基數為22 的蝶形運算。該折疊式蝶形模組包含一緩衝器、一第一多工器、一蝶形運算器、一第二多工器、一第三多工器及一乘法器。該緩衝器接收第一待儲 存資料及第二待儲存資料,且可操作以儲存該第一待儲存資料及該第二待儲存資料且輸出第一儲存資料及第二儲存資料。該第一多工器耦接到該緩衝器以接收該第二儲存資料,適用於接收輸入資料,且可操作以輸出該第二儲存資料及該輸入資料中的一個作為第一選擇資料。該蝶形運算器耦接到該緩衝器及該第一多工器以分別接收該第一儲存資料及該第一選擇資料,且對該第一儲存資料及該第一選擇資料做基數為2的蝶形運算,以產生運算資料及該第二待儲存資料。該第二多工器耦接到該蝶形運算器及該緩衝器,適用於接收該輸入資料,從該蝶形運算器接收該運算資料,且可操作以輸出該輸入資料及該運算資料中的一個作為該第一待儲存資料。該第三多工器耦接到該蝶形運算器及該緩衝器以分別接收該運算資料及該第二儲存資料,且可操作以輸出該運算資料及該第二儲存資料中的一個作為第二選擇資料。該乘法器耦接到該第三多工器以接收該第二選擇資料,且產生等於該第二選擇資料及預設旋轉資料之乘積的輸出資料。
根據本發明的另一層面,一種管線式快速傅利葉轉換處理器適用於執行N點快速傅利葉轉換,其中,N=2K ,且K是大於或等於四的整數。該快速傅利葉轉換處理器包含M個串接的蝶形模組。當K是偶數時,M=K/2,每一蝶形模組執行基數為22 的蝶形運算,且該等蝶形模組的第一個至第M-1個中的每一個是一如上所述的折疊式蝶形模組。當K是奇數時,M=(K+1)/2,該等蝶形模組中的該第一 個執行基數為2的蝶形運算,該等蝶形模組的第二個至第M個中的每一個執行基數為22 的蝶形運算,且該等蝶形模組的該第二個至該第M-1個中的每一個是一如上所述的折疊式蝶形模組。
根據本發明的又一層面,一種控制方法用於控制一如上所述的折疊式蝶形模組。該控制方法包含以下步驟:(A)控制該第二多工器輸出該輸入資料作為該第一待儲存資料,且控制該緩衝器儲存該第一待儲存資料;(B)控制該緩衝器輸出該第一儲存資料,控制該第一多工器輸出該輸入資料作為該第一選擇資料,控制該第二多工器輸出該運算資料作為該第一待儲存資料,且控制該緩衝器儲存該第一待儲存資料及該第二待儲存資料;(C)控制該緩衝器輸出該第一儲存資料及該第二儲存資料,控制該第一多工器輸出該第二儲存資料作為該第一選擇資料,控制該第二多工器輸出該輸入資料作為該第一待儲存資料,控制該第三多工器輸出該運算資料作為該第二選擇資料,且控制該緩衝器儲存該第一待儲存資料及該第二待儲存資料;及(D)控制該緩衝器輸出該第一儲存資料及該第二儲存資料,控制該第一多工器輸出該輸入資料作為該第一選擇資料,控制該第二多工器輸出該運算資料作為該第一待儲存資料,控制該第三多工器輸出該第二儲存資料作為該第二選擇資料,且控制該緩衝器儲存該第一待儲存資料及該第 二待儲存資料。
本發明之功效在於:利用該控制方法來控制該折疊式蝶形模組,可以使該蝶形運算器執行兩次基數為2的蝶形運算來完成一次基數為22 的蝶形運算,從而提高該蝶形運算器的使用率。
11‧‧‧緩衝器
111‧‧‧第一緩衝單元
112‧‧‧第二緩衝單元
113‧‧‧第三緩衝單元
114‧‧‧第四緩衝單元
115‧‧‧第一交換單元
116‧‧‧第二交換單元
12‧‧‧第一多工器
13‧‧‧蝶形運算器
131‧‧‧蝶形單元
132‧‧‧交換單元
14‧‧‧第二多工器
15‧‧‧第三多工器
16‧‧‧乘法器
20‧‧‧蝶形模組
21‧‧‧第一蝶形模組
22‧‧‧第二蝶形模組
23‧‧‧第三蝶形模組
24‧‧‧第四蝶形模組
31‧‧‧緩衝器
311‧‧‧第一緩衝單元
312‧‧‧第二緩衝單元
313‧‧‧多工單元
32‧‧‧蝶形運算器
321‧‧‧蝶形單元
33‧‧‧第一多工器
34‧‧‧第二多工器
35‧‧‧乘法器
41‧‧‧第一蝶形運算器
411‧‧‧蝶形單元
42‧‧‧第二蝶形運算器
421‧‧‧蝶形單元
50‧‧‧蝶形模組
51‧‧‧第一蝶形模組
52‧‧‧第二蝶形模組
53‧‧‧第三蝶形模組
54‧‧‧第四蝶形模組
61‧‧‧第一蝶形運算器
611‧‧‧蝶形單元
62‧‧‧第二蝶形運算器
621‧‧‧蝶形單元
本發明之其他的特徵及功效,將於參照圖式的實施方式中清楚地呈現,其中:圖1是一示意方塊圖,說明本發明折疊式蝶形模組的實施例;圖2是一示意方塊圖,說明圖1所示實施例的一蝶形運算器的一實施態樣;圖3與圖4是示意方塊圖,說明圖1所示實施例的蝶形運算器的另一實施態樣;圖5是一示意方塊圖,說明圖1所示實施例的一緩衝器;圖6是一示意方塊圖,說明本發明管線式快速傅利葉轉換處理器的第一實施例;圖7是一示意圖,說明圖6所示實施例在執行32點快速傅利葉轉換時的資料流;圖8是一示意方塊圖,說明圖6所示實施例的一第一蝶形模組;圖9是一示意方塊圖,說明第一蝶形模組的一蝶形運算器; 圖10、圖11與圖12是時序圖,說明第一蝶形模組的操作;圖13、圖14與圖15是時序圖,說明圖6所示實施例的一第二蝶形模組之操作;圖16與圖17是時序圖,說明圖6所示實施例的一第三蝶形模組之操作;圖18是一示意方塊圖,說明圖6所示實施例的一第四蝶形模組;圖19是一時序圖,說明第四蝶形模組的操作;圖20是一示意方塊圖,說明本發明管線式快速傅利葉轉換處理器的第二實施例;圖21是一示意圖,說明圖20所示實施例在執行16點快速傅利葉轉換時的資料流;及圖22是一示意方塊圖,說明圖20所示實施例的一第四蝶形模組。
在本發明被詳細描述之前,應當注意在以下的說明內容中,類似的元件是以相同的編號來表示。
參閱圖1,本發明折疊式蝶形模組的實施例適用於執行基數為22 (radix-22 )的蝶形運算,且包含一緩衝器11、一第一多工器12、一蝶形運算器13、一第二多工器14、一第三多工器15及一乘法器16。
緩衝器11接收第一待儲存資料Dbi1及第二待儲存資料Dbi2,且可操作以儲存第一待儲存資料Dbi1及第 二待儲存資料Dbi2且輸出第一儲存資料Dbo1及第二儲存資料Dbo2。
第一多工器12耦接到緩衝器11以接收第二儲存資料Dbo2,適用於接收輸入資料Din,且可操作以輸出第二儲存資料Dbo2及輸入資料Din中的一個作為第一選擇資料Dsel1。
蝶形運算器13耦接到緩衝器11及第一多工器12以分別接收第一儲存資料Dbo1及第一選擇資料Dsel1。蝶形運算器13對第一儲存資料Dbo1及第一選擇資料Dsel1做基數為2(radix-2)的蝶形運算,以產生運算資料Dop及第二待儲存資料Dbi2。
第二多工器14耦接到蝶形運算器13及緩衝器11,適用於接收輸入資料Din,從蝶形運算器13接收運算資料Dop,且可操作以輸出輸入資料Din及運算資料Dop中的一個作為第一待儲存資料Dbi1。
第三多工器15耦接到蝶形運算器13及緩衝器11以分別接收運算資料Dop及第二儲存資料Dbo2,且可操作以輸出運算資料Dop及第二儲存資料Dbo2中的一個作為第二選擇資料Dsel2。
乘法器16耦接到第三多工器15以接收第二選擇資料Dsel2,且產生等於第二選擇資料Dsel2及預設旋轉資料Dtw之乘積的輸出資料Dout。
在本實施例中,輸入資料Din、第一待儲存資料Dbi1、第二待儲存資料Dbi2、第一儲存資料Dbo1、第二儲 存資料Dbo2、第一選擇資料Dsel1、第二選擇資料Dsel2、運算資料Dop、旋轉資料Dtw及輸出資料Dout中的每一個具有P個樣本,其中,P=2Q ,Q為大於或等於零的整數,且當P2(即Q1)時該等樣本並列。
在本實施例中,蝶形運算器13有兩個實施態樣。第一個實施態樣如圖2所示。第二個實施態樣如圖3及圖4所示。
參閱圖2,在第一個實施態樣中,蝶形運算器13包括P個蝶形單元131。當P=1(即Q=0)時,第一儲存資料的樣本Dbo1(0)及第一選擇資料的樣本Dsel1(0)經蝶形單元131處理,以得到運算資料的樣本Dop(0)及第二待儲存資料的樣本Dbi2(0),其中,Dop(0)=Dbo1(0)+Dsel1(0),且Dbi2(0)={Dbo1(0)-Dsel1(0)或-j[Dbo1(0)-Dsel1(0)]}。當P2(即Q1)時,第一儲存資料及第一選擇資料的樣本Dbo1(0)~Dbo1(P-1)、Dsel1(0)~Dsel1(P-1)被配對,且每一對Dbo1(z)、Dsel1(z)經一相對應蝶形單元131處理,以得到運算資料中的一相對應樣本Dop(z)及第二待儲存資料中的一相對應樣本Dbi2(z),其中,0zP-1,Dop(z)=Dbo1(z)+Dsel1(z),且Dbi2(z)={Dbo1(z)-Dsel1(z)或-j[Dbo1(z)-Dsel1(z)]}。
參閱圖3與圖4,不同於第一個實施態樣,在第二個實施態樣中,P8(即Q3),且蝶形運算器13還包括一交換單元132。圖3及圖4畫出蝶形運算器13在P=8(即Q=3)時的架構。交換單元132可操作以改變第一儲存 資料及第一選擇資料的樣本Dbo1(0)~Dbo1(P-1)、Dsel1(0)~Dsel1(P-1)的配對關係。當P=8(即Q=3)時,如圖3所示,第一種配對關係為第一儲存資料的樣本Dbo1(z)與第一選擇資料的樣本Dsel1(z)配成對,其中,0z7,而如圖4所示,第二種配對關係為第一儲存資料的樣本Dbo1(z)、Dbo1(z+4)配成對,且第一選擇資料的樣本Dsel1(z)、Dsel1(z+4)配成對,其中,0z3。由於在P16(即Q4)時交換單元132如何改變第一儲存資料及第一選擇資料的樣本Dbo1(0)~Dbo1(P-1)、Dsel1(0)~Dsel1(P-1)的配對關係可以從前述說明推知,因此將不多加說明。
參閱圖5,在本實施例中,緩衝器11包括一第一緩衝單元111、一第二緩衝單元112、一第三緩衝單元113、一第四緩衝單元114、一第一交換單元115及一第二交換單元116。每一緩衝單元111~114可操作以儲存其接收到的資料且輸出其儲存的資料。第一交換單元115耦接到第一緩衝單元至第四緩衝單元111~114,接收第一待儲存資料Dbi1及第二待儲存資料Dbi2,且將第一待儲存資料Dbi1及第二待儲存資料Dbi2分別輸出到第一緩衝單元至第四緩衝單元111~114中的兩者。第二交換單元116耦接到第一緩衝單元至第四緩衝單元111~114以接收其等輸出的資料,且可操作以輸出從第一緩衝單元至第四緩衝單元111~114中的兩者接收到的資料分別作為第一儲存資料Dbo1及第二儲存資料Dbo2。
參閱圖6與圖7,本發明管線式快速傅利葉轉換 處理器的第一實施例適用於執行N點快速傅利葉轉換,其中,N=2K ,且K是大於四的奇整數。管線式快速傅利葉轉換處理器包括M個串接的蝶形模組20,其中,M=(K+1)/2。圖6畫出M=4(即K=7,N=128)時的架構。圖7畫出M=3(即K=5,N=32)時的資料流。蝶形模組20中的第一個執行基數為2的蝶形運算。蝶形模組20中的第二個至第M個執行基數為22 的蝶形運算。蝶形模組的第二個至第M-1個中的每一個是一如圖1所示的折疊式蝶形模組。以下以M=4(即K=7,N=128)為例來詳細說明本實施例。由於M為其它數值時的情況可以從以下說明推知,因此將不多加說明。此外,以下將蝶形模組20中的第z個稱為第z蝶形模組21~24,其中,1z4。
參閱圖8與圖9,第一蝶形模組21執行基數為2的蝶形運算,且包含一緩衝器31、一蝶形運算器32、一第一多工器33、一第二多工器34及一乘法器35。緩衝器31接收待儲存資料Dbi,且可操作以儲存待儲存資料Dbi且輸出儲存資料Dbo。蝶形運算器32耦接到緩衝器31以接收儲存資料Dbo,適用於接收輸入資料Din,且對儲存資料Dbo及輸入資料Din做基數為2的蝶形運算,以產生第一運算資料Dop1及第二運算資料Dop2。第一多工器33耦接到蝶形運算器32及緩衝器31,適用於接收輸入資料Din,從蝶形運算器32接收第二運算資料Dop2,且可操作以輸出輸入資料Din及第二運算資料Dop2中的一個作為待儲存資料Dbi。第二多工器34耦接到緩衝器31及蝶形運算器 32以分別接收儲存資料Dbo及第一運算資料Dop1,且可操作以輸出儲存資料Dbo及第一運算資料Dop1中的一個作為選擇資料Dsel。乘法器35耦接到第二多工器34以接收選擇資料Dsel,且產生等於選擇資料Dsel及預設旋轉資料Dtw之乘積的輸出資料Dout。
在本實施例中,第一蝶形模組21的輸入資料Din、待儲存資料Dbi、儲存資料Dbo、第一運算資料Dop1、第二運算資料Dop2、選擇資料Dsel、旋轉資料Dtw及輸出資料Dout中的每一個具有四個並列的樣本。
在本實施例中,第一蝶形模組21的蝶形運算器32包括四個蝶形單元321。儲存資料及輸入資料的樣本Dbo(0)~Dbo(3)、Din(0)~Din(3)被配對,且每一對Dbo(z)、Din(z)經一相對應蝶形單元321處理,以得到第一運算資料中的一相對應樣本Dop1(z)及第二運算資料中的一相對應樣本Dop2(z),其中,0z3,Dop1(z)=Dbo(z)+Din(z),且Dop2(z)=Dbo(z)-Din(z)。
在本實施例中,第一蝶形模組21的緩衝器31包括一第一緩衝單元311、一第二緩衝單元312及一多工單元313。每一緩衝單元311、312是一單埠記憶體(single-port memory),具有八個儲存位置Y0~Y7,接收待儲存資料Dbi,且可操作以儲存待儲存資料Dbi且輸出其儲存的資料。多工單元313耦接到第一緩衝單元311及第二緩衝單元312以接收其等輸出的資料,且可操作以輸出從第一緩衝單元311及第二緩衝單元312中的一個接收到的資料作為儲存資 料Dbo。
參閱圖8與圖10至圖12,以下說明如何控制第一蝶形模組21。在圖10至圖12中,Wz表示緩衝器31受控制將待儲存資料Dbi存入第一緩衝單元311及第二緩衝單元312中的一個的儲存位置Yz,且Rz表示緩衝器31受控制輸出第一緩衝單元311及第二緩衝單元312中的一個的儲存位置Yz所儲存的資料作為儲存資料Dbo,其中,0z7。
如圖10所示,在時脈週期T0~T15中,依序提供一第一符元的一百二十八個原始樣本中的第一個至第六十四個x(0)~x(63)作為輸入資料Din,控制第一多工器33輸出輸入資料Din作為待儲存資料Dbi,且控制緩衝器31儲存待儲存資料Dbi,使得第一符元的原始樣本中的第一個至第六十四個x(0)~x(63)被儲存在緩衝器31中。
如圖11所示,在時脈週期T16~T31中,依序提供第一符元的原始樣本中的第六十五個至第一百二十八個x(64)~x(127)作為輸入資料Din,控制緩衝器31依序輸出第一符元的原始樣本中的第一個至第六十四個x(0)~x(63)作為儲存資料Dbo,控制第一多工器33輸出第二運算資料Dop2作為待儲存資料Dbi,控制第二多工器34輸出第一運算資料Dop1作為選擇資料Dsel,且控制緩衝器31儲存待儲存資料Dbi,使得根據第一符元的原始樣本x(0)~x(127),蝶形運算器32依序得到關聯於第一符元的一百二十八個最終樣本中的第一個至第六十四個f(0)~f(63)作為第一運 算資料Dop1,且依序得到關聯於第一符元的最終樣本中的第六十五個至第一百二十八個f(64)~f(127)作為第二運算資料Dop2,使得乘法器35根據關聯於第一符元的最終樣本中的第一個至第六十四個f(0)~f(63)依序得到關聯於第一符元的一百二十八個輸出樣本中的第一個至第六十四個a(0)~a(63)作為輸出資料Dout,且使得關聯於第一符元的最終樣本中的第六十五個至第一百二十八個f(64)~f(127)被儲存在緩衝器31中。此處,f(z)=x(z)+x(z+64),f(z+64)=x(z)-x(z+64),且a(z)=f(z),其中,0z63。
如圖12所示,在時脈週期T32~T47中,依序提供一第二符元的一百二十八個原始樣本中的第一個至第六十四個x(0)~x(63)作為輸入資料Din,控制緩衝器31依序輸出關聯於第一符元的最終樣本中的第六十五個至第一百二十八個f(64)~f(127)作為儲存資料Dbo,控制第一多工器33輸出輸入資料Din作為待儲存資料Dbi,控制第二多工器34輸出儲存資料Dbo作為選擇資料Dsel,且控制緩衝器31儲存待儲存資料Dbi,使得乘法器35根據關聯於第一符元的最終樣本中的第六十五個至第一百二十八個f(64)~f(127)依序得到關聯於第一符元的輸出樣本中的第六十五個至第一百二十八個a(64)~a(127)作為輸出資料Dout,且使得第二符元的原始樣本中的第一個至第六十四個x(0)~x(63)被儲存在緩衝器31中。此處,a(z+64)=f(z+64)×Wz ,其中,0z63,且Wz =e-j(2πz/128)
第一蝶形模組21所產生的關聯於第一符元的輸 出樣本a(0)~a(127)是第一符元的原始樣本x(0)~x(127)經基數為2的蝶形運算所得到的,且以下稱為第一符元的第一級處理樣本。由於後續如何控制第一蝶形模組21以產生第z符元的第一級處理樣本a(0)~a(127)可以依前述說明類推,因此將不多加說明,其中,z2。
值得注意的是,在本實施例中,第一蝶形模組21的緩衝器31經適當控制以從時脈週期T15開始同時進行以下動作:(1)將待儲存資料Dbi存入第一緩衝單元311及第二緩衝單元312中的一個,及(2)從第一緩衝單元311及第二緩衝單元312中的另一個輸出儲存資料Dbo,因此,第一緩衝單元311及第二緩衝單元312中的每一個能以單埠記憶體來實現,以降低緩衝器31所佔的面積。但是在其它實施例中,緩衝器31也能以一多埠記憶體(multi-port memory)來實現。
參閱圖6,第二蝶形模組22及第三蝶形模組23中的每一個執行基數為22 的蝶形運算,且是以圖1、圖2及圖5所示的折疊式蝶形模組來實現,其中,P=4。參閱圖5與圖6,在本實施例中,對於第二蝶形模組22的緩衝器11而言,第一緩衝單元至第四緩衝單元111~114中的每一個是一單埠記憶體,且具有四個儲存位置Y0~Y3,且對於第三蝶形模組23的緩衝器11而言,第一緩衝單元111及第四緩衝單元114中的每一個是一單埠記憶體,且具有一儲存位置Y0,第二緩衝單元112及第三緩衝單元113中的每一個是一單埠暫存器群組(single-port register file)。
參閱圖1與圖13至圖15,以下說明如何控制第二蝶形模組22(見圖6)。在圖13至圖15中,Wz表示緩衝器11受控制將第一待儲存資料Dbi1及第二待儲存資料Dbi2中的一個存入第一緩衝單元至第四緩衝單元111~114中的一個的儲存位置Yz,且Rz表示緩衝器11受控制輸出第一緩衝單元至第四緩衝單元111~114中的一個的儲存位置Yz所儲存的資料作為第一儲存資料Dbo1及第二儲存資料Dbo2中的一個,其中,0z3。此外,第一符元的第一級處理樣本a(0)~a(127)被分成一包括樣本a(0)~a(63)的第一群組,及一包括樣本a(64)~a(127)的第二群組,第二符元的第一級處理樣本a(0)~a(127)被分成一包括樣本a(0)~a(63)的第三群組,及一包括樣本a(64)~a(127)的第四群組,後面依此類推。
如圖13所示,在時脈週期T16~T23中,依序提供第一群組的六十四個樣本中的第一個至第三十二個a(0)~a(31)作為輸入資料Din,控制第二多工器14輸出輸入資料Din作為第一待儲存資料Dbi1,且控制緩衝器11儲存第一待儲存資料Dbi1,使得第一群組的樣本中的第一個至第三十二個a(0)~a(31)被儲存在緩衝器11中。
如圖13所示,在時脈週期T24~T31中,依序提供第一群組的樣本中的第三十三個至第六十四個a(32)~a(63)作為輸入資料Din,控制緩衝器11依序輸出第一群組的樣本中的第一個至第三十二個a(0)~a(31)作為第一儲存資料Dbo1,控制第一多工器12輸出輸入資料Din 作為第一選擇資料Dsel1,控制第二多工器14輸出運算資料Dop作為第一待儲存資料Dbi1,且控制緩衝器11儲存第一待儲存資料Dbi1及第二待儲存資料Dbi2,使得根據第一群組的樣本a(0)~a(63),蝶形運算器13依序得到關聯於第一群組的六十四個中間樣本中的第一個至第三十二個i(0)~i(31)作為運算資料Dop,且依序得到關聯於第一群組的中間樣本中的第三十三個至第六十四個i(32)~i(63)作為第二待儲存資料Dbi2,且使得關聯於第一群組的中間樣本i(0)~i(63)被儲存在緩衝器11中。此處,i(z1)=a(z1)+a(z1+32),i(z2+32)=a(z2)-a(z2+32),且i(z3+32)=-j[a(z3)-a(z3+32)],其中,0z131,0z215,且16z331。
如圖14所示,在時脈週期T32~T39中,依序提供第二群組的六十四個樣本中的第一個至第三十二個a(64)~a(95)作為輸入資料Din,控制緩衝器11依序輸出關聯於第一群組的中間樣本中的第一個至第十六個及第三十三個至第四十八個i(0)~i(15)、i(32)~i(47)作為第一儲存資料Dbo1,且依序輸出關聯於第一群組的中間樣本中的第十七個至第三十二個及第四十九個至第六十四個i(16)~i(31)、i(48)~i(63)作為第二儲存資料Dbo2,控制第一多工器12輸出第二儲存資料Dbo2作為第一選擇資料Dsel1,控制第二多工器14輸出輸入資料Din作為第一待儲存資料Dbi1,控制第三多工器15輸出運算資料Dop作為第二選擇資料Dsel2,且控制緩衝器11儲存第一待儲存資料Dbi1及第二 待儲存資料Dbi2,使得根據關聯於第一群組的中間樣本i(0)~i(64),蝶形運算器13依序得到關聯於第一群組的六十四個最終樣本中的第一個至第十六個及第三十三個至第四十八個f(0)~f(15)、f(32)~f(47)作為運算資料Dop,且依序得到關聯於第一群組的最終樣本中的第十七個至第三十二個及第四十九個至第六十四個f(16)~f(31)、f(48)~f(63)作為第二待儲存資料Dbi2,使得乘法器16根據關聯於第一群組的最終樣本中的第一個至第十六個及第三十三個至第四十八個f(0)~f(15)、f(32)~f(47)依序得到關聯於第一群組的六十四個輸出樣本中的第一個至第十六個及第三十三個至第四十八個b(0)~b(15)、b(32)~b(47)作為輸出資料Dout,且使得第二群組的樣本中的第一個至第三十二個a(64)~a(95)及關聯於第一群組的最終樣本中的第十七個至第三十二個與第四十九個至第六十四個f(16)~f(31)、f(48)~f(63)被儲存在緩衝器11中。此處,f(z1)=i(z1)+i(z1+16),f(z1+16)=i(z1)-i(z1+16),f(z1+32)=i(z1+32)+i(z1+48),f(z1+48)=i(z1+32)-i(z1+48),b(z1)=f(z1),且b(z1+32)=f(z1+32)×W2z1 ,其中,0z115。
如圖14所示,在時脈週期T40~T47中,依序提供第二群組的樣本中的第三十三個至第六十四個a(96)~a(127)作為輸入資料Din,控制緩衝器11依序輸出第二群組的樣本中的第一個至第三十二個a(64)~a(95)作為第一儲存資料Dbo1,且依序輸出關聯於第一群組的最終樣本中的第十七個至第三十二個及第四十九個至第六十四個 f(16)~f(31)、f(48)~f(63)作為第二儲存資料Dbo2,控制第一多工器12輸出輸入資料Din作為第一選擇資料Dsel1,控制第二多工器14輸出運算資料Dop作為第一待儲存資料Dbi1,控制第三多工器15輸出第二儲存資料Dbo2作為第二選擇資料Dsel2,且控制緩衝器11儲存第一待儲存資料Dbi1及第二待儲存資料Dbi2,使得根據第二群組的樣本a(64)~a(127),蝶形運算器13依序得到關聯於第二群組的六十四個中間樣本中的第一個至第三十二個i(64)~i(95)作為運算資料Dop,且依序得到關聯於第二群組的中間樣本中的第三十三個至第六十四個i(96)~i(127)作為第二待儲存資料Dbi2,使得乘法器16根據關聯於第一群組的最終樣本中的第十七個至第三十二個及第四十九個至第六十四個f(16)~f(31)、f(48)~f(63)依序得到關聯於第一群組的輸出樣本中的第十七個至第三十二個及第四十九個至第六十四個b(16)~b(31)、b(48)~b(63)作為輸出資料Dout,且使得關聯於第二群組的中間樣本i(64)~i(127)被儲存在緩衝器11中。此處,i(z1+64)=a(z1+64)+a(z1+96),i(z2+96)=a(z2+64)-a(z2+96),i(z3+96)=-j[a(z3+64)-a(z3+96)],b(z2+16)=f(z2+16)×W4z2 ,且b(z2+48)=f(z2+48)×W6z2 ,其中,0z131,0z215,且16z331。
如圖15所示,在時脈週期T48~T55中,依序提供第三群組的六十四個樣本中的第一個至第三十二個a(0)~a(31)作為輸入資料Din,控制緩衝器11依序輸出關聯 於第二群組的中間樣本中的第一個至第十六個及第三十三個至第四十八個i(64)~i(79)、i(96)~i(111)作為第一儲存資料Dbo1,且依序輸出關聯於第二群組的中間樣本中的第十七個至第三十二個及第四十九個至第六十四個i(80)~i(95)、i(112)~i(127)作為第二儲存資料Dbo2,控制第一多工器12輸出第二儲存資料Dbo2作為第一選擇資料Dsel1,控制第二多工器14輸出輸入資料Din作為第一待儲存資料Dbi1,控制第三多工器15輸出運算資料Dop作為第二選擇資料Dsel2,且控制緩衝器11儲存第一待儲存資料Dbi1及第二待儲存資料Dbi2,使得根據關聯於第二群組的中間樣本i(64)~i(127),蝶形運算器13依序得到關聯於第二群組的六十四個最終樣本中的第一個至第十六個及第三十三個至第四十八個f(64)~f(79)、f(96)~f(111)作為運算資料Dop,且依序得到關聯於第二群組的最終樣本中的第十七個至第三十二個及第四十九個至第六十四個f(80)~f(95)、f(112)~f(127)作為第二待儲存資料Dbi2,使得乘法器16根據關聯於第二群組的最終樣本中的第一個至第十六個及第三十三個至第四十八個f(64)~f(79)、f(96)~f(111)依序得到關聯於第二群組的六十四個輸出樣本中的第一個至第十六個及第三十三個至第四十八個b(64)~b(79)、b(96)~b(111)作為輸出資料Dout,且使得第三群組的樣本中的第一個至第三十二個a(0)~a(31)及關聯於第二群組的最終樣本中的第十七個至第三十二個與第四十九個至第六十四個f(80)~f(95)、f(112)~f(127)被儲存在緩衝器11中。此處, f(z1+64)=i(z1+64)+i(z1+80),f(z1+80)=i(z1+64)-i(z1+80),f(z1+96)=i(z1+96)+i(z1+112),f(z1+112)=i(z1+96)-i(z1+112),b(z1+64)=f(z1+64),且b(z1+96)=f(z1+96)×W2z1 ,其中,0z115。
如圖15所示,在時脈週期T56~T63中,依序提供第三群組的樣本中的第三十三個至第六十四個a(32)~a(63)作為輸入資料Din,控制緩衝器11依序輸出第三群組的樣本中的第一個至第三十二個a(0)~a(31)作為第一儲存資料Dbo1,且依序輸出關聯於第二群組的最終樣本中的第十七個至第三十二個及第四十九個至第六十四個f(80)~f(95)、f(112)~f(127)作為第二儲存資料Dbo2,控制第一多工器12輸出輸入資料Din作為第一選擇資料Dsel1,控制第二多工器14輸出運算資料Dop作為第一待儲存資料Dbi1,控制第三多工器15輸出第二儲存資料Dbo2作為第二選擇資料Dsel2,且控制緩衝器11儲存第一待儲存資料Dbi1及第二待儲存資料Dbi2,使得根據第三群組的樣本a(0)~a(63),蝶形運算器13依序得到關聯於第三群組的六十四個中間樣本中的第一個至第三十二個i(0)~i(31)作為運算資料Dop,且依序得到關聯於第三群組的中間樣本中的第三十三個至第六十四個i(32)~i(63)作為第二待儲存資料Dbi2,使得乘法器16根據關聯於第二群組的最終樣本中的第十七個至第三十二個及第四十九個至第六十四個f(80)~f(95)、f(112)~f(127)依序得到關聯於第二群組的輸出樣本中的第十七個至第三十二個及第四十九個至第六十四 個b(80)~b(95)、b(112)~b(127)作為輸出資料Dout,且使得關聯於第三群組的中間樣本i(0)~i(63)被儲存在緩衝器11中。此處,i(z1)=a(z1)+a(z1+32),i(z2+32)=a(z2)-a(z2+32),i(z3+32)=-j[a(z3)-a(z3+32)],b(z2+80)=f(z2+80)×W4z2 ,且b(z2+112)=f(z2+112)×W6z2 ,其中,0z131,0z215,且16z331。
第二蝶形模組22(見圖6)所產生的關聯於第一群組及第二群組的輸出樣本b(0)~b(127)是第一符元的第一級處理樣本a(0)~a(127)經基數為22 的蝶形運算所得到的,且以下稱為第一符元的第二級處理樣本。由於後續如何控制第二蝶形模組22(見圖6)以產生第z符元的第二級處理樣本b(0)~b(127)可以依前述說明類推,因此將不多加說明,其中,z2。
值得注意的是,在本實施例中,第二蝶形模組22(見圖6)的緩衝器11經適當控制以從時脈週期T31開始同時進行以下動作:(1)將第一待儲存資料Dbi1及第二待儲存資料Dbi2分別存入第一緩衝單元至第四緩衝單元111~114中的兩個,及(2)從第一緩衝單元至第四緩衝單元111~114中的另兩個分別輸出第一儲存資料Dbo1及第二儲存資料Dbo2,因此,第一緩衝單元至第四緩衝單元111~114中的每一個能以單埠記憶體來實現,以降低緩衝器11所佔的面積。但是在其它實施例中,緩衝器11也能以一多埠記憶體來實現。
參閱圖1、圖16與圖17,以下說明如何控制第 三蝶形模組23(見圖6)。在圖15與圖16中,W0表示緩衝器11受控制將第一待儲存資料Dbi1及第二待儲存資料Dbi2中的一個存入第一緩衝單元111及第四緩衝單元114中的一個的儲存位置Y0,R0表示緩衝器11受控制輸出第一緩衝單元111及第四緩衝單元114中的一個的儲存位置Y0所儲存的資料作為第一儲存資料Dbo1及第二儲存資料Dbo2中的一個,且W表示緩衝器11將第一待儲存資料Dbi1及第二待儲存資料Dbi2中的一個存入第二緩衝單元112及第三緩衝單元113中的一個。此外,第一符元的第二級處理樣本b(0)~b(127)被分成一包括樣本b(0)~b(15)的第一群組、一包括樣本b(32)~b(47)的第二群組、一包括樣本b(16)~b(31)的第三群組、一包括樣本b(48)~b(63)的第四群組、一包括樣本b(64)~b(79)的第五群組、一包括樣本b(96)~b(111)的第六群組、一包括樣本b(80)~b(95)的第七群組,及一包括樣本b(112)~b(127)的第八群組,第二符元的第二級處理樣本b(0)~b(127)被分成一包括樣本b(0)~b(15)的第九群組、一包括樣本b(32)~b(47)的第十群組、一包括樣本b(16)~b(31)的第十一群組、一包括樣本b(48)~b(63)的第十二群組、一包括樣本b(64)~b(79)的第十三群組、一包括樣本b(96)~b(111)的第十四群組、一包括樣本b(80)~b(95)的第十五群組,及一包括樣本b(112)~b(127)的第十六群組,後面依此類推。
如圖16所示,在時脈週期T32、T33中,依序提供第一群組的十六個樣本中的第一個至第八個b(0)~b(7) 作為輸入資料Din,控制第二多工器14輸出輸入資料Din作為第一待儲存資料Dbi1,且控制緩衝器11儲存第一待儲存資料Dbi1,使得第一群組的樣本中的第一個至第八個b(0)~b(7)被儲存在緩衝器11中。
如圖16所示,在時脈週期T34、T35中,依序提供第一群組的樣本中的第九個至第十六個b(8)~b(15)作為輸入資料Din,控制緩衝器11依序輸出第一群組的樣本中的第一個至第八個b(0)~b(7)作為第一儲存資料Dbo1,控制第一多工器12輸出輸入資料Din作為第一選擇資料Dsel1,控制第二多工器14輸出運算資料Dop作為第一待儲存資料Dbi1,且控制緩衝器11儲存第一待儲存資料Dbi1及第二待儲存資料Dbi2,使得根據第一群組的樣本b(0)~b(15),蝶形運算器13依序得到關聯於第一群組的十六個中間樣本中的第一個至第八個i(0)~i(7)作為運算資料Dop,且依序得到關聯於第一群組的中間樣本中的第九個至第十六個i(8)~i(15)作為第二待儲存資料Dbi2,且使得關聯於第一群組的中間樣本i(0)~i(15)被儲存在緩衝器11中。此處,i(z1)=b(z1)+b(z1+8),i(z2+8)=b(z2)-b(z2+8),且i(z3+8)=-j[b(z3)-b(z3+8)],其中,0z17,0z23,且4z37。
如圖16所示,在時脈週期T36、T37中,依序提供第二群組的十六個樣本中的第一個至第八個b(32)~b(39)作為輸入資料Din,控制緩衝器11依序輸出關聯於第一群組的中間樣本中的第一個至第四個及第九個至 第十二個i(0)~i(3)、i(8)~i(11)作為第一儲存資料Dbo1,且依序輸出關聯於第一群組的中間樣本中的第五個至第八個及第十三個至第十六個i(4)~i(7)、i(12)~i(15)作為第二儲存資料Dbo2,控制第一多工器12輸出第二儲存資料Dbo2作為第一選擇資料Dsel1,控制第二多工器14輸出輸入資料Din作為第一待儲存資料Dbi1,控制第三多工器15輸出運算資料Dop作為第二選擇資料Dsel2,且控制緩衝器11儲存第一待儲存資料Dbi1及第二待儲存資料Dbi2,使得根據關聯於第一群組的中間樣本i(0)~i(15),蝶形運算器13依序得到關聯於第一群組的十六個最終樣本中的第一個至第四個及第九個至第十二個f(0)~f(3)、f(8)~f(11)作為運算資料Dop,且依序得到關聯於第一群組的最終樣本中的第五個至第八個及第十三個至第十六個f(4)~f(7)、f(12)~f(15)作為第二待儲存資料Dbi2,使得乘法器16根據關聯於第一群組的最終樣本中的第一個至第四個及第九個至第十二個f(0)~f(3)、f(8)~f(11)依序得到關聯於第一群組的十六個輸出樣本中的第一個至第四個及第九個至第十二個c(0)~c(3)、c(8)~c(11)作為輸出資料Dout,且使得第二群組的樣本中的第一個至第八個b(32)~b(39)及關聯於第一群組的最終樣本中的第五個至第八個與第十三個至第十六個f(4)~f(7)、f(12)~f(15)被儲存在緩衝器11中。此處,f(z1)=i(z1)+i(z1+4),f(z1+4)=i(z1)-i(z1+4),f(z1+8)=i(z1+8)+i(z1+12),f(z1+12)=i(z1+8)-i(z1+12),c(z1)=f(z1),且c(z1+8)=f(z1+8)×W8z1 ,其中,0z13。
如圖16所示,在時脈週期T38、T39中,依序提供第二群組的樣本中的第九個至第十六個b(40)~b(47)作為輸入資料Din,控制緩衝器11依序輸出第二群組的樣本中的第一個至第八個b(32)~b(39)作為第一儲存資料Dbo1,且依序輸出關聯於第一群組的最終樣本中的第五個至第八個及第十三個至第十六個f(4)~f(7)、f(12)~f(15)作為第二儲存資料Dbo2,控制第一多工器12輸出輸入資料Din作為第一選擇資料Dsel1,控制第二多工器14輸出運算資料Dop作為第一待儲存資料Dbi1,控制第三多工器15輸出第二儲存資料Dbo2作為第二選擇資料Dsel2,且控制緩衝器11儲存第一待儲存資料Dbi1及第二待儲存資料Dbi2,使得根據第二群組的樣本b(32)~b(47),蝶形運算器13依序得到關聯於第二群組的十六個中間樣本中的第一個至第八個i(32)~i(39)作為運算資料Dop,且依序得到關聯於第二群組的中間樣本中的第九個至第十六個i(40)~i(47)作為第二待儲存資料Dbi2,使得乘法器16根據關聯於第一群組的最終樣本中的第五個至第八個及第十三個至第十六個f(4)~f(7)、f(12)~f(15)依序得到關聯於第一群組的輸出樣本中的第五個至第八個及第十三個至第十六個c(4)~c(7)、c(12)~c(15)作為輸出資料Dout,且使得關聯於第二群組的中間樣本i(32)~i(47)被儲存在緩衝器11中。此處,i(z1+32)=b(z1+32)+b(z1+40),i(z2+40)=b(z2+32)-b(z2+40),i(z3+40)=-j[b(z3+32)-b(z3+40)],c(z2+4)=f(z2+4)×W16z2 ,且c(z2+12)=f(z2+12)×W24z2 ,其中,0z17,0z23, 且4z37。
如圖16所示,在時脈週期T40、T41中,依序提供第三群組的十六個樣本中的第一個至第八個b(16)~b(23)作為輸入資料Din,控制緩衝器11依序輸出關聯於第二群組的中間樣本中的第一個至第四個及第九個至第十二個i(32)~i(35)、i(40)~i(43)作為第一儲存資料Dbo1,且依序輸出關聯於第二群組的中間樣本中的第五個至第八個及第十三個至第十六個i(36)~i(39)、i(44)~i(47)作為第二儲存資料Dbo2,控制第一多工器12輸出第二儲存資料Dbo2作為第一選擇資料Dsel1,控制第二多工器14輸出輸入資料Din作為第一待儲存資料Dbi1,控制第三多工器15輸出運算資料Dop作為第二選擇資料Dsel2,且控制緩衝器11儲存第一待儲存資料Dbi1及第二待儲存資料Dbi2,使得根據關聯於第二群組的中間樣本i(32)~i(47),蝶形運算器13依序得到關聯於第二群組的十六個最終樣本中的第一個至第四個及第九個至第十二個f(32)~f(35)、f(40)~f(43)作為運算資料Dop,且依序得到關聯於第二群組的最終樣本中的第五個至第八個及第十三個至第十六個f(36)~f(39)、f(44)~f(47)作為第二待儲存資料Dbi2,使得乘法器16根據關聯於第二群組的最終樣本中的第一個至第四個及第九個至第十二個f(32)~f(35)、f(40)~f(43)依序得到關聯於第二群組的十六個輸出樣本中的第一個至第四個及第九個至第十二個c(32)~c(35)、c(40)~c(43)作為輸出資料Dout,且使得第三群組的樣本中的第一個至第八個b(16)~b(23)及關聯 於第二群組的最終樣本中的第五個至第八個與第十三個至第十六個f(36)~f(39)、f(44)~f(47)被儲存在緩衝器11中。此處,f(z1+32)=i(z1+32)+i(z1+36),f(z1+36)=i(z1+32)-i(z1+36),f(z1+40)=i(z1+40)+i(z1+44),f(z1+44)=i(z1+40)-i(z1+44),c(z1+32)=f(z1+32),且c(z1+40)=f(z1+40)×W8z1 ,其中,0z13。
如圖16所示,在時脈週期T42、T43中,依序提供第三群組的樣本中的第九個至第十六個b(24)~b(31)作為輸入資料Din,控制緩衝器11依序輸出第三群組的樣本中的第一個至第八個b(16)~b(23)作為第一儲存資料Dbo1,且依序輸出關聯於第二群組的最終樣本中的第五個至第八個及第十三個至第十六個f(36)~f(39)、f(44)~f(47)作為第二儲存資料Dbo2,控制第一多工器12輸出輸入資料Din作為第一選擇資料Dsel1,控制第二多工器14輸出運算資料Dop作為第一待儲存資料Dbi1,控制第三多工器15輸出第二儲存資料Dbo2作為第二選擇資料Dsel2,且控制緩衝器11儲存第一待儲存資料Dbi1及第二待儲存資料Dbi2,使得根據第三群組的樣本b(16)~b(31),蝶形運算器13依序得到關聯於第三群組的十六個中間樣本中的第一個至第八個i(16)~i(23)作為運算資料Dop,且依序得到關聯於第三群組的中間樣本中的第九個至第十六個i(24)~i(31)作為第二待儲存資料Dbi2,使得乘法器16根據關聯於第二群組的最終樣本中的第五個至第八個及第十三個至第十六個f(36)~f(39)、f(44)~f(47)依序得到關聯於第二群組的輸出樣 本中的第五個至第八個及第十三個至第十六個c(36)~c(39)、c(44)~c(47)作為輸出資料Dout,且使得關聯於第三群組的中間樣本i(16)~i(31)被儲存在緩衝器11中。此處,i(z1+16)=b(z1+16)+b(z1+24),i(z2+24)=b(z2+16)-b(z2+24),i(z3+24)=-j[b(z3+16)-b(z3+24)],c(z2+36)=f(z2+36)×W16z2 ,且c(z2+44)=f(z2+44)×W24z2 ,其中,0z17,0z23,且4z37。
由於後續如何控制第三蝶形模組23(見圖6)以產生第三群組至第八群組中的每一個的十六個輸出樣本可以依前述說明類推,因此將不多加說明。第三蝶形模組23(見圖6)所產生的關聯於第一群組至第八群組的輸出樣本c(0)~c(127)即是第一符元的第二級處理樣本b(0)~b(127)經基數為22 的蝶形運算所得到的,且以下稱為第一符元的第三級處理樣本。由於後續如何控制第三蝶形模組23(見圖6)以產生第z符元的第三級處理樣本c(0)~c(127)可以依前述說明類推,因此將不多加說明,其中,z2。
值得注意的是,在本實施例中,第三蝶形模組23(見圖6)經適當控制,以從時脈週期T40開始每隔八個時脈週期重複執行相同的動作,因此,用於第三蝶形模組23的控制邏輯較容易被模組化。此外,在其它實施例中,可以使用三個單埠記憶體及一單埠暫存器群組作為第三蝶形模組23(見圖6)的緩衝器11的第一緩衝單元至第四緩衝單元111~114,可以使用四個單埠暫存器群組作為第三蝶形模組23(見圖6)的緩衝器11的第一緩衝單元至第四緩 衝單元111~114,可以使用四個單埠記憶體作為第三蝶形模組23(見圖6)的緩衝器11的第一緩衝單元至第四緩衝單元111~114,或者可以使用一多埠記憶體作為第三蝶形模組23(見圖6)的緩衝器11。對於第三蝶形模組23(見圖6)的緩衝器11而言,第一緩衝單元至第四緩衝單元111~114中的任一個在需要具有多個儲存位置時以單埠記憶體來實現為佳,否則以單埠暫存器群組來實現。
參閱圖18,第四蝶形模組24執行基數為22 的蝶形運算,且包括一第一蝶形運算器41及一第二蝶形運算器42。第一蝶形運算器41接收一輸入資料Din,且對輸入資料Din做基數為2的蝶形運算,以產生中間資料Di。第二蝶形運算器42耦接到第一蝶形運算器41以接收中間資料Di,且對中間資料Di做基數為2的蝶形運算,以產生輸出資料Dout。
在本實施例中,第四蝶形模組24的輸入資料Din、中間資料Di及輸出資料Dout中的每一個具有四個並列的樣本。
在本實施例中,第四蝶形模組24的第一蝶形運算器41包括兩個蝶形單元411,且第四蝶形模組24的第二蝶形運算器42包括兩個蝶形單元421。輸入資料的樣本Din(0)~Din(3)被配對,且每一對Din(z)、Din(z+2)經第一蝶形運算器41中的一相對應蝶形單元411處理,以得到中間資料中的二相對應樣本Di(z)、Di(z+2),其中,0z1,Di(z)=Din(z)+Din(z+2),Di(z+2)={Din(z)-Din(z+2)或 -j[Din(z)-Din(z+2)]}。中間資料的樣本Di(0)~Di(3)被配對,且每一對Di(2z)、Di(2z+1)經第二蝶形運算器42中的一相對應蝶形單元421處理,以得到輸出資料中的二相對應樣本Dout(2z)、Dout(2z+1),其中,0z1,Dout(2z)=Di(2z)+Di(2z+1),Dout(2z+1)=Di(2z)-Di(2z+1)。
參閱圖18與圖19,以下說明第四蝶形模組24的操作。在時脈週期T36~T67中,第四蝶形模組24依序接收第一符元的第三級處理樣本c(0)~c(127)作為輸入資料Din,根據第一符元的第三級處理樣本c(0)~c(127)依序產生關聯於第一符元的一百二十八個中間樣本i(0)~i(127)作為中間資料Di,且根據關聯於第一符元的中間樣本i(0)~i(127)依序產生關聯於第一符元的一百二十八個輸出樣本X(0)~X(127)作為輸出資料Dout。此處,i(4z1)=c(4z1)+c(4z1+2),i(4z1+1)=c(4z1+1)+c(4z1+3),i(4z1+2)=c(4z1)-c(4z1+2),i(4z1+3)=-j[c(4z1+1)-c(4z1+3)],X(4z1 )=i(4z1)+i(4z1+1),X(4z1+1 )=i(4z1)-i(4z1+1),X(4z1+2 )=i(4z1+2)+i(4z1+3),X(4z1+3 )=i(4z1+2)-i(4z1+3),其中,0z131,且z 表示z的位元反轉結果。
第四蝶形模組24所產生的關聯於第一符元的輸出樣本X(0)~X(127)是第一符元的第三級處理樣本c(0)~c(127)經基數為22 的蝶形運算所得到的,也是第一符元的原始樣本x(0)~x(127)經快速傅利葉轉換所得到的,且以下稱為第一符元的最終處理樣本。由於第四蝶形模組24後續如何操作以產生第z符元的最終處理樣本X(0)~X(127) 可以依前述說明類推,因此將不多加說明,其中,z2。
參閱圖20與圖21,本發明管線式快速傅利葉轉換處理器之第二實施例適用於執行N點快速傅利葉轉換,其中,N=2K ,且K是大於或等於四的偶整數。管線式快速傅利葉轉換處理器包括M個串接的蝶形模組50,其中,M=K/2。圖20畫出M=4(即K=8,N=256)時的架構。圖21畫出M=2(即K=4,N=16)時的資料流。每一蝶形模組50執行基數為22 的蝶形運算。蝶形模組50的第一個至第M-1個中的每一個是一如圖1所示的折疊式蝶形模組。以下以M=4(即K=8,N=256)為例來詳細說明本實施例。由於M為其它數值時的情況可以從以下說明推知,因此將不多加說明。此外,以下將蝶形模組50中的第z個稱為第z蝶形模組51~54,其中,1z4。
參閱圖20,第一蝶形模組51及第二蝶形模組52中的每一個執行基數為22 的蝶形運算,且是以圖1、圖2及圖5所示的折疊式蝶形模組來實現,其中,P=8。第三蝶形模組53執行基數為22 的蝶形運算,且是以圖1及圖3至圖5所示的折疊式蝶形模組來實現,其中,P=8。由於第一蝶形模組至第三蝶形模組51~53中的每一個的控制方式可以從前述第二蝶形模組22(見圖6)及第三蝶形模組23(見圖6)的控制方式推知,因此將不多加說明。
參閱圖22,第四蝶形模組54執行基數為22 的蝶形運算,且包括一第一蝶形運算器61及一第二蝶形運算器62。第一蝶形運算器61接收一輸入資料Din,且對輸入 資料Din做基數為2的蝶形運算,以產生中間資料Di。第二蝶形運算器62耦接到第一蝶形運算器61以接收中間資料Di,且對中間資料Di做基數為2的蝶形運算,以產生輸出資料Dout。
在本實施例中,第四蝶形模組54的輸入資料Din、中間資料Di及輸出資料Dout中的每一個具有八個並列的樣本,第四蝶形模組54的第一蝶形運算器61包括四個蝶形單元611,且第四蝶形模組54的第二蝶形運算器62包括四個蝶形單元621。由於第四蝶形模組54的操作可以從前述第四蝶形模組24(見圖18)的操作推知,因此將不多加說明。
綜上所述,當圖1所示的折疊式蝶形模組被適當控制時,可以使蝶形運算器13執行兩次基數為2的蝶形運算來完成一次基數為22 的蝶形運算,從而提高蝶形運算器13中的蝶形單元131(見圖2至圖4)的使用率。所以前述實施例確實能達成本發明之目的。
惟以上所述者,僅為本發明之實施例而已,當不能以此限定本發明實施之範圍,即大凡依本發明申請專利範圍及專利說明書內容所作之簡單的等效變化與修飾,皆仍屬本發明專利涵蓋之範圍內。
11‧‧‧緩衝器
12‧‧‧第一多工器
13‧‧‧蝶形運算器
14‧‧‧第二多工器
15‧‧‧第三多工器
16‧‧‧乘法器

Claims (10)

  1. 一種折疊式蝶形模組,適用於執行基數為22 的蝶形運算,該折疊式蝶形模組包含:一緩衝器,接收第一待儲存資料及第二待儲存資料,且可操作以儲存該第一待儲存資料及該第二待儲存資料且輸出第一儲存資料及第二儲存資料;一第一多工器,耦接到該緩衝器以接收該第二儲存資料,適用於接收輸入資料,且可操作以輸出該第二儲存資料及該輸入資料中的一個作為第一選擇資料;一蝶形運算器,耦接到該緩衝器及該第一多工器以分別接收該第一儲存資料及該第一選擇資料,且對該第一儲存資料及該第一選擇資料做基數為2的蝶形運算,以產生運算資料及該第二待儲存資料;一第二多工器,耦接到該蝶形運算器及該緩衝器,適用於接收該輸入資料,從該蝶形運算器接收該運算資料,且可操作以輸出該輸入資料及該運算資料中的一個作為該第一待儲存資料;一第三多工器,耦接到該蝶形運算器及該緩衝器以分別接收該運算資料及該第二儲存資料,且可操作以輸出該運算資料及該第二儲存資料中的一個作為第二選擇資料;及一乘法器,耦接到該第三多工器以接收該第二選擇資料,且產生等於該第二選擇資料及預設旋轉資料之乘積的輸出資料。
  2. 如請求項1所述的折疊式蝶形模組,其中,該緩衝器包括:一第一緩衝單元、一第二緩衝單元、一第三緩衝單元及一第四緩衝單元,每一緩衝單元可操作以儲存其接收到的資料且輸出其儲存的資料;一第一交換單元,耦接到該第一緩衝單元至該第四緩衝單元,接收該第一待儲存資料及該第二待儲存資料,且將該第一待儲存資料及該第二待儲存資料分別輸出到該第一緩衝單元至該第四緩衝單元中的兩者;及一第二交換單元,耦接到該第一緩衝單元至該第四緩衝單元以接收其等輸出的資料,且可操作以輸出從該第一緩衝單元至該第四緩衝單元中的兩者接收到的資料分別作為該第一儲存資料及該第二儲存資料。
  3. 如請求項2所述的折疊式蝶形模組,其中,該緩衝器的該第一緩衝單元至該第四緩衝單元中的每一個是一單埠記憶體。
  4. 如請求項2所述的折疊式蝶形模組,其中,該緩衝器的該第一緩衝單元及該第四緩衝單元中的每一個是一單埠記憶體,該緩衝器的該第二緩衝單元及該第三緩衝單元中的每一個是一單埠暫存器群組。
  5. 如請求項2所述的折疊式蝶形模組,其中,該緩衝器的該第一緩衝單元至該第四緩衝單元中的每一個是一單埠暫存器群組。
  6. 如請求項1所述的折疊式蝶形模組,其中,該輸入資料 、該第一待儲存資料、該第二待儲存資料、該第一儲存資料、該第二儲存資料、該第一選擇資料、該第二選擇資料、該運算資料、該旋轉資料及該輸出資料中的每一個具有P個樣本,其中,P=2Q ,Q為大於或等於零的整數,且當Q1時該等樣本並列。
  7. 如請求項6所述的折疊式蝶形模組,其中,Q3,該第一儲存資料及該第一選擇資料的該等樣本被配對,且每一對經該蝶形運算器處理以得到該運算資料的一相對應樣本及該第二待儲存資料的一相對應樣本,該蝶形運算器還改變該第一儲存資料及該第一選擇資料的該等樣本的配對關係。
  8. 一種管線式快速傅利葉轉換處理器,適用於執行N點快速傅利葉轉換,其中,N=2K ,且K是大於或等於四的整數,該快速傅利葉轉換處理器包含:M個串接的蝶形模組;其中,當K是偶數時,M=K/2,每一蝶形模組執行基數為22 的蝶形運算,且該等蝶形模組的第一個至第M-1個中的每一個是一如請求項1所述的折疊式蝶形模組;其中,當K是奇數時,M=(K+1)/2,該等蝶形模組中的該第一個執行基數為2的蝶形運算,該等蝶形模組的第二個至第M個中的每一個執行基數為22 的蝶形運算,且該等蝶形模組的該第二個至該第M-1個中的每一個是一如請求項1所述的折疊式蝶形模組。
  9. 一種控制方法,用於控制一如請求項1所述的折疊式蝶形模組,該控制方法包含以下步驟:(A)控制該第二多工器輸出該輸入資料作為該第一待儲存資料,且控制該緩衝器儲存該第一待儲存資料;(B)控制該緩衝器輸出該第一儲存資料,控制該第一多工器輸出該輸入資料作為該第一選擇資料,控制該第二多工器輸出該運算資料作為該第一待儲存資料,且控制該緩衝器儲存該第一待儲存資料及該第二待儲存資料;(C)控制該緩衝器輸出該第一儲存資料及該第二儲存資料,控制該第一多工器輸出該第二儲存資料作為該第一選擇資料,控制該第二多工器輸出該輸入資料作為該第一待儲存資料,控制該第三多工器輸出該運算資料作為該第二選擇資料,且控制該緩衝器儲存該第一待儲存資料及該第二待儲存資料;及(D)控制該緩衝器輸出該第一儲存資料及該第二儲存資料,控制該第一多工器輸出該輸入資料作為該第一選擇資料,控制該第二多工器輸出該運算資料作為該第一待儲存資料,控制該第三多工器輸出該第二儲存資料作為該第二選擇資料,且控制該緩衝器儲存該第一待儲存資料及該第二待儲存資料。
  10. 如請求項9所述的控制方法,該緩衝器包括一第一緩衝單元、一第二緩衝單元、一第三緩衝單元及一第四緩衝單元,其中,在步驟(C)及(D)中,該緩衝器被控制以同 時進行以下動作:將該第一待儲存資料及該第二待儲存資料分別存入該第一緩衝單元至該第四緩衝單元中的兩個;及從該第一緩衝單元至該第四緩衝單元中的另兩個分別輸出該第一儲存資料及該第二儲存資料。
TW103133579A 2014-09-26 2014-09-26 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法 TWI506457B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW103133579A TWI506457B (zh) 2014-09-26 2014-09-26 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法
CN201410648347.7A CN105653500B (zh) 2014-09-26 2014-11-13 蝶形模块、快速傅里叶变换处理器及控制方法
US14/741,805 US9880974B2 (en) 2014-09-26 2015-06-17 Folded butterfly module, pipelined FFT processor using the same, and control method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103133579A TWI506457B (zh) 2014-09-26 2014-09-26 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法

Publications (2)

Publication Number Publication Date
TWI506457B true TWI506457B (zh) 2015-11-01
TW201612769A TW201612769A (en) 2016-04-01

Family

ID=55220069

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103133579A TWI506457B (zh) 2014-09-26 2014-09-26 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法

Country Status (3)

Country Link
US (1) US9880974B2 (zh)
CN (1) CN105653500B (zh)
TW (1) TWI506457B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102216063B1 (ko) * 2015-01-21 2021-02-16 한국전자통신연구원 Lte 시스템의 ifft 입력 제어 장치
CN112800387B (zh) * 2021-03-30 2021-08-03 芯翼信息科技(上海)有限公司 基-6蝶形运算单元、方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821224A (en) * 1986-11-03 1989-04-11 Microelectronics Center Of N.C. Method and apparatus for processing multi-dimensional data to obtain a Fourier transform
TW409212B (en) * 1998-01-21 2000-10-21 Ericsson Telefon Ab L M Power and area efficient fast fourier transform processor
CN1292551C (zh) * 2002-09-23 2006-12-27 扬智科技股份有限公司 一种流水线简易fft/ifft处理器
CN101833540B (zh) * 2010-04-07 2012-06-06 华为技术有限公司 信号处理方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2242823A1 (en) * 1995-11-17 1997-05-29 Teracom Svensk Rundradio Improvements in or relating to real-time pipeline fast fourier transform processors
AU2003243046A1 (en) * 2002-06-27 2004-01-19 Daewoo Educational Foundation. Modulation apparatus using mixed-radix fast fourier transform
US7428564B2 (en) 2003-11-26 2008-09-23 Gibb Sean G Pipelined FFT processor with memory address interleaving
US8275820B2 (en) * 2007-07-06 2012-09-25 Mediatek Inc. Variable length FFT system and method
US20120041996A1 (en) 2010-08-16 2012-02-16 Leanics Corporation Parallel pipelined systems for computing the fast fourier transform
CN102810087B (zh) * 2011-05-30 2017-04-12 中兴通讯股份有限公司 一种傅立叶变换的实现装置
CN103226543B (zh) * 2013-04-26 2016-02-10 中国科学院微电子研究所 一种流水线结构的fft处理器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4821224A (en) * 1986-11-03 1989-04-11 Microelectronics Center Of N.C. Method and apparatus for processing multi-dimensional data to obtain a Fourier transform
TW409212B (en) * 1998-01-21 2000-10-21 Ericsson Telefon Ab L M Power and area efficient fast fourier transform processor
CN1292551C (zh) * 2002-09-23 2006-12-27 扬智科技股份有限公司 一种流水线简易fft/ifft处理器
CN101833540B (zh) * 2010-04-07 2012-06-06 华为技术有限公司 信号处理方法和装置

Also Published As

Publication number Publication date
CN105653500A (zh) 2016-06-08
US20160092399A1 (en) 2016-03-31
TW201612769A (en) 2016-04-01
US9880974B2 (en) 2018-01-30
CN105653500B (zh) 2018-03-23

Similar Documents

Publication Publication Date Title
TWI666650B (zh) 在矩陣向量處理器中之排列
JP5689282B2 (ja) 行列をsimdマルチコア・プロセッサ・アーキテクチャ上で転置するためのコンピュータ実装方法、コンピュータ可読ストレージ媒体及びシステム
Garrido et al. Optimum circuits for bit reversal
WO2017125023A1 (zh) 一种流水可重构的单精度浮点fft/ifft协处理器
JP2744526B2 (ja) 準16基数プロセッサおよび方法
JP5945831B2 (ja) 適応等化器
Chen et al. Continuous-flow parallel bit-reversal circuit for MDF and MDC FFT architectures
CN102652315B (zh) 信息处理设备及其控制方法
JP2008506191A5 (zh)
TWI506457B (zh) 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法
JP5601327B2 (ja) データ並べ替え回路、可変遅延回路、高速フーリエ変換回路、およびデータ並べ替え方法
WO2013097217A1 (zh) 一种多粒度并行fft蝶形计算的方法及相应的装置
US9098449B2 (en) FFT accelerator
JP4160564B2 (ja) 処理速度の向上した高速フーリエ変換装置およびその処理方法
US9940303B2 (en) Method and apparatus for decimation in frequency FFT butterfly
Richardson et al. Building conflict-free FFT schedules
CN106021171A (zh) 一种基于大规模粗粒度可重构处理器的sm4-128的密钥扩展实现方法及***
US8812819B1 (en) Methods and apparatus for reordering data signals in fast fourier transform systems
US20200334321A1 (en) Signal processing apparatus, method, program, and recording medium
WO2018014612A1 (zh) 非基2点多数据模式fft的实现方法和装置
JP2008052504A (ja) 離散フーリエ変換装置および離散フーリエ逆変換装置
CN111368250B (zh) 基于傅里叶变换/逆变换的数据处理***、方法及设备
JP6432348B2 (ja) 演算装置及び演算方法
JP2013239120A (ja) 画像処理装置
US8572148B1 (en) Data reorganizer for fourier transformation of parallel data streams

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees