CN1292551C - 一种流水线简易fft/ifft处理器 - Google Patents

一种流水线简易fft/ifft处理器 Download PDF

Info

Publication number
CN1292551C
CN1292551C CNB031038344A CN03103834A CN1292551C CN 1292551 C CN1292551 C CN 1292551C CN B031038344 A CNB031038344 A CN B031038344A CN 03103834 A CN03103834 A CN 03103834A CN 1292551 C CN1292551 C CN 1292551C
Authority
CN
China
Prior art keywords
unit
plural
butterfly type
address
multiplexer
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CNB031038344A
Other languages
English (en)
Other versions
CN1486001A (zh
Inventor
叶有民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ali Corp
Original Assignee
Ali Corp
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 Ali Corp filed Critical Ali Corp
Publication of CN1486001A publication Critical patent/CN1486001A/zh
Application granted granted Critical
Publication of CN1292551C publication Critical patent/CN1292551C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2626Arrangements specific to the transmitter only
    • H04L27/2627Modulators
    • H04L27/2628Inverse Fourier transform modulators, e.g. inverse fast Fourier transform [IFFT] or inverse discrete Fourier transform [IDFT] modulators
    • H04L27/263Inverse Fourier transform modulators, e.g. inverse fast Fourier transform [IFFT] or inverse discrete Fourier transform [IDFT] modulators modification of IFFT/IDFT modulator for performance improvement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • H04L27/2601Multicarrier modulation systems
    • H04L27/2647Arrangements specific to the receiver only
    • H04L27/2649Demodulators
    • H04L27/265Fourier transform demodulators, e.g. fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators
    • H04L27/2651Modification of fast Fourier transform [FFT] or discrete Fourier transform [DFT] demodulators for performance improvement

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

本发明提供了一即时N点流水线转换处理器,其包含一至多个蝶型三叠单元、一至多个复数乘法器及一输出部分。该蝶型三叠单元包含一蝶型I单元、一蝶型II单元及一蝶型III单元。蝶型I单元的输入端口为三叠单元的输入端口;蝶型III单元的输出端口为三叠单元的输出端口。复数乘法器从其前端的三叠单元接收一复数,乘上由一控制单元传来的系数产生一复数乘积。输出部分包含至少一第二蝶型I单元接收复数乘积,再输出转换产生的复数。控制单元提供系数给复数乘法器,并根据其内部的数据控制各蝶型单元。本发明亦提供一重排序电路使转换产生的复数与输入的复数的顺序相吻合。

Description

一种流水线简易FFT/IFFT处理器
技术领域
本发明涉及一种讯号处理器,特别是涉及一种23基(radix-23)快速傅里叶逆变换(Inverse Fast Fourier Transform,IFFT)处理器。
背景技术
对于一正交分频多路复用系统(Orthogonal FrequencyDivision Multiplexing,OFDM)而言,快速傅里叶逆变换/快速傅里叶转换(IFFT/FFT)处理器是一般调制/解调处理达到有效多载波(multicarrier)传送所不可或缺的工具。在许多正交分频多路复用系统中,例如使用无线区域网路(wireless local area network)802.11a标准,均要求一种具有高速度与即时处理能力,且能结合一简易方法而实现高数据处理效率的IFFT/FFT处理器。故达到此项目的实为一重要的课题。
在本发明于本文中所引用的参考数据「用于超大型积体电路的流水线与并联流水线FFT处理器」(”Pipeline and Parallel-pipeline FFT Processors for VLSI Implementation”,IEEE Trans.Comput.,C-33(5):414-426 of May 1984,E.H.Worl与A.M.Despain所着)提及2基流水线单通路延迟反馈(radix-2 Single-path Delay Feedback,R2SDF)FFT系统可提供高速度与即时处理的能力。但是对于一个N点FFT处理流程而言,此种设计需要(log2N-1)个复数乘法器,意即需要一相对较复杂庞大的工具才能完成此项处理流程。
由Shousheng He与Mats Torkelsson在美国专利申请号6,098,088中披露了一22基分频化简快速傅里叶转换(radix-22Decimation-in-Frequency FFT)运算法及其处理结构可降低整个设计的复杂性,将一N点FFT处理流程所需使用的复数乘法器减少到(log4N-1)个。此外,Shousheng He与Torkelson,M.亦在其文章「一种新颖流水线FFT处理器」(“A new approach to pipelineFFT processor”,Parallel Processing Symposium,1996,Proceedings of IPPS’96,The 10th International,1996)中披露,一23基DIF FFT演算法可以只需要(log8N-1)个复数乘法器。然而其并未披露任何与该演算法相关的处理结构或设计。以上两篇文件供参考。
在高速度与低复杂性的需求下,IFFT/FFT处理器目前存有输入讯号与输出讯号的无序(disorder)问题。举例来说,分频化简(Decimation in Time,DIF)FFT处理器与分时化简(Decimation inTime,DIT)IFFT处理器可接收一组照顺序排列的输入讯号,但却会输出一组没有按顺序排列的输出讯号,反之,当DIT FFT与DIFIFFT接收一组未按顺序排列的输入讯号时,其会传送出按顺序排列的输出讯号。例如在美国专利申请号6,098,088中所述,若将输入点x[0]至x[15]顺序按时输入一16点DIF处理器中,其频率输出值X[0]至X[15]并不会照顺序按时输出,而是以下列顺序出现:X[0],X[8],X[4],X[12],X[2],X[10],X[6],X[14],X[1],X[9],X[5],X[13],X[3],X[11],X[7]及X[15]。在任一情况中,输入讯号或输出讯号的无序皆为使用IFFT/FFT处理器的电路系统会遭遇到的困扰。
发明内容
因此,本发明的主要目的在于提供一种在IFFT/FFT N点处理器中完成23演算的结构系统。该结构系统只需要(log8N-1)个复数乘法器,2×log8N个π/2复数旋转器及log8N个π/4复数旋转器。
本发明的另一目的在于提供一种使用三叠单元蝶型电路的即时结构系统。该三叠单元蝶型电路包含一蝶型I电路(butterfly Iunit,BFI)、一蝶型II电路(butterfly II unit,BFII)以及一蝶型III电路(butterfly III unit,BFIII)。各个蝶型电路均具有其个别的简易结构系统,依据该处理器控制系统的流水线步数器(pipeline step-count)而加以控制。
本发明的目的是进一步提供一种具有重排序电路的IFFT/FFT处理器,以解决上述已知IFFT/FFT处理器无法同时满足有序(ordered)输入与有序输出的问题。
简而言的,本发明的较佳实施例披露了一种即时N点流水线转换处理器,其包含一至多个蝶型三叠单元,一至多个连接蝶型三叠单元与蝶型三叠单元的复数乘法器及一输出部分。该三叠单元包含一蝶型I单元、一蝶型II单元及一蝶型III单元,三者是以串联方式顺序连接。该蝶型I单元的输入端口作为该三叠单元的输入端口,用以接收复数数据(complex numbers),而该蝶型III单元的输出端口作为该三叠单元的输出端口。该复数乘法器从其前端的三叠单元的输出端口接收一复数结果,将其乘上从一控制单元传来的一系数而产生一复数乘积。该输出部分包含至少一第二个蝶型I单元,其输入端口接收从该复数乘法器传来的复数乘积,并将转换产生的复数输出。该控制单元包含一流水线步数暂存器(pipelinestep-count register),其提供系数给该复数乘法器。该控制单元依据存储在该流水线步数暂存器的数据,控制各个蝶型I单元、蝶型II单元及蝶型III单元,并提供系数给各复数乘法器。本发明亦提供一重排序电路以确保这些转换产生的复数的时域顺序与该等输入的复数的频域顺序相合。
本发明的优点在于该蝶型I单元、蝶型II单元及蝶型III单元是组成一蝶型三叠单元,而其输出部分可以简单的方式完成实施。再者,本发明可使复数乘法器的数目降至(log8N-1)。本发明的另一优点在于该重排序电路可以使转换产生的复数以相同于输入复数数据的顺序输出。因此,使用本发明处理器的电路系统不需要重新排列时域或频域,进而减低外部电路系统的负担。
附图说明:
图1为一般蝶型单元的示意图。
图2为本发明16点23基DIT IFFT流程的示意图。
图3为图216点23基DIT IFFT流程设计的方块图。
图4为本发明蝶型I单元的设计示意图。
图5为本发明蝶型II单元的设计示意图。
图6为本发明蝶型III单元的设计示意图。
图7为本发明π/2复数旋转器的示意图。
图8为本发明π/4复数旋转器的示意图。
图9为本发明32点23基DIT IFFT流程的示意图。
图10为图932点23基DIT IFFT流程设计的方块图。
图11(A)与11(B)为本发明64点23基DIT IFFT流程的示意图
图12为图11(A)与十一(B)64点23基DIT IFFT流程设计的方块图。
图13为本发明128点23基DIT IFFT流程设计的方块图。
图14为本发明快速傅里叶逆变换/快速傅里叶处理器的方块图。
图15为本发明提供有序输出讯号的16点23基DIT IFFT流程的方块图。
图16为本发明提供有序输出讯号的16点23基DIT IFFT流程的方块图。
表一为本发明流水线步数数据与输出值的对照表。
表二为本发明数据输入地址与数据输出地址的对照表。
表三(A)及表三(B)为本发明重排序电路的操作数据表。
表四为本发明数据输入地址与数据输出地址的对照表。
附图符号说明:
10蝶形单元
11a,11b输入端
12a,12b输出端
20快速傅利叶逆转换流程
30,40,600,700,800DIT IFFT流程设计
31a,31b,601a,601b,801蝶型I单元
32,602a,602b蝶型II单元
33,603蝶型III单元
36,606,706,806,1006控制单元
36a,606a,706a,806a,1004步数暂存器
36b,606b,706b,806b系数
37,607,807a,807b蝶型三叠单元
38乘法器
39,609,709,809输出部分
100蝶型I单元
101,201,203i,204i,301,303i,304i,309i,401a,401b,601,1001,2001输入讯号
102,103a,103i,202,203a,204a,205a,208o,302,303a,304a,305a,308o,309o,402a,402b,502,503o,504o,507a,507b,507c,507d,507e,602,605,1002,1003,2002,2003输出讯号
103,203,303缓冲器
104,204,304减法器
104a,204a,304a复数差值
105,205,305,504,506加法器
105a,205a,305a复数总和
106a,106b,206a,206b,206c,306a,306b,306c,306d控制线
107a,107b,207a,207b,207c,307a,307b,307c,307d多路复用器
200蝶型II单元
208,308,400,503π/2复数旋转器
300蝶型III单元
309,500π/4复数旋转器
501输入复数
505a,505b,505c,505d,505e位移器
608乘法器
705,805控制讯号
900IFFT/FFT处理器
901电路开关
902共轭复数电路
1000,2000处理器
1100重排序电路
1101随机存取存储器
1101r读出地址线
1101w写入地址线
1102存储锁存器
1103,2006地址对照表
1103I输入地址
1104,2007周期位
具体实施方式
在本发明较佳实施例的详细说明中将披露一种分时化简快速傅里叶逆变换(DIT IFFT)电路,该电路使用数学系数(j),而非系数(-j),故可以减低整个电路的复杂性。然而,正如熟于此项技术者所知,要将本发明所使用的方法应用于其他类似的设计是一件颇为容易的工作。例如要利用DIT IFFT系统建立DIF FFT系统时,只需要将原来设计的输入端取其共轭复数当输入端,原来输出端取其共轭复数当输出端,如同图14所示。
为了解本发明所利用的蝶型电路以及由处理器控制电路系统提供给各复数乘法器的大量系数的决定方式,必须对本发明所使用的数学基础有概要性的了解。一N点离散傅里叶逆变换(N-PointInverse Discrete Fourier Transform,IDFT)具有以下通式:
x [ n ] = Σ k = 0 N - 1 X [ k ] W ′ N nk (公式1a)
在公式1a中,x[n]为时域输出,X[k]为频率输入,0≤n≤N,0≤k≤N,以及:
W ′ N nk = exp ( j × 2 πnk / N ) (公式1b)
藉由8基与2基指标映图的递回应用,将下式带入公式1a与1b中,可获得DIT形式:
k = N 2 k 1 + N 4 k 2 + N 8 k 3 + k 4
n=n1+2n2+4n3+8n4
其中:
0≤k4≤(N/8-1)、
0≤k3≤1、
0≤k2≤1、
0≤k1≤1、
0≤n4≤(N/8-1)、
0≤n3≤1、
0≤n2≤1以及
0≤n1≤1
最后得到下式:
x [ n 1 + 2 n 2 + 4 n 3 + 8 n 4 ] = Σ k 4 = 0 N 8 - 1 Σ k 3 = 0 1 Σ k 2 = 0 1 Σ k 1 = 0 1 X [ N 2 k 1 + N 4 k 2 + N 8 k 3 + k 4 ] W ′ N nk (公式2)
其中:
W ′ N nk = W ′ N ( N 2 k 1 + N 4 k 2 + N 8 k 3 + k 4 ) ( n 1 + 2 n 2 + 4 n 3 + 8 n 4 )
= W ′ N N 2 k 1 n 1 W ′ N N 4 k 2 ( n 1 + 2 n 2 ) W ′ N N 8 k 3 ( n 1 + 2 n 2 + 4 n 3 ) W ′ N k 4 ( n 1 + 2 n 2 + 4 n 3 + 8 n 4 )
= ( - 1 ) k 1 n 1 ( j ) n 1 + 2 n 2 W ′ N N 8 k 3 ( n 1 + 2 n 2 + 4 n 3 ) W ′ N k 4 ( n 1 + 2 n 2 + 4 n 3 ) W ′ N 8 k 4 n 4
若设定:
C 1 = ( j ) n 1 + 2 n 2
C 2 = W ′ N N 8 k 3 ( n 1 + 2 n 2 + 4 n 3 )
C 3 = W ′ N k 4 ( n 1 + 2 n 2 + 4 n 3 )
C 4 = W ′ N 8 k 4 n 4
则公式2可写成:
x [ n 1 + 2 n 2 + 4 n 3 + 8 n 4 ] =
Σ k 4 = 0 N 8 - 1 Σ k 3 = 0 1 Σ k 2 = 0 1 [ X ( N 4 k 2 + N 8 k 3 + k 4 ) + ( - 1 ) n 1 X ( N 2 + N 4 k 2 + N 8 k 3 + k 4 ) ] C 1 C 2 C 3 C 4
将上文所定义的蝶型I单元(BFI)
BFI ( N 4 k 2 + N 8 k 3 + k 4 , n 1 ) = X ( N 4 k 2 + N 8 k 3 + k 4 ) + ( - 1 ) n 1 X ( N 2 + N 4 k 2 + N 8 k 3 + k 4 )
带入公式2,得到
x [ n 1 + 2 n 2 + 4 n 3 + 8 n 4 ] =
Σ k 4 = 0 N 8 - 1 Σ k 3 = 0 1 [ BFI ( N 8 k 3 + k 4 , n 1 ) + ( j ) ( n 1 + 2 n 2 ) BFI ( N 4 + N 8 k 3 + k 4 , n 1 ) ] C 2 C 3 C 4
蝶型II单元(BFII)系定义为:
BFII ( N 8 k 3 + k 4 , n 1 , n 2 ) = [ BFI ( N 8 k 3 + k 4 , n 1 ) + ( j ) ( n 1 + 2 n 2 ) BFI ( N 4 + N 8 k 3 + k 4 , n 1 ) ]
则公式2可进一步写成:
x [ n 1 + 2 n 2 + 4 n 3 + 8 n 4 ] =
Σ k 4 = 0 N 8 - 1 [ BFII ( k 4 , n 1 , n 2 ) + W ′ 8 ( n 1 + 2 n 2 + 4 n 3 ) BFII ( N 4 + N 8 k 3 + k 4 , n 1 , n 2 ) ] C 3 C 4
最后,可藉由上述推论将蝶型III单元(BFIII)定义为:
BFIII ( k 4 , n 1 , n 2 , n 3 ) = [ BFII ( k 4 , n 1 , n 2 ) + W ′ 8 ( n 1 + 2 n 2 + 4 n 3 ) BFII ( N 4 + N 8 k 3 + k 4 , n 1 , n 2 ) ]
并定义:
G n 1 , n 2 , n 3 = BFIII × C 3
最后公式2可改写成:
x [ n 1 + 2 n 2 + 4 n 3 + 8 n 4 ] = Σ k 4 = 0 N 8 - 1 G n 1 , n 2 , n 3 [ k 4 ] × W ′ N / 8 n 4 k 4 (公式3)
值得注意的是,公式3为一简单(N/8)点IFFT计算式。因此,上述步骤可递回应用到(N/8p)≤8,其中p为递回深度(即递回次数)。上述公式显示蝶型I单元、蝶型II单元及蝶型III单元是按顺序连接以形成一蝶型三叠单元,而该蝶型三叠单元又使用适当的系数以乘法方式连接。这些完整的蝶型三叠单元个数是以p表示,而p值则由数值N来决定。该IFFT的输出部分包含至少一蝶型三叠单元的一部份,该部分是经由适当的系数,以乘法方式与最后一个完整的蝶型三叠单元连接。该输出部分不需要包含一完整的蝶型三叠单元,在N=2n下,当n为3的倍数加1时,该输出部分只需包含蝶型I单元,其是作为该IFFT的输出端口;当n为3的倍数加2时,该输出部分包含串联的一蝶型I单元与一蝶型II单元,其中该蝶型II单元是作为输出端口;当n为3的倍数时,该输出部分包含完整的蝶型I单元、蝶型II单元及蝶型III单元,而蝶型III单元则作为输出端口。
再者,蝶型II单元包含系数(j)(n1+2n2),其为π/2复数旋转。而蝶型III单元包含系数:
W ′ 8 ( n 1 + 2 n 2 + 4 n 3 )
= W ′ 8 n 1 W ′ 8 2 ( n 2 + 2 n 3 )
= ( 2 2 ( 1 + j ) ) n 1 × ( j ) ( n 2 + 2 n 3 ) (公式4)
如上所示,将π/2复数旋转与π/4复数旋转串联带入,便可使公式4清楚易懂。另外,π/4复数旋转可以一近似算式代替:
( 2 2 ( 1 + j ) ) n 1 ≈ [ ( 2 - 1 + 2 - 3 + 2 - 4 + 2 - 6 + 2 - 8 ) × ( 1 + j ) ] n 1 (公式5)
公式5在设计上可使用五个位移器、一π/2复数旋转器、一2/1复数加法器(2-to-1 complex adder)以及一5/1复数加法器(5-to-1 complex adder)而轻易完成。
在下文中将会说明蝶型电路概念的广泛应用方法。图1为一般蝶型单元10流程的示意图,该蝶型单元10有两个复数输入端11a与11b及两个复数输出端12a与12b。当输入端11a接收一复数A,而输入端11b接收一复数B时,输出端12a表示复数A+B,输出端12b则表示复数A-B。因此一蝶型单元需要一复数加法路线与一复数减法路线。
请参阅图2,图2为本发明16点23基DIT IFFT流程20的示意图。如图2所示,蝶型I单元(BFI)、蝶型II单元(BFII)及蝶型III单元(BFIII)是以串联方式相连接,形成一完整的蝶型三叠单元。输出部分包含一单独的蝶型I单元,以乘法方式与蝶型三叠单元连结。该蝶型三叠单元的输出讯号,即从蝶型III单元输出的讯号,传给一复数乘法器(在图2中以「」符号表示),该复数乘法器另接收一组系数W’n,将两者相乘而得复数乘积,输入输出部分的蝶型I单元。传入该复数乘法器的W’n系由流水线步数器控制,其数学式如下:
W’n=exp(j×2π×n/16)
值得注意的是,在蝶型III单元中间歇出现的W’2为π/4复数旋转,其可以相近数学式表示:
W’2≈0.7071+0.7071j
请参阅图3,图3为图216点23基DIT IFFT流程设计30的示意图。DIT IFFT流程设计30包含一完整的蝶型三叠单元37,藉由一复数乘法器38而以乘法方式与输出部分39连接。该蝶型三叠单元37包含一第一蝶型I单元31a、一蝶型II单元32及一蝶型III单元33。该输出部分39包含一单独的第二蝶型I单元31b(因为16=24,而4除以3的余数为1)。一控制单元36会控制蝶型I单元31a与31b、蝶型II单元32及蝶型III单元33的操作,并提供适当的系数给复数乘法器38。该控制单元36包含一流水线步数暂存器36a,其会记录当时的流水线步数,对于一个N点IFFT处理器,流水线步数暂存器36a会从0跑到N-1。该控制单元36会依据流水线步数暂存器36a而控制蝶型三叠单元37、乘法器38及输出部分39。
请参阅图4,图4为本发明蝶型I单元100的设计示意图。一般蝶型I单元100包含一复数输入讯号X1(k)101以及一复数输出讯号X0(k)102。虽然依图1中所示,蝶型I单元100应该有两个输入与两个输出,但在实际的应用上,因为IFFT 30为一流水线结构,所以同时得到两个输入讯号并不是必要条件。两个输入讯号101可以依流水线步数值k(即输入讯号XI(k)101中所指)在其个别的时间分别输入,k值是由流水线步数暂存器36a决定,并依据输出讯号X0(k)102中的k值在不同时间输出其相对应的输出讯号102。因此,在图4中所显示的流程设计与图1的一般蝶型单元运算规则并无冲突。蝶型I单元100包含一延迟反馈回路,其是以缓冲器103施行的。该缓冲器103是一先进先出(first in first out,FIFO)缓冲器,其长度为L1,可以存储预先输入的复数XI,L1值如下所示:
L1=N/(2×8p)
其中p即为上文有关数学原理介绍中所提及的递回次数,亦代表了包含该蝶型I单元100的蝶型三叠单元的序数,例如在第一蝶型三叠单元中,p=0,在第二蝶型三叠单元中,p=1,以此类推。输出部分39的蝶型I单元回路中的p值则为其前一个蝶型三叠单元的p值加1。例如图3所示的蝶型I单元31a是位于第一蝶型三叠单元中,故其p值为0,蝶型I单元31b的p则为1,比其前一个连接的三叠单元的p值多1。N则为该IFFT电路所设计要处理的数据点数。图3IFFT 30的N值为16。因此,蝶型I单元31的缓冲器大小L1为8,而叠形I单元31b的缓冲器大小L1为1。蝶型I单元100包含一减法器104及一加法器105。控制线106a与106b是由控制单元36所控制,并个别控制多路复用器107a与107b的输出选择。多路复用器107a可接收从加法器105传来的复数总和105a,也可接收先进先出缓冲器103的输出讯号103a,多路复用器107a根据控制线106a选择二者的一个作为其输出讯号X0(k)102。多路复用器107b可接收从加法器105传来的复数总和105a与输入讯号XI(k)101,多路复用器107b根据控制线106b选择其中一种作为其输出讯号103i,传送给先进先出缓冲器103。故先进先出缓冲器103存储从减法器104得来的复数差值104a或输入讯号XI(k)101的其中一种,而输出讯号X0(k)102则为先进先出缓冲器103的输出讯号103a与加法器105的复数总和105a两者的一个。
请参阅图5,图5为本发明蝶型II单元200的设计示意图,蝶型II单元200的使用是如图3所示的蝶型II单元32。蝶型II单元200的操作原理和蝶型I单元100非常相近,不同的是,该蝶型II单元200还包含一π/2复数旋转器208及其相关的电路系统。在流水线步数暂存器36a的指示下,蝶型II单元200在每一时钟周期接收一复数输入讯号201(得自蝶型I单元100的输出讯号102),并产生一复数输出讯号202。以图3为例,在处理器电路30中,蝶型II单元32是接收蝶型I单元31a的输出作为其输入讯号。在图4中,先进先出缓冲器203用以执行延迟反馈回路,其缓冲大小L2
L2=N/(4×8p)
上式中,p值为该蝶型II单元200所在的蝶型三叠单元的序数,而N为该IFFT处理器的点数。在图3电路30的蝶型II单元32中,先进先出缓冲器203的L2值为4,因为16/4×80=4。蝶型II单元200包含一减法器204、一加法器205、π/2复数旋转器208,以及三多路复用器207a、207b及207c。控制单元36根据存储在流水线步数暂存器36a的数据而驱动控制线206a、206b及206c,以决定多路复用器207a、207b及207c的输出。而控制线206a、206b及206c的运作方式示于图2。
请参阅图6,图6为本发明蝶型III单元300的示意图。蝶型III单元300是如图3的蝶型III单元33,而蝶型III单元300的操作原理与蝶型II单元200相当类似。其不同处在于蝶型III单元300还包含一π/4复数旋转器308及其控制电路系统。在流水线步数暂存器36a的指令下,蝶型III单元300在每一时钟周期接收一复数输入讯号301,并产生一复数输出讯号302。输入讯号301为蝶型II单元200的输出讯号202。例如在处理器电路30中,蝶型III单元33接收蝶型II单元32的输出讯号,作为其输入讯号。先进先出缓冲器缓冲器303用以执行一延迟反馈回路,缓冲器大小L3为:
L3=N/(8×8p)
同样地,p是指蝶型III单元300所在的蝶型三叠单元的序数,而N为该IFFT处理器的点数。在电路30中,蝶型III单元33所包含的先进先出缓冲器303的L3为2,因为16/8×80=2。蝶型III单元300包含一减法器304、一加法器305、一π/2复数旋转器308、一π/4复数旋转器309,以及四个多路复用器307a、307b、307c及307d。控制单元36根据存储在流水线步数暂存器36a的数据而驱动控制线306a、306b及306c,以决定多路复用器307a、307b及307c的输出。而控制线306a、306b及306c的运作方式示于图2。
蝶型III单元33的输出讯号302与控制单元36(取自系数表36b)所提供的系数W’[k]一起传送至复数乘法器38。该系数W’[k]也是由存储在流水线步数暂存器36a的数据来决定,即k为步数数值(step-count value)36a,如图2所示。
最后,将自数乘法器38输出的复数乘积传给蝶型I单元31b,作为其输入讯号101。蝶型I单元31b的先进先出缓冲器103仅为一个单元,而其控制方法是非常简易的。
对16点DIT IFFT电路30而言,由反馈迭代所造成的延迟有以下情形:在第一讯号X[0]输入后经过16时钟周期时,第一个结果x[0]会被输出。然而值得注意的是,虽然每个输出讯号x[n]都为一个输入讯号X[k]的快速傅里叶逆变换,但其在输出时并未按照输入讯号的时间顺序,而是以下列顺序输出:x[0],x[8],x[4],x[12],x[2],x[10],x[6],x[14],x[1],x[9],x[5],x[13],x[3],x[11],x[7]以及x[15]。
请参阅图7,图7为本发明π/2复数旋转器400的示意图。π/2复数旋转器400为蝶型III单元300中π/2复数旋转器308与蝶型II单元200中π/2复数旋转器208的实施方法。输入π/2复数旋转器400的复数XI(k)有实数部分XIR(k)401a与虚数部分X11(k)401b。同样地,π/2复数旋转器400的输出讯号X0(k)也会有一实数部分X0R(k)402a与一虚数部分X0I(k)402b。输出讯号X0(k)=XI(k)×(j),j为-1的平方根。要达到π/2复数旋转,该π/2复数旋转器400只需要将复数XI(k)的实数部分输入讯号401a作为输出复数X0(k)的虚数部分输出讯号402b,并将虚数部分输入讯号401b乘以(-1)并放在实数部分输出讯号402a加以输出就可以。其中,将虚数部分乘以(-1)的程序可藉由熟知此项技术者已知的方法轻易完成。故要完成π/2复数旋转器400的设置是非常容易的。
请参阅图8,图8为本发明π/4复数旋转器500的示意图。该π/4复数旋转器500是一般蝶型III单元300的中π/4复数旋转器309的实施方法。π/4复数旋转器500的设计是根据公式5,接收一输入复数XI(k)501并产生一相对应的输出复数X0(k)502,其关系如下:
X0(k)=(2-1+2-3+2-4+2-6+2-8)×(1+j)×XI(k)
该π/4复数旋转器500包含一π/2复数旋转器503,其设计与图7中的π/2复数旋转器400相同;一2/1复数加法器504;五个右位移器505a-505e;以及一5/1复数加法器506。首先,π/2复数旋转器503会将输入复数XI(k)501乘以(j)之后输出,即输出讯号503o=XI(k)×j。接着,复数加法器504会接收从π/2复数旋转器503传来的输出讯号503o与该π/4复数旋转器500原始的输入讯号XI(k)501,将两者相加,得到输出讯号504o,其值为(1+j)×XI(k)。然后位移器505a会将输出讯号504o右移一位,实际上是将输出讯号504o乘上2-1,并将其结果以输出讯号507a输出至下一流程。位移器505b会将输出讯号504o右移三位,即对输出讯号504o乘上2-3,得到输出讯号507b。位移器505c使输出讯号504o右移四位,也就是将输出讯号504o乘以2-4,得到输出讯号507c。位移器505d是将输出讯号504o乘上2-6,右移六位,得到输出讯号507d。同样地,位移器505e将输出讯号504o乘以2-8,也就是右移八位而产生输出讯号507e。最后加法器506接收输出讯号507a-507e,得到五者的复数总和,作为其输出讯号X0(k)502。由此可知,π/4复数旋转器500只需要一π/2复数旋转器503、二个复数加法器504与506,以及五个右位移器505a至505e,便可容易地完成执行。
在图2与图3中用来完成本发明16点DIT IFFT 30的方法可实施到点数更高的例子中,本领域的技术人员要运用此理论时,必须相当清楚在前文中所讨论的数学基础及实施方法,以便在实施时能掌握蝶型I单元100、蝶型II单元200及蝶型III单元300和适当先进先出缓冲器大小的使用。举例如图9,图9为本发明32点23基DIT IFFT流程的示意图,其设计是以上文所探讨者为基础。其中蝶型I单元、蝶型II单元及蝶型II单元的实施方法与图4、图5及图6所提及的一般蝶型I单元100、蝶型II单元200及蝶型III单元300相同。图9中W’4项表示π/4复数旋转器,系数W’n的通式为W’n=exp(j×2π×n/32)。
请参阅图10,图10为图9本发明32点23基DIT IFFT处理器600流程的设计示意图。如图10所示,该IFFT 600系依据该控制单元606中的流水线步数暂存器606,按时顺序接收32个频率输入讯号X[k]601(k为0至31),并产生未排序的输出讯号x[n]602。该IFFT 600包含一蝶型三叠单元607,以一复数乘法器608与输出部分609连接。在这个例子中,由于32=35,5为3的倍数加2,故输出部分609包含一蝶型I单元601b及一蝶型II单元602b,两者是按顺序连接。该蝶型II单元602b的输出端口是作为该IFFT 600的最后输出端口。所有的蝶型I单元601a与601b、蝶型II单元602a与602b,以及蝶型III单元603均以蝶型I单元100、蝶型II单元200及蝶型III单元300的方法实施,其中,依各蝶型单元所在的三叠单元序数,使用不同的p值和N值,以决定个别的先进先出缓冲器缓冲器大小。例如,蝶型I单元601a的先进先出缓冲器缓冲器大小L1为16;蝶型II单元602a的先进先出缓冲器缓冲器大小L2为8;蝶型III单元的缓冲器大小L3为4。在输出部分609中,由于p=1,故蝶型I单元601b的先进先出缓冲器缓冲器大小L1为2,而蝶型II单元602b的缓冲器大小L2为1。
控制单元是根据存储在流水线步数暂存器606a的数据来对每个蝶形单元中的多路复用器做控制,其控制情况如图9所示。系数W’n存于控制单元606的系数表606b内,依据存储在流水线步数暂存器606a中的数据被提供给复数乘法器608。如同图3的电路30,控制单元606以输出讯号605控制各蝶型单元601a、601b、602a、602b及603并提供复数的系数给乘法器608,其中该输出讯号605是由一状态机器所决定,在本发明中,该状态机器的实施即为控制单元606,控制单元606所包含的步数暂存器606a会指示出当时的状态,以决定输出讯号605。
图11(A)与图11(B)为本发明64点23基DIT IFFT流程的示意图,其相对应的DIT IFFT电路700设计示于图12。蝶型I单元、蝶型II单元及蝶型II单元与图4、图5及图6的蝶型I单元100、蝶型II单元200及蝶型III单元300一样。在图11(A)与图11(B)中,W’8表示π/4复数旋转器。系数706bW’n=exp(j×2π×n/64)。该控制单元706如同一状态机器,而其中的流水线步数暂存器706a会决定当时的状态,驱动控制单元706的控制讯号705,其演算流程可参阅图11(A)与图11(B)。值得注意的是输出部分709包含一完整的蝶型三叠单元,因为p=1,64=26,而6为3的倍数。
请参阅图13,图13为本发明另一实施例128点23基DIT IFFT处理器800。由于128=27,7除以3余1,故该输出部分809仅包含一蝶型I单元801。电路800包含两个蝶型三叠单元807a与807b,其p值分别为0与1,而输出部分809的p值为2。其中,蝶型三叠单元807a和蝶型三叠单元807b之间是以复数乘法器808a连接,蝶型三叠单元807b与输出部分809是以复数乘法器808b连接。根据存储在流水线步数暂存器806a的数据,控制单元从系数表806b中提供系数W’1[k]与W’2[k]给复数乘法器808a与808b。如同前文所述的例子,控制单元806是根据流水线步数暂存器806a而决定系数806b,以及输出控制讯号805。
图14为本发明IFFT/FFT处理器900的方块图。当电路开关901接到共轭复数电路系统902时,该处理器900是作为一DIF FFT处理器使用,接收地址输入讯号I[x]并产生相对应(但未排序)的频率输出讯号0[x]。当电路开关901接到越过该共轭复数电路系统902的接点时,处理器900是作为DIT IFFT使用,接收频率输入讯号I[x]并产生相对应(未排序)的地址输出0[x]。不论是选择IFFT或FFT,都有一必须正视的问题-处理器的输出讯号顺序并未对应于输入讯号的顺序,而此问题亦同样发生在DIF IFFT/DIT FFT处理器中。为使连续的输出讯号与其相对应的连续输入讯号有一致的顺序,本发明提供一重排序方法(reordering procedure),该重排序方法是由额外的缓冲存储器(buffer memory)来实现。一N点即时处理器(N-point real-time processor)通常需要两个各含有N复数槽沟(slot)存储器的缓冲器:一缓冲器用来存储流过该处理器的数据,而另一缓冲器用来输出经过重排序的数据。但事实上,如果能同时支持和重排序长度大于N的连续输出讯号,那么使用一个只有N数据沟槽的存储器是可行的,我们称其为「两相存储地址控制(two-phase memory address control)」。为使读者易于了解,将以前文所述的DIT IFFT处理器做说明,而同样方法也可适用于DIF FFT、DIF IFFT及DIT FFT处理器。
请参阅图15,图15为本发明支持排序输出的16点23基DITIFFT处理器1000的方块图。处理器1000包含图3的16点23基DIT IFFT电路30,以及一重排序电路(reordering circuit)1100,其是连接于该16点23基DIT IFFT电路30的输出部分,由输出线1002连接。该重排序电路1100包含一双端口随机存取存储器(Dual-Port RAM)1101,在流水线步数暂存器1004的指示下,可以在同一时钟周期(clock cycle)中,同时支持读出操作(readoperation)与写入操作(read operation),该RAM 1101作为重排序电路1100的缓冲装置。RAM 1101具有存储N复数的空间,即存储沟槽,由0至N-1地址。在本例子中,该DIT IFFT处理器1000为一16点处理器,N=16,故RAM 1101有16复数存储沟槽,用以存储0至15地址。重排序电路1100还包含一作为地址延迟装置的存储锁存器(latch)1102,例如一D型触发器(D-type flip-flop),用以缓冲RAM 1101的单一存储地址。重排序电路1100也必须在控制单元1006上加入一些装置:一地址产生装置,即地址对照表1103,一周期位1104,以及其他可以支持下述功能的电路系统。该支持电路系统的设计应为本领域的技术人员所能轻易完成,故不在此赘述。
RAM 1101亦作为该重排序电路1100的定址装置,具有一读出地址线1101r与一写入地址线1101w。从IFFT单元30的输出部分所传来的输出讯号1002,依据写入地址线1101w的指示写入RAM1101的存储地址沟槽中,而RAM 1101依据读出地址线1101r的指示,从存储地址沟槽中所含有的复数数据产生一输出讯号1003传送出去,此RAM 1101的操作应为本领域的技术人员所能了解的。该存储锁存器1102是设于该读出存储线1101r与该写入地址线1101w之间,因此该存储锁存器1102可从读出地址线1101r获得一地址,并在下一时钟周期中(该流水线步数暂存器1004决定时)将该地址提供给写入地址线1101w。该存储锁存器1102的目的仅在于流水线步数暂存器1004指示下,将该读出与写入地址延迟一时钟周期。经由控制单元1006所包含的地址对照表1103与周期位1104,控制单元1006会将读出地址线1101r传来的讯号,由写入地址线1101w传给RAM 1101。地址对照表1103的内容为输入地址1103i从I0到IN-1的地址列表,该周期位1104是用来决定存储地址的状态。在输入完整的N讯号后(由流水线步数暂存器1004决定,在本例中N为16),周期位1104会跳换。当周期位1104跳换后,在流水线步数暂存器1004的指令下,控制单元1006会根据从地址对照表1103得来的数据,即输入地址1103i,提供读出地址给RAM1101。当该周期位1104清除时,控制单元1006也会根据流水线步数暂存器1004提供一地址(经由地址读出线1101r)。在两种状态中,用于指示或定址的数值比存储在流水线步数暂存器1004中的数据大1。当该流水线步数暂存器1004存储的数据数值为N-1时,在本例中,该数值为15,周期位1104会被跳换(经由一种周期位跳换装置,例如比较器或智慧位逻辑等)。
在IFFT 30中,16个输入讯号X[0]至X[15]在时间T0至T15顺序输入电路30中,同时,流水线步数暂存器36a亦提供相对应的数据0至15。请参考表一,输出讯号1002x[0]至x[15]开始输出至RAM 1101的时间为T16
                   表一
  时间   管线步数器数据   输出值
  T16T17T18T19T20T21T22T23T24T25T26T27T28T29T30T31   0123456789101112131415   x1[0]x1[8]x1[4]x1[12]x1[2]x1[10]x1[6]x1[14]x1[1]x1[9]x1[5]x1[13]x1[3]x1[11]x1[7]x1[15]
地址对照表1103具有N输入地址0至N-1,其会按照流水线步数暂存器1004所定而出现在时域的输出讯号x[n]的顺序。该N输入地址可提供排序的解码数据,如表二所示。
表二
  地址对照表数据输入地址In   数据输出地址
  I0I1I2I3I4I5I6I7I8I9I10I11I12I13I14I15   0841221061419513311715
请参阅表三,表三可说明重排序电路1100的操作。IFFT的输出讯号1002 x1[n]是相对应于在时间T0至T15输入的输入讯号1001;输出讯号1002x2[n]是相对应于在时间T16至T31输入的输入讯号1001;而输出讯号1002 x3[n]是相对应于在时间T32至T47输入的输入讯号1001。
                        表三(A)
时间   管线步数器数据   周期位   IFFT输出 读出地址 写入地址 输出讯号
  T16T17T18T19T20T21T22   0123456   1111111   x1[0]x1[8]x1[4]x1[12]x1[2]x1[10]x1[6]   8412210614   084122106   UndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefined
  T23T24T25T26T27T28T29T30T31T32T33T34T35T36T37T38T39T40T41T42T43T44   7891011121314150123456789101112   1111111100000000000000   x1[14]x1[1]x1[9]x1[5]x1[13]x1[3]x1[11]x1[7]x1[15]x2[0]x2[8]x2[4]x2[12]x2[2]x2[10]x2[6]x2[14]x2[1]x2[9]x2[5]x2[13]x2[3]   19513311715012345678910111213   14195133117150123456789101112   UndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefinedUndefinedx1[0]x1[1]x1[2]x1[3]x1[4]x1[5]x1[6]x1[7]x1[8]x1[9]x1[10]x1[11]x1[12]x1[13]
表三(B)
时间   管线步数器数据   周期位   IFFT输出 读出地址 写入地址 输出讯号
  T45T46T47T48T49T50T51T52T53   131415012345   001111111   x2[11]x2[7]x2[15]x3[0]x3[8]x3[4]x3[12]x3[2]x3[10]   1415084122106   13141508412210   x1[14]x1[15]x2[0]x2[1]x2[2]x2[3]x2[4]x2[5]x2[6]
  T54T55T56T57T58T59T60T61T62T63T64   67891011121314150   11111111100   x3[6]x3[14]x3[1]x3[9]x3[5]x3[13]x3[3]x3[11]x3[7]x3[15]X4[0]   141951331171501   614195133117150   x2[7]x2[8]x2[9]x2[10]x2[11]x2[12]x2[13]x2[14]x2[15]x3[0]x3[1]
当周期位1104设定为1时,控制单元1006将存储在流水线步数暂存器1004中的数据加1,所得结果指示到地址对照表1103中,获得一读出地址,该读出地址便会被提供给读出地址线1101r,此即为第一相型地址。对于本领域的技术人员,应能很容易便了解此操作所需要的装置。例如,在时间T16时,周期位1104为1;存储在流水线步数暂存器1004的数据数值为0;将此数值加1当作地址对照表1103的输入地址1103i(I1)。因此,RAM在时间T16的读出地址(读出地址线1101r)为8。当周期位1104清除为0时,控制单元1006设定读出地址线1101r得到一个比存储在流水线步数暂存器1004的数据大1的讯号,此即为第二相型地址。无论哪一种相型地址,提供给读出地址线1101r的相同地址均会在经过一时钟周期之后藉由存储锁存器1102而被传送给写入地址线1101w。当流水线步数暂存器1004的数据数值达到N-1时,在本例中为15,该周期位1104会从0跳换至1,或从1跳换至0。虽然会有N时钟周期的延迟,其输出讯号1003会是输出讯号1002的一连串排序即时输出。
上述将输出讯号重排序的概念是非常普遍的,在第一局部时域T1输入的一连串输入讯号X[k]会在一第二局部时域T2中经由处理器转换成相对应的连串输出讯号x[n]。在上述实施例中,当流水线步数暂存器1004由0至15(即N-1)跑一完整的流水线周期时会记录每一局部时域。在此处所指的排序(ordering)是指在第一局部时域T1的时间T1j下输入的输入讯号X[p]会在第二局部时域T2的时间T2j产生一相对应的输出讯号x[p],其中p的数值是介于0至N-1,即0至15。因此,虽然在上述实例中,输入讯号X[0]至X[15]是有顺序地由小至大输入,但这并不是本发明重排序的程序中的必要条件。例如,一个经过设计的电路,可以将由大至小按顺序输入的一连串讯号X[15]至X[0]以经过重排序的方式将讯号x[15]至x[0]呈递减的顺序连续输出。本发明的重排序电路能使输入讯号与输出讯号只局部时域相合。
如上文所述,可将重排序电路1100应用到N为任何数值的处理器中,其条件为:对于一组离散于局部时间间隔T{T0,T1,…,Tn}的未排序数据{X0,X1,…,Xn},每一个在时间Tj所产生的Xk,会对应一个在时间Tk产生的Xj,如表一所示。例如,x1[8]是在流水线步数数据1(存储在图15中流水线步数暂存器1004)时出现,相对应地,x1[1]便会在流水线步数数据为8的时候出现;在图9、图11(A)、图11(B)的情况亦为如此。
本发明的重排序电路并未限制于DIT IFFT处理器中,该重排序电路亦可适用于DIF FFT处理器。不只如此,该重排序电路在DIT FFT与DIF IFFT处理器中皆可应用,其方式是输入未排序的输入讯号而产生排序的输出讯号,如图16所示。
在上述重排序电路中所使用的存储器是用于缓冲数据,其必须能在每一由流水线步数暂存器指示的流水线周期中(每次流水线步数暂存器所存储的数据增加1时)进行读出操作与写入操作。但这并不意味一个双端口随机存取存储器模块是不可或缺的,此种设计仅为本发明的较佳实施例而已,在其他设计中,使用一标准单端口随机存取存储器模块亦可实现本发明所需求的同样效果。在本实施例中,为了能够在同一流水线操作中进行读出写入操作,每一流水线端口数暂存器至少需要二个RAM总线周期,而读出地址端口与写入地址端口亦是如此。在一RAM总线周期中,会使用从该控制单元得到的读出地址,在另一周期中,会使用由存储锁存器传来的地址。
最后,应明了的是,有很多装置可以产生本发明重排序电路的第一状态所需的地址,意即地址对照表并非达到重排序程序的唯一方式,该重排序电路所需的地址可以如表四所列的方式计算得知,表四和表二大致相同,但表四是以二进位方式来表示,我们可清楚看到由二进位表示的部分仅为其索引指令的二进位的「反射」。此处「反射」是指原来的最大有效位(the most significant bit,MSB)会经反射而成最小有效位(the least significant bit,LSB),而第二MSB则会反射成第二LSB,依此类推。例如输入地址的指令0001所具有的值为1000,而输入地址1010所具有的值为0101。此种位反射的处理可以使用已知的简单逻辑操作来完成而取代地址对照表。
表四
  地址对照表数据输入地址In   数据输出地址On
  I0  0000I1  0001I2  0010I3  0011I4  0100I5  0101I6  0110I7  0111I8  1000I9  1001I10 1010I11 1011I12 1100I13 1101I14 1110I15 1111   O0  0000O8  1000O4  0100O12 1100O2  0010O10 1010O6  0110O14 1110O1  0001O9  1001O5  0101O13 1101O3  0011O11 1011O7  0111O15 1111
相较于已知技术,本发明提供一蝶型三叠单元,其包含一蝶型I单元、一蝶型II单元及一蝶型III单元,以及一包含至少一蝶型I单元的输出部分,其是以一复数乘法器连接于该蝶型III单元。该蝶型II单元包含一π/2复数旋转器,而该蝶型III单元包含一π/2与一π/4复数旋转器。依据一流水线步数数据,该蝶型I单元、蝶型II单元以及蝶型III单元被一控制电路控制,并提供系数给该复数乘法器。再者,本发明还提供一重排序电路,使得输出讯号在时域中的顺序与输入讯号在时域中的顺序相吻合。对一N点即时处理器,该重排序电路只需要一具有N沟槽的缓冲器用以存储N复数数据,便可提供即时的排序输入与输出,且不会限制或破坏整个输出与输入的连续性。其中,重排序缓冲存储器的读出与写入操作会被延迟,使得在该重排序缓冲存储器的一地址进行读出动作后,在下一流水线周期中会接着对同一地址进行写入操作。地址对照表的使用可决定重排序缓冲器的读出地址,而该地址对照表是根据存储在流水线步数暂存器的数据而得到索引指令。
以上所述仅为本发明的较佳实施例,凡依本发明起来要求所做的均等变化与修饰,均应属本发明专利的涵盖范围。

Claims (26)

1.一种N点流水线转换处理器,其包含:
一第一三叠单元,其包含一第一蝶型I单元、一蝶型II单元以及一蝶型III单元以串联的方式相连接,该第一蝶型I单元包含一输入端口用来作为该第一三叠单元的输入端口,以接收多个复数数据,该蝶型III单元包含一输出端口用来作为该第一三叠单元的输出端口;
其中该蝶型I单元包含:
一第一先进先出缓冲器,其可存储至少一复数数据;
一第一复数加法器,其是自该第一先进先出缓冲器及各该蝶型I单元的输入端口接收输入数据以产生一第一复数总和;
一第一复数减法器,其是自该第一先进先出缓冲器及各该蝶型I单元的输入端口接收输入数据以产生一第一复数差值;
一第一多路复用器,用来作为各该蝶型I单元的输出端口,该第一多路复用器根据一第一控制线选择自该第一先进先出缓冲器接收一数据或自该第一复数加法器接收该第一复数总和;以及
一第二多路复用器,用来提供输入数据至该第一先进先出缓冲器,该第二多路复用器根据一第二控制线选择自各该蝶型I单元的输入端口接收一数据或自该第一复数减法器接收该第一复数差值;
其中该第一控制线与该第二控制线是由该控制单元依据存储在该流水线步数暂存器的数据加以驱动,
其中该蝶型II单元包含:
一第二先进先出缓冲器,其可存储至少一复数数据;
一第一π/2复数旋转器,其是连接于该蝶型II单元的输入端口,以产生一相对应的第一π/2旋转复数输出值;
一第三多路复用器,其是根据一第三控制线选择从该蝶型II单元的输入端口接收一输入数据或从该第一π/2复数旋转器接收该第一π/2旋转复数输出值来作为其输出数据;
一第二复数加法器,其是自该第三多路复用器与该第二先进先出缓冲器接收输出数据以产生一第二复数总和;
一第二复数减法器,其是自该第二先进先出缓冲器及该第三多路复用器接收输入数据以产生一第二复数差值;
一第四多路复用器,其是作为该蝶型II单元的输出端口,该第四多路复用器根据一第四控制线选择自该第二先进先出缓冲器接收一数据或自该第二复数加法器接收该第二复数总和;以及
一第五多路复用器,用于提供输入数据至该第二先进先出缓冲器,该第五多路复用器根据一第五控制线选择接收自该第三多路复用器传来的输出数据或自该第二复数减法器接收该第二复数差值;
其中,该第三、第四及第五控制线是由该控制单元依据存储在该流水线步数暂存器的数据加以驱动,
其中该蝶型III单元包含:
一第三先进先出缓冲器,其可存储至少一复数数据;
一第二π/2复数旋转器,其是与该蝶型III单元的输入端口连接,以产生一相对应的第二π/2旋转复数输出值;
一第六多路复用器,其是根据一第六控制线选择自该蝶型III单元的输入端口接收一输入数据或自该第二π/2复数旋转器接收该第二π/2旋转复数输出值来作为其输出数据;
一π/4复数旋转器,其是接收该第六多路复用器所传来的输出数据,以产生一相对应的π/4旋转复数输出值;
一第七多路复用器,其是根据一第七控制线选择自该第六多路复用器接收一输出数据或自该π/4复数旋转器接收该π/4旋转复数输出值来作为其输出数据;
一第三复数加法器,其是接收自该第三先进先出缓冲器与该第七多路复用器传来的输出数据,以产生一第三复数总和;
一第三复数减法器,其是接收自该第三先进先出缓冲器与该第七多路复用器传来的输出数据,以产生一第三复数差值;
一第八多路复用器,其是作为该蝶型III单元的输出端口,该第八多路复用器系根据一第八控制线选择自该第三先进先出缓冲器接收一数据或自该第三复数加法器接收该第三复数总和;以及
一第九多路复用器,用于提供输入数据至该第三先进先出缓冲器,该第九多路复用器根据一第九控制线选择自该第七多路复用器接收一数据或自该第三复数减法器接收该第三复数差值;
其中,该第六、第七、第八及第九控制线是由该控制单元根据存储在该流水线步数暂存器的数据加以驱动;
一复数乘法器,用来接收该第一三叠单元的输出端口输出的复数结果并利用一系数来产生一复数乘积;
一输出部分,其包含至少一第二蝶型I单元,该第二蝶型I单元包含一输入端口用来接收该复数乘法器输出的该复数乘积,该输出部分用来输出经转换的复数数据;以及
一控制单元,其包含一流水线步数暂存器以及一系数产生器,该系数产生器用来提供多个系数至该复数乘法器;
其中该控制单元依据存储在该流水线步数暂存器的数据来控制该第一蝶型I单元、该第二蝶型I单元、该蝶型II单元以及该蝶型III单元的操作,并控制该系数产生器提供系数。
2.如权利要求1所述的处理器,其中该系数产生器包含一系数表存储在该控制单元。
3.如权利要求1所述的处理器,其中该第一先进先出缓冲器存储了L1复数数据,而在流水线步数暂存器决定一第一L1迭代时,该控制单元会控制该第一与第二控制线,以使该第一多路复用器选择接收自该第一先进先出缓冲器传来的输出数据,而该第二多路复用器选择自各该蝶型I单元的输入端口接收一数值;当该流水线步数暂存器紧接地决定一第二L1迭代时,该控制单元控制该第一与第二控制线,以使该第一多路复用器选择接收从该第一复数加法器传来的该第一复数总和,而该第二多路复用器选择自该第一复数减法器接收该第一复数差值。
4.如权利要求3所述的处理器,其中L1=N/(2×8p),且p是指一三叠单元的序数。
5.如权利要求1所述的处理器,其中该第二先进先出缓冲器存储了L2复数数据,而在该流水线步数暂存器决定一第一L2迭代时,该控制单元会控制该第四与第五控制线,以使该第四多路复用器选择接收自该第二先进先出缓冲器传来的输出数据,以及使该第五多路复用器选择自该第三多路复用器接收一输出数据;当该流水线步数暂存器紧接地决定一第二L2迭代时,该控制单元会控制该第四与第五控制线,以使该第四多路复用器选择接收从该第二复数加法器传来的该第二复数总和,而该第五多路复用器会选择自该第二复数减法器接收该第二复数差值。
6.如权利要求5所述的处理器,其中L2=N/(4×8p),且p指一三叠单元的序数。
7.如权利要求5所述的处理器,其中该控制单元系根据存储在该流水线步数暂存器的数据来驱动该第三控制线,以产生与一转换处理相一致的系数。
8.如权利要求1所述的处理器,其中该第三先进先出缓冲器存储了L3复数数据,而在该流水线步数暂存器决定一第一L3迭代时,该控制单元会控制该第八与第九控制线,以使该第八多路复用器选择接收自该第三先进先出缓冲器传来的输出数据,以及使该第九多路复用器选择自该第七多路复用器接收输出数据;当该流水线步数暂存器紧接地决定一第二L3迭代时,该控制单元会控制该第八与第九控制线,以使该第八多路复用器选择自该第三复数加法器接收该第三复数总和,而该第九多路复用器则选择自该第三复数减法器接收该第三复数差值。
9.如权利要求8所述的处理器,其中L3=N/(8×8p),且p指一三叠单元的序数。
10.如权利要求8所述的处理器,其中该控制单元系根据存储在该流水线步数暂存器的数据来驱动该第六与第七控制线,以产生与一转换处理相一致的系数。
11.如权利要求1所述的处理器,其中该π/4复数旋转器包含:
一第三π/2复数旋转器,其是自该π/4复数旋转器的输入端口接收一复数数据,并产生一相对应的第三π/2旋转复数输出值;
一第四复数加法器,其是自该π/4复数旋转器的输入端口接收一复数数据,并自该第三π/2复数旋转器接收该第三π/2旋转复数输出值,以产生一相对应的第四复数总和;
五个右位移器,其分别将该第四复数总和右移1、3、4、6及8位,以产生相对应的位移复数输出值;以及
一第五复数加法器,用于总和所述位移复数输出值,以产生该相对应的π/4旋转复数输出值。
12.如权利要求1所述的处理器,其中N=2n,n为3的倍数加2,且该输出部分还包含一第二蝶型II单元,串联于该第二蝶型I单元。
13.如权利要求1所述的处理器,其中N=2n,n为3的倍数,且该输出部分还包含一第二蝶型II单元串联于该第二蝶型I单元,以及一第二蝶型III单元串联于该第二蝶型II单元。
14.如权利要求1所述的处理器,其中该转换处理器系为一N点分时化简快速傅里叶逆变换处理器。
15.如权利要求1所述的处理器,其中该处理器还包含一重排序电路其包含:
一缓冲装置,用于对该流水线步数暂存器指示的每一次流水线周期进行一读出操作与一写入操作;
一定址装置,用于对该缓冲装置提供一读出地址与一写入地址;
一地址延迟装置,其在该流水线步数暂存器指示的每一次流水线周期中控制该定址装置,使该定址装置延迟于该缓冲装置的一存储地址中进行该读出与该写入操作;以及
一地址产生装置,其根据该流水线步数暂存器而产生一第一地址,并将该第一地址提供给该地址延迟装置。
16.如权利要求15所述的处理器,其中该缓冲装置为一双端口随机存取存储器。
17.如权利要求16所述的处理器,其中该定址装置包含该双端口随机存取存储器的一读出地址端口与一写入地址端口。
18.如权利要求17所述的处理器,其中该地址延迟装置包含一存储锁存器连接于该读出地址端口与该写入地址端口之间,该存储锁存器从该读出地址端口获得一读出地址,并在下一流水线周期中将该读出地址传给该写入地址端口。
19.如权利要求15所述的处理器,其中该重排序电路还包含一周期位与一周期位跳换装置,该周期位跳换装置会于该流水线步数暂存器决定的每N次流水线周期跳换该周期位,而该地址产生装置会根据该周期位产生该第一地址。
20.如权利要求19所述的处理器,其中该地址产生装置包含一地址对照表,其可以对每一输入讯号提供排序解码数据。
21.如权利要求20所述的处理器,其中该排序解码数据包含N数据输入地址I0至IN-1,而对于一个在时间间隔T1r产生的转换数据点X1q而言,数据输入地址Ir的存储值为q。
22.如权利要求21所述的处理器,其中该地址产生装置包含:
一用来自该流水线步数暂存器获得一索引指令的装置,以从该地址对照表产生该第一地址,并于该周期位在一第一状态时提供该第一地址给该地址延迟装置;以及
一用来直接从该流水线步数暂存器获得数据以产生一第二地址的装置,且该装置是于该周期位在一第二状态时提供该第二地址给该地址延迟装置。
23.如权利要求19所述的处理器,其中该地址产生装置还包含有:
一用来对一个从该流水线步数暂存器获得的数据做位反射处理而产生该第一地址的装置,且该装置系于该周期位在一第一状态时提供该第一地址给该地址延迟装置;以及
一用来直接从该流水线步数暂存器获得数据而产生一第二地址的装置,且该装置是于该周期位在一第二状态时提供该第二地址给该地址延迟装置。
24.如权利要求15所述的处理器,其中该缓冲装置包含多个槽沟,且所述槽沟的数目不大于N,用于存储N数据数值以进行重排序处理。
25.如权利要求15所述的处理器,其中该重排序电路自该输出部分接收经转换的所述复数数据,并使所述复数数据重新排序,以产生重排序的转换复数作为其输出数据。
26.如权利要求15所述的处理器,其中该重排序电路接收未经转换的多个复数数据,并使该复数数据重新排序,以产生重排序的未转换复数输出至一蝶型I单元。
CNB031038344A 2002-09-23 2003-02-12 一种流水线简易fft/ifft处理器 Expired - Fee Related CN1292551C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/065,154 US20040059766A1 (en) 2002-09-23 2002-09-23 Pipelined low complexity FFT/IFFT processor
US10/065,154 2002-09-23

Publications (2)

Publication Number Publication Date
CN1486001A CN1486001A (zh) 2004-03-31
CN1292551C true CN1292551C (zh) 2006-12-27

Family

ID=31989990

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031038344A Expired - Fee Related CN1292551C (zh) 2002-09-23 2003-02-12 一种流水线简易fft/ifft处理器

Country Status (3)

Country Link
US (1) US20040059766A1 (zh)
CN (1) CN1292551C (zh)
TW (1) TWI224263B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937332A (zh) * 2010-08-19 2011-01-05 复旦大学 基于基24算法的多路fft处理器中乘法器的复用方法
TWI506457B (zh) * 2014-09-26 2015-11-01 Univ Nat Chiao Tung 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050015420A1 (en) * 2003-07-18 2005-01-20 Gibb Sean G. Recoded radix-2 pipeline FFT processor
JP3783702B2 (ja) * 2003-08-19 2006-06-07 ソニー株式会社 受信装置及び受信方法
US7693034B2 (en) * 2003-08-27 2010-04-06 Sasken Communication Technologies Ltd. Combined inverse fast fourier transform and guard interval processing for efficient implementation of OFDM based systems
US20050128937A1 (en) * 2003-12-11 2005-06-16 Nokia Corporation Determination of correlation in the frequency domain
KR100602272B1 (ko) * 2004-12-14 2006-07-19 삼성전자주식회사 고속으로 데이터를 처리하는 고속 퓨리에 변환 장치 및 방법
US7577698B2 (en) * 2004-12-28 2009-08-18 Industrial Technology Research Institute Fast fourier transform processor
US8229014B2 (en) * 2005-03-11 2012-07-24 Qualcomm Incorporated Fast fourier transform processing in an OFDM system
US8266196B2 (en) * 2005-03-11 2012-09-11 Qualcomm Incorporated Fast Fourier transform twiddle multiplication
US20060224651A1 (en) * 2005-03-31 2006-10-05 Texas Instruments Incorporated Combined IFFT and FFT system
CN101069398B (zh) * 2005-06-30 2013-07-10 诺基亚公司 用于进行mimo-ofdm系统的多流fft的方法和装置
SG133451A1 (en) * 2005-12-30 2007-07-30 Oki Techno Ct Singapore Pte A processor and method for performing a fast fourier transform and/or an inverse fast fourier transform of a complex input signal
US8126953B2 (en) * 2006-04-28 2012-02-28 Qualcomm Incorporated Multi-port mixed-radix FFT
CN101277283B (zh) * 2007-03-28 2010-10-20 中国科学院微电子研究所 快速傅立叶变换蝶型装置
US20080282215A1 (en) * 2007-05-11 2008-11-13 Chia-Chi Chu Method of designing a digital integrated circuit for a multi-functional digital protective relay
KR20090059315A (ko) * 2007-12-06 2009-06-11 삼성전자주식회사 통신시스템에서 역 고속 퓨리에 변환 방법 및 장치
US8218426B2 (en) * 2008-03-28 2012-07-10 Qualcomm Incorporated Multiple stage fourier transform apparatus, processes, and articles of manufacture
US20100082722A1 (en) * 2008-09-26 2010-04-01 Sinnokrot Mohanned O Methods and Apparatuses for Detection and Estimation with Fast Fourier Transform (FFT) in Orthogonal Frequency Division Multiplexing (OFDM) Communication Systems
CN101794275B (zh) * 2010-03-22 2012-04-25 华为技术有限公司 快速傅立叶变换运算的设备
KR20120070746A (ko) * 2010-12-22 2012-07-02 한국전자통신연구원 고속 푸리에 변환 수행 방법 및 장치
CN102768654A (zh) 2011-05-05 2012-11-07 中兴通讯股份有限公司 具有fft基2蝶运算处理能力的装置及其实现运算的方法
CN103748576B (zh) * 2011-10-17 2017-04-05 松下知识产权经营株式会社 自适应均衡器
CN104040488B (zh) * 2011-12-22 2017-06-09 英特尔公司 用于给出相应复数的复共轭的矢量指令
CN103186503B (zh) * 2011-12-27 2017-05-17 深圳市中兴微电子技术有限公司 一种fft/dft倒序排列系统与方法及其运算系统
CN103186476B (zh) * 2011-12-30 2017-07-28 上海贝尔股份有限公司 一种用于多流的数据缓存方法和装置
US9525579B2 (en) * 2012-07-18 2016-12-20 Nec Corporation FFT circuit
US8761181B1 (en) * 2013-04-19 2014-06-24 Cubic Corporation Packet sequence number tracking for duplicate packet detection
CN103812815A (zh) * 2013-11-27 2014-05-21 无锡微斯腾信息技术有限公司 一种基于频谱反变换实现多载波无线宽带信号调制的方法
TWI564735B (zh) * 2015-06-09 2017-01-01 華邦電子股份有限公司 資料分配裝置、訊號處理裝置及其資料分配方法
US9977116B2 (en) * 2015-10-05 2018-05-22 Analog Devices, Inc. Scaling fixed-point fast Fourier transforms in radar and sonar applications
US20230418897A1 (en) * 2022-06-22 2023-12-28 Nxp B.V. Signal processing system for performing a fast fourier transform with adaptive bit shifting, and methods for adaptive bit shifting
CN115865572B (zh) * 2022-11-10 2024-06-25 中国电子科技集团公司第十研究所 一种高速并行接收机数据重构系统及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4589730A (en) * 1982-07-28 1986-05-20 Ricoh Company, Ltd. Light transmission control apparatus using air bubbles
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
US4988157A (en) * 1990-03-08 1991-01-29 Bell Communications Research, Inc. Optical switch using bubbles
US5365470A (en) * 1993-02-10 1994-11-15 Trw Inc. Fast fourier transform multiplexed pipeline
US6081821A (en) * 1993-08-05 2000-06-27 The Mitre Corporation Pipelined, high-precision fast fourier transform processor
JPH08320858A (ja) * 1995-05-25 1996-12-03 Sony Corp フーリエ変換演算装置および方法
CA2242823A1 (en) * 1995-11-17 1997-05-29 Teracom Svensk Rundradio Improvements in or relating to real-time pipeline fast fourier transform processors
US6061705A (en) * 1998-01-21 2000-05-09 Telefonaktiebolaget Lm Ericsson Power and area efficient fast fourier transform processor
US6658441B1 (en) * 1999-08-02 2003-12-02 Seung Pil Kim Apparatus and method for recursive parallel and pipelined fast fourier transform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101937332A (zh) * 2010-08-19 2011-01-05 复旦大学 基于基24算法的多路fft处理器中乘法器的复用方法
TWI506457B (zh) * 2014-09-26 2015-11-01 Univ Nat Chiao Tung 折疊式蝶形模組、管線式快速傅利葉轉換處理器及控制方法

Also Published As

Publication number Publication date
TW200405179A (en) 2004-04-01
TWI224263B (en) 2004-11-21
US20040059766A1 (en) 2004-03-25
CN1486001A (zh) 2004-03-31

Similar Documents

Publication Publication Date Title
CN1292551C (zh) 一种流水线简易fft/ifft处理器
CN1722130A (zh) 可重配置运算装置
CN1173499C (zh) Ofdma信号传输装置及其方法
CN1794712A (zh) 在通信系统中执行时域信道估计的装置和方法
CN2579091Y (zh) 利用阵列处理进行数据检测的用户装置
CN1188939A (zh) 高速傅里叶变换装置、高速傅里叶反变换装置及方法
CN1152650C (zh) 用于多信道数字接收和超声波分析的方法和装置
CN1259617C (zh) 一种加快rsa加/解密过程的方法及其模乘、模幂运算电路
JP6256348B2 (ja) 高速フーリエ変換回路、高速フーリエ変換処理方法及び高速フーリエ変換処理プログラム
CN87107679A (zh) 一种正交变换处理器
CN1649335A (zh) 相关器和利用其的接收装置
CN1227913C (zh) 水平滤波器
CN1885287A (zh) 存储器的读出及写入方法、存储器控制方法及运算装置
US8510362B2 (en) Apparatus and method for variable fast fourier transform
CN1035190A (zh) 基于操作数长度和对位的微码转移
CN1845483A (zh) Td-scdma系统中接收机的联合检测系统及其数据处理方法
CN101031904A (zh) 带有两类子处理器以执行多媒体应用的可编程处理器系统
CN1146581A (zh) 傅里叶变换的运算单元和方法
CN1107597A (zh) 管线式与心跳式及单指令多数据流的阵列处理架构及方法
JPH04280368A (ja) Dctマトリクス演算回路
CN106339353A (zh) 一种支持4375点和3780点fft/ifft的方法及其处理器
US20120254274A1 (en) Index Generation Scheme for Prime Factor Algorithm Based Mixed Radix Discrete Fourier Transform (DFT)
CN101043491A (zh) 选择性映射方法及其装置和部分发送序列方法及其装置
CN100340971C (zh) 运算装置
CN1353839A (zh) 在减少的等待时间内确定函数系数的设备、方法和计算机程序产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061227

Termination date: 20150212

EXPY Termination of patent right or utility model