CN109783766A - 一种基2算法的快速傅里叶变换硬件设计方法 - Google Patents
一种基2算法的快速傅里叶变换硬件设计方法 Download PDFInfo
- Publication number
- CN109783766A CN109783766A CN201811483737.8A CN201811483737A CN109783766A CN 109783766 A CN109783766 A CN 109783766A CN 201811483737 A CN201811483737 A CN 201811483737A CN 109783766 A CN109783766 A CN 109783766A
- Authority
- CN
- China
- Prior art keywords
- unit
- data
- fft
- butterfly
- real
- 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.)
- Pending
Links
- 238000013461 design Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 title claims abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000010586 diagram Methods 0.000 claims abstract description 8
- 238000000605 extraction Methods 0.000 claims abstract description 4
- 230000008520 organization Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000391 smoking effect Effects 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明涉及一种一种基2算法的快速傅里叶变换硬件设计方法,采用频域抽方式得到频域抽取的基2算法的16点FFT,并得到16点的数据流图;设计16点基于串行蝶形单元的基2算法的FFT的整体结构,此结构包含4个处理级,每一级分别包含处理单元和逆序单元,其中处理单元包括蝶形单元和旋转因子乘法器单元,蝶形单元只使用一个实数加法器和减法器,串行蝶形单元使用两个时钟周期完成计算,分别完成实部和虚部的加减法,串行蝶形单元处理输入的实部,然后处理虚部。逆序单元用于缓存数据并改变数据在每一个处理级的输入顺序。
Description
技术领域
本发明属于超大规模集成电路(Very Large Scale Integration,简称VLSI)设计范畴,设计出一种基于串行蝶形单元的16点基2算法结构的快速傅里叶变换的VLSI结构。
背景技术
快速傅里叶变换(Fast Fourier Transform,FFT)已经成为信号处理中最重要的算法之一,在通信、滤波以及数字频谱分析等领域应用广泛。为满足数字信号处理的实时性需求,人们已经提出许多硬件实现的FFT结构,来提高处理速度以及减少硬件资源的使用情况。
流水线FFT结构是最常见的FFT硬件结构之一。这种结构可以使用较少的硬件资源,连续不间断地处理流入的数据。目前有两种流水线结构的FFT:串行流水线结构,这种结构每个时钟周期处理1个采样点数据;另一种是并行流水线结构,这种结构每个时钟周期处理多个采样点数据。
多路延迟转换FFT结构(Multipath Delay Commutator,MDC)是目前使用最少数量蝶形运算单元以及存储单元的并行流水线FFT结构,可有效利用旋转因子复数乘法器单元,Garrido和Huang在论文《Feedforward FFT Hardware Architectures Based on RotatorAllocation》[1]中使资源使用率达到100%。
串行流水线FFT结构同样得到广泛研究。He和Torkelson在论文《Design andimplementation of a 1024-point pipeline FFT processor》[2]中设计的典型的基2单路延迟反馈结构(Single Delay Feedback SDF)对蝶形单元和旋转因子复数乘法器单元的使用率只有50%。使用其他算法,例如在Zhou和Hwang的论文《Implementations andOptimizations of Pipeline FFTs on Xilinx FPGAs》[3]中,基4和基22算法提高了旋转因子复数乘法器单元的使用率,但是没有提高蝶形单元的使用率。在Liu和Yu的论文《Apipelined architecture for normal I/O order FFT》[4]中,使用单路延迟转换结构(Single Delay Commutator,SDC)提高了旋转因子复数乘法器单元和蝶形单元的使用率,但是这种结构增加了存储单元。Wang和Liu在论文《A Combined SDC-SDF Architecturefor Normal I/O Pipelined Radix-2》[5]中提出一种SDF 和SDC相结合的流水线结构,可以分时复用乘法器和加法器,提高了计算速度,但是硬件资源消耗较大。
基2算法中的蝶形运算流图如图1所示,图中左边两支路为输入,中间的小圆点表示前续运算中的加、减运算,左上支路为相加输出,左下支路为相减输出。右边两支路是输出,如果在某一支路上信号需要进行后续相乘运算,则在该支路上标以箭头,将相乘的系数标在箭头边。
参考文献
[1]Garrido M,Huang S J,Chen S G.Feedforward FFT HardwareArchitectures Based on Rotator Allocation[J].IEEE Transactions on Circuits&Systems I Regular Papers,2018, PP(99):1-12.
[2]He S,Torkelson M.Design and implementation of a 1024-pointpipeline FFT processor[C]// Custom Integrated Circuits Conference,1998.Proceedings of the IEEE.Santa Clara:IEEE, 1998:131-134.
[3]Zhou B,Hwang D.Implementations and Optimizations of Pipeline FFTson Xilinx FPGAs.[C]//International Conference on Reconfigurable Computing andFpgas,2008. Reconfig.Cancun:IEEE,2008:325-330.
[4]Liu X,Yu F,Wang Z K.A pipelined architecture for normal I/O orderFFT[J].Frontiers of Information Technology&Electronic Engineering,2011,12(1):76-82.
[5]Wang Z,Liu X,He B,et al.A Combined SDC-SDF Architecture for NormalI/O Pipelined Radix-2FFT[J].IEEE Transactions on Very Large Scale IntegrationSystems,2015, 23(5):973-977.
发明内容
本发明提出一种基于串行蝶形单元基2算法结构FFT设计方法。本发明设计的FFT使用了更少的蝶形单元、旋转因子乘法器和存储单元,各个模块的使用率达到100%,节约了硬件资源使用情况。本发明的技术方案为:
一种基2算法的快速傅里叶变换硬件设计方法,采用频域抽方式得到频域抽取的基2 算法的16点FFT,并得到16点的数据流图;设计16点基于串行蝶形单元的基2算法的FFT的整体结构,此结构包含4个处理级,每一级分别包含处理单元和逆序单元,其中处理单元包括蝶形单元和旋转因子乘法器单元,蝶形单元只使用一个实数加法器和减法器,串行蝶形单元使用两个时钟周期完成计算,分别完成实部和虚部的加减法,串行蝶形单元处理输入的实部,然后处理虚部;在第0个时钟周期,数据1的实部和虚部进入FFT模块,在第二个时钟周期数据2进入模块中,同时蝶形单元计算前两个输入的两个数据的实部加法和减法,然后在第3个时钟周期输入数据3,同时蝶形单元计算虚部加法和减法,然后数据进入旋转因子乘法器。逆序单元用于缓存数据并改变数据在每一个处理级的输入顺序。
优选地,串行蝶形单元FFT的数据处理顺序为:每一列从上到下代表本级的数据输入顺序。第一个数据和第八个数据,x[0]和x[8]首先进入第一级的处理单元,然后计算x[2]和 x[10],以此类推,连续的数据按照顺序进入每一级处理单元;逆序单元的控制信号与流水线的延迟相同,通过一个计数器来得到,当第一个数据进入FFT处理器时计数器开始工作,将所有逆序单元所使用的寄存器相加得到完整的FFT处理器所使用的寄存器总数以及整体时钟延迟。
本发明提供了一种硬件效率更高的16点FFT架构,采用了串行蝶形单元,节省了硬件开销,具有更高的硬件效率。
附图说明
图1为蝶形单元计算示意图
图2为16点频域抽取结构基2算法FFT整体结构示意图
图3为基2结构FFT处理单元示意图
图4为16点FFT中数据进入各级处理单元顺序示意图
图5为逆序模块示意图
具体实施方式
下面结合附图对本发明进行详细说明。
如图2所示,给出了16点频域抽取的基22结构的FFT。此结构包含4级,分别包含处理单元和逆序单元。其中处理单元包括蝶形单元和旋转因子乘法器单元,旋转因子乘法器使用圆形表示。
处理单元
串行蝶形单元上标记数字1/2,代表它与传统的蝶形处理单元相比只需要一半的逻辑单元,它只使用一个实数加法器和减法器。串行蝶形单元使用两个时钟周期完成计算,分别完成实部和虚部的加减法。
图3表示串行蝶形单元基2算法的FFT处理单元结构,可以看到它的关键路径经过3个多路选择器、2个加/减法器和1个乘法器。处理单元完成蝶形运算和旋转因子乘法运算:
其中输入X0=XR0+jXI0,X1=XR1+jXI1,输出Y0=YR0+jYI0,Y1=YR1+jYI1。 X代表输入数据,Y代表处理单元输出数据,Z代表蝶形单元的输出。下脚标0代表第0个输入数据,1代表第1个输入数据。下角标R代表数据的实部,I代表数据的虚部。e为自然常数,j代表虚数符号,α0和α1分别代表两组数据对应的旋转因子角度。
表1表示了处理单元的时序。首先串行蝶形单元处理输入的实部,然后处理虚部。在第 0个时钟周期,数据1的实部和虚部进入FFT模块,在第二个时钟周期数据2进入模块中,同时蝶形单元计算前两个输入的两个数据的实部加法和减法,然后在第3个时钟周期输入数据3,同时蝶形单元计算虚部加法和减法,然后数据进入旋转因子乘法器,计算得出YR0和YI0,并且在下一周期完成数据4的输入以及数据3和数据4的实部加减法运算以及YR1和YI1的计算。整个模块使用流水线设计。其中YR0=ZR0cosα0+ZI0sinα0, YI0=ZR0sinα0-ZI0cosα0,YR1=ZR1cosα1+ZI1sinα1,YI1=ZR1sinα1-ZI1cosα1。
表1基2结构FFT处理单元时序
数据输入顺序
处理单元在连续的时钟下对一对数据进行蝶形运算和旋转因子相乘运算。而每一级处理单元所处理的数据顺序不同,所以就需要使用逆序模块将数据缓存并进行重新排序,使下一级的处理单元能够正确工作。逆序模块放置在每级处理单元之后。
图4表示串行蝶形单元FFT的数据处理顺序,每一列从上到下代表本级的数据输入顺序。第一个数据和第八个数据,x[0]和x[8]首先进入第一级的处理单元,然后计算x[2]和x[10],以此类推。连续的数据按照顺序进入每一级处理单元。
为了得到图4所示的输入顺序,使用逆序模块将输入数据进行重新排列。图5是逆序模块示意图,此模块可以将间隔L个时钟周期的两个输入数据交换。在图2中第1、第2和第3级中交换的数据输入间隔分别为3、1和7个时钟周期,和图5中表示的逆序单元中的数字相同。
对于N点串行蝶形单元结构的FFT,在当前运算级数s=1,2,…,n-2时,逆序单元的缓存大小和延迟为
L=2n-s-1-20 (3)
当s=n-1时,
L=2n-1 (4)
控制信号可以通过一个n比特大小的计数器来得到,计数器从0到N-1计数,对于长度为L=2i-1的逆序单元来说,控制信号Si为:
控制信号必须与流水线的延迟相同,所以当第一个数据进入FFT处理器时计数器开始工作。将所有逆序单元所使用的寄存器相加可以得到完整的FFT处理器所使用的寄存器总数以及整体时钟延迟:
在N点串行蝶形单元结构FFT中,处理单元中的寄存器和逆序模块中的寄存器一共约为N个,即理论上的N点FFT所使用寄存器的最小值。
根据表2,本发明使用的旋转因子乘法器、加法器和存储单元最少,具有极高的硬件效率。这种结构是一种高性能的FFT算法的VLSI结构。
表2不同结构硬件资源理论值
对比方案的参考文献
[1]He S,Torkelson M.Design and implementation of a 1024-pointpipeline FFT processor[C]// Custom Integrated Circuits Conference,1998.Proceedings of the IEEE.Santa Clara:IEEE, 1998:131-134.
[2]Zhou B,Hwang D.Implementations and Optimizations of Pipeline FFTson Xilinx FPGAs.[C]//International Conference on Reconfigurable Computing andFpgas,2008. Reconfig.Cancun:IEEE,2008:325-330.
[3]Liu X,Yu F,Wang Z K.A pipelined architecture for normal I/O orderFFT[J].Frontiers of Information Technology&Electronic Engineering,2011,12(1):76-82.
[4]Wang Z,Liu X,He B,et al.A Combined SDC-SDF Architecture for NormalI/O Pipelined Radix-2 FFT[J].IEEE Transactions on Very Large ScaleIntegration Systems,2015, 23(5):973-977。
Claims (2)
1.一种基2算法的快速傅里叶变换硬件设计方法,采用频域抽方式得到频域抽取的基2算法的16点FFT,并得到16点的数据流图;设计16点基于串行蝶形单元的基2算法的FFT的整体结构,此结构包含4个处理级,每一级分别包含处理单元和逆序单元,其中处理单元包括蝶形单元和旋转因子乘法器单元,蝶形单元只使用一个实数加法器和减法器,串行蝶形单元使用两个时钟周期完成计算,分别完成实部和虚部的加减法,串行蝶形单元处理输入的实部,然后处理虚部;在第0个时钟周期,数据1的实部和虚部进入FFT模块,在第二个时钟周期数据2进入模块中,同时蝶形单元计算前两个输入的两个数据的实部加法和减法,然后在第3个时钟周期输入数据3,同时蝶形单元计算虚部加法和减法,然后数据进入旋转因子乘法器。逆序单元用于缓存数据并改变数据在每一个处理级的输入顺序。
2.根据权利要求1所述的设计方法,其特征在于,串行蝶形单元FFT的数据处理顺序为:每一列从上到下代表本级的数据输入顺序。第一个数据和第八个数据,x[0]和x[8]首先进入第一级的处理单元,然后计算x[2]和x[10],以此类推,连续的数据按照顺序进入每一级处理单元;逆序单元的控制信号与流水线的延迟相同,通过一个计数器来得到,当第一个数据进入FFT处理器时计数器开始工作,将所有逆序单元所使用的寄存器相加得到完整的FFT处理器所使用的寄存器总数以及整体时钟延迟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811483737.8A CN109783766A (zh) | 2018-12-05 | 2018-12-05 | 一种基2算法的快速傅里叶变换硬件设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811483737.8A CN109783766A (zh) | 2018-12-05 | 2018-12-05 | 一种基2算法的快速傅里叶变换硬件设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109783766A true CN109783766A (zh) | 2019-05-21 |
Family
ID=66496699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811483737.8A Pending CN109783766A (zh) | 2018-12-05 | 2018-12-05 | 一种基2算法的快速傅里叶变换硬件设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109783766A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112051446A (zh) * | 2020-08-18 | 2020-12-08 | 许继集团有限公司 | 一种电力系统宽频测量的混合基fft实现方法及装置 |
CN112799634A (zh) * | 2021-01-18 | 2021-05-14 | 南京航空航天大学 | 一种基于基22mdc ntt结构的高性能环多项式乘法器 |
CN112835023A (zh) * | 2020-12-31 | 2021-05-25 | 杭州电子科技大学 | 一种室内人员定位与跌倒检测及算法加速装置及工作方法 |
CN113378108A (zh) * | 2020-02-25 | 2021-09-10 | 珠海市煊扬科技有限公司 | 音频处理装置的快速傅立叶变换电路 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107544942A (zh) * | 2017-07-13 | 2018-01-05 | 天津大学 | 一种快速傅里叶变换的vlsi设计方法 |
-
2018
- 2018-12-05 CN CN201811483737.8A patent/CN109783766A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107544942A (zh) * | 2017-07-13 | 2018-01-05 | 天津大学 | 一种快速傅里叶变换的vlsi设计方法 |
Non-Patent Citations (2)
Title |
---|
MARIO GARRIDO ET AL: "The Serial Commutator (SC) FFT", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS PART II: EXPRESS BRIEFS》 * |
沈耀坡等: "一种高性能快速傅里叶变换的硬件设计", 《西安电子科技大学学报(自然科学版)》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113378108A (zh) * | 2020-02-25 | 2021-09-10 | 珠海市煊扬科技有限公司 | 音频处理装置的快速傅立叶变换电路 |
CN112051446A (zh) * | 2020-08-18 | 2020-12-08 | 许继集团有限公司 | 一种电力系统宽频测量的混合基fft实现方法及装置 |
CN112835023A (zh) * | 2020-12-31 | 2021-05-25 | 杭州电子科技大学 | 一种室内人员定位与跌倒检测及算法加速装置及工作方法 |
CN112799634A (zh) * | 2021-01-18 | 2021-05-14 | 南京航空航天大学 | 一种基于基22mdc ntt结构的高性能环多项式乘法器 |
CN112799634B (zh) * | 2021-01-18 | 2024-03-29 | 南京航空航天大学 | 一种基于基22mdc ntt结构的高性能环多项式乘法器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522674A (zh) | 基2-2算法的快速傅里叶变换硬件设计方法 | |
CN109783766A (zh) | 一种基2算法的快速傅里叶变换硬件设计方法 | |
Ayinala et al. | Pipelined parallel FFT architectures via folding transformation | |
CN110765709B (zh) | 一种基于fpga的基2-2快速傅里叶变换硬件设计方法 | |
CN103970718A (zh) | 一种快速傅里叶变换实现装置及方法 | |
JP2008506191A5 (zh) | ||
CN101847137B (zh) | 一种实现基2fft计算的fft处理器 | |
CN104407836B (zh) | 利用定点乘法器进行级联乘累加运算的装置和方法 | |
CN103699516A (zh) | 向量处理器中基于simd的并行fft/ifft蝶形运算方法及装置 | |
CN102073621B (zh) | 一种应用于fft/ifft的基4蝶形单元电路及其处理方法 | |
CN102760117B (zh) | 一种实现矢量运算的方法和系统 | |
CN107544942A (zh) | 一种快速傅里叶变换的vlsi设计方法 | |
Wang et al. | Novel memory reference reduction methods for FFT implementations on DSP processors | |
CN112231626A (zh) | 一种fft处理器 | |
CN106383807A (zh) | 一种fft处理器 | |
Ayinala et al. | Parallel-pipelined radix-2 2 FFT architecture for real valued signals | |
CN107908389A (zh) | 小点数fft旋转因子复数乘法加速器 | |
Chinnapalanichamy et al. | Serial and interleaved architectures for computing real FFT | |
CN104268124B (zh) | 一种fft实现装置和方法 | |
CN108628805A (zh) | 一种低功耗的蝶形运算单元及处理方法、fft处理器 | |
CN103262067B (zh) | 一种数据处理方法、数据处理装置和通信系统 | |
CN105975436A (zh) | 一种SoC系统中通用可配置加速单元的IP电路 | |
Fang et al. | A pipelined algorithm and area-efficient architecture for serial real-valued FFT | |
CN101833540B (zh) | 信号处理方法和装置 | |
CN101741801B (zh) | 一种32路并行数据dft的实现结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190521 |
|
RJ01 | Rejection of invention patent application after publication |