CN103761074A - 一种流水结构定点fft字长配置方法 - Google Patents

一种流水结构定点fft字长配置方法 Download PDF

Info

Publication number
CN103761074A
CN103761074A CN201410038044.3A CN201410038044A CN103761074A CN 103761074 A CN103761074 A CN 103761074A CN 201410038044 A CN201410038044 A CN 201410038044A CN 103761074 A CN103761074 A CN 103761074A
Authority
CN
China
Prior art keywords
word length
fft
output
input
template
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.)
Granted
Application number
CN201410038044.3A
Other languages
English (en)
Other versions
CN103761074B (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201410038044.3A priority Critical patent/CN103761074B/zh
Publication of CN103761074A publication Critical patent/CN103761074A/zh
Application granted granted Critical
Publication of CN103761074B publication Critical patent/CN103761074B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明在保证R22SDF定点FFT输出SQNR的情况下,实现节省存储资源的目标,提出一种流水结构定点FFT字长配置方法,首先按照每级加减法运算按照运算法则产生进位,即字长增加一位,计算一个基22FFT从输入到输出各级运算的字长,以此字长配置方案作为一个待优化的方案的模板;然后针对该模板,在保持每一级乘法的运算输入输出的数据字长不变的情况下,按照SQNR要求降低各级加减法运算的字长,确定字长配置方案;最后,根据前面确定的字长配置方案进行FFT算法的硬件实现,设计相应的带有截位器的基本蝶形运算单元,并且按照单路延时反馈的电路结构进行FFT的硬件实现。

Description

一种流水结构定点FFT字长配置方法
技术领域
本发明属于数字信号处理技术领域,涉及一种流水结构定点FFT字长配置方法。 
背景技术
FFT算法是一种实现的DFT(离散傅里叶变换)的有效的快速算法,随着大规模集成电路和数字信号处理技术的发展,FFT算法具有不可替代的作用,广泛应用于雷达、声纳、通信等领域。一种高精度、高实时性且资源占用少的FFT实现算法一直是该领域的重要研究课题,在不同的应用需求下可以采用不同的实现方式。 
FFT算法在实现时可以采用定点或者浮点的数据格式,浮点FFT精度高,但是由于采用了浮点的数据格式,存储资源消耗大,并且浮点运算相对复杂,所以运算速度也相对缓慢。定点FFT具有存储资源占用少、运算速度快等优势,虽然定点运算会产生量化噪声,但是采用适当的字长,在相应的工程指标要求下,可以很好地完成系统中的FFT运算。虽然定点FFT具备很多优势,但是一直缺少一种科学有效的字长配置方法,工程应用中多数是通过经验配置定点FFT各级字长,这对定点FFT性能有较大影响,本发明在一定理论模型的基础上,提出一种可以作为依据的行之有效的定点FFT各级字长配置方法。 
传统的FFT结构包括基于存储的、流水的、阵列的和缓存结构的,在高实时性系统当中,流水结构的FFT是经常被采用的,流水结构在实现高实时性的同时,代价是占用的存储资源较大,定点FFT各级字长的配置直接影响到各级分配的存储容量,所以一种在保证FFT性能的前提下,尽可能优化的字长配置对于节省存储容量是十分重要的,本发明保证了定点FFT性能的同时,针对流水结构进行优化,使得存储资源得以节省。 
发明内容
本发明的目的是为了克服已有技术的缺陷,在保证R22SDF(基22单路延时反馈)定点FFT输出SQNR(信号-量化噪声功率比)的情况下,实现节省存储资源的目标,提出一种流水结构定点FFT字长配置方法。 
为了解决上述技术问题,技术方案如下: 
一种流水结构定点FFT字长配置方法,首先按照每级加减法运算按照运算法则产生进位,即字长增加一位,计算一个基22FFT从输入到输出各级运算的字长,以此字长配置方案作为一个待优化的方案的模板;然后针对该模板,在保持每一级乘法的运算输入输出的数据字长不变的情况下,按照SQNR要求降低各级加减法运算的字长,确定字长配置方案;最后,根据前面确定的字长配置方案进行FFT算法的硬件实现,设计相应的带有截位器的基本蝶形运算单元,并且按照单路延时反馈的电路结构进行FFT的硬件实现。 
本发明的有益效果: 
为了优化R22SDF(基22单路延时反馈)结构定点FFT实时性好但存储资源占用较多的缺陷,本发明在一定的定点FFT误差理论模型支持下,通过降低FFT各级加减法运算的字长降低了各级所需的存储容量,同时各级FFT的乘法运算采用较大的字长完成以保证FFT的输出SQNR(信号功率-量化噪声功率比)性能。此方法为定点FFT的实现提供了配置字长的依据。 
本发明方法对比已有技术,能够有效减少FFT各级加减法运算的字长,从而节省了流水结构各级的存储资源消耗,同时保持各级乘法运算的字长不变,使得FFT运算精度得以保证,为高性能定点FFT的实际实现提供了字长配置的依据,在资源优化和性能保持两方面达到了良好的平衡。 
附图说明
图1为未进行字长优化的FFT字长配置; 
图2为进行字长优化的FFT字长配置; 
图3为硬件实现时的基本蝶形运算单元; 
图4为本发明一种流水结构定点FFT字长配置方法电路结构原理框图。 
具体实施方式
下面结合附图对本发明方法的实施方式做详细说明。 
一种流水结构定点FFT字长配置方法,其具体步骤包括: 
步骤一、建立待优化的方案:图1所示为未进行字长优化的FFT各级字长配置图,这组字长配置方案将作为优化方案的基础。建立这个模板的方法:如图1所示,首先按照基22FFT结构,256点FFT将被分解为4级,每级包含两个加法运算和一个复数乘法运算,对加法运算,输出字长相比于输入字长增加一位;对于复数乘法运算,图中用1个乘法和1个加法表示,虽然复数乘法中包含加法,但是由于FFT运算中的旋转因子均为0~1之间的纯小数,所以并不产生进位,所以保持复数乘法的输出字长和输入字长一致。按照上述的加法、乘法进位原则逐级设置字长,即可得到待优化的字长方案。 
步骤二、对待优化方案进行优化:图2所示为进行字长优化的FFT各级字长配置图,这组字长配置方案为在步骤一的模板基础上优化得到的方案。具体方法如下:对比图1各级,保证乘法运算的结果字长不变,这对保持运算精度很重要;对于FFT运算的第1级和第2级,第一个加法运算结果字长相对于输入字长减少1bit,第二个加法运算结果字长相对于输入字长保持不变,这样做硬件实现时将节省更多存储;对于FFT运算的第3级,由于需要缓存的数据点数越来越小,对存储的需求下降,所以可以将加法运算的输入字长增大以补偿精度,但是字长变化规律不变,即如图2所示第3级第一个加法运算,输出字长仍然比输入字长减少1bit,但是输入字长的绝对大小扩大到了20bit(比前一级的运算结果增加2bit),第二个加法运算输出字长仍然与输入字长相同;最后一级FFT运算不包含乘法运算,对于两个加法运算,字长配置策略保持与未优化的模板相同。按照上述步骤就可以得到一组优化的字长配置。 
步骤三、设计基本蝶形运算单元:为了硬件实现步骤二中得到的优化的字长配置方案,需要设计FFT运算中的基本运算单元,图3所示为硬件实现时的基本蝶形运算单元。它主要由蝶形运算单元、截位器、乘法器组成。蝶形运算单元完成FFT运算中每一级的加法运算(或减法运算),输入字长为bin,输出字长为bin+1;截位器按照步骤二中的字长配置策略对加减法的输出结果进行截位,即减少加减法运算结果的字长,通过
Figure BDA0000462559500000031
来截去Tibit;乘法器完成复数 乘法操作,输入输出字长保持一致。这样构成一个蝶形运算单元。 
步骤四、硬件实现:图4所示为一个256点R22SDF结构FFT的结构框图,所谓的单路延时反馈结构即从输入到输出只有一条数据通路,每一级蝶形运算的结果数据需要反馈缓存到相应的RAM中。图中的BFI和BFII即步骤三中设计的基本蝶形运算单元,蝶形单元的一部分运算结果反馈到上面标有存储容量的RAM中,另一部分沿着唯一的运算通路传递向下一级继续运算。按照图4组合蝶形运算单元和存储资源,并且对蝶形运算单元设置图2得到的优化的字长配置方法就可以实现这种字长优化的流水结构FFT。 
上述步骤仅以256点FFT为例,此方法可以推广到其他点数的FFT上,实现步骤相同。 
虽然结合附图描述了本发明的实施方式,但是对于本领域技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些也应视为属于本发明的保护范围。 

Claims (4)

1.一种流水结构定点FFT字长配置方法,其特征在于:首先按照每级加减法运算按照运算法则产生进位,即字长增加一位,计算一个基22FFT从输入到输出各级运算的字长,以此字长配置方案作为一个待优化方案的模板;然后针对该模板,在保持每一级乘法的运算输入输出的数据字长不变的情况下,按照SQNR要求降低各级加减法运算的字长,确定字长配置方案;最后,根据前面确定的字长配置方案进行FFT算法的硬件实现,设计相应的带有截位器的基本蝶形运算单元,并且按照单路延时反馈的电路结构进行FFT的硬件实现。 
2.如权利要求1所述的一种流水结构定点FFT字长配置方法,其特征在于,建立待优化方案的模板采用以下方法:首先按照基22FFT结构,256点FFT将被分解为4级,每级包含两个加法运算和一个复数乘法运算,对加法运算,输出字长相比于输入字长增加一位;对于复数乘法运算,用1个乘法和1个加法表示,虽然复数乘法中包含加法,由于FFT运算中的旋转因子均为0-1之间的纯小数,所以并不产生进位,因此保持复数乘法的输出字长和输入字长一致;按照上述的加法、乘法进位原则逐级设置字长,即得到待优化方案的模板。 
3.如权利要求1或2所述的一种流水结构定点FFT字长配置方法,其特征在于,确定字长配置方案采用以下方法:对于FFT运算的第1级和第2级,第一个加法运算结果字长相对于输入字长减少1bit,第二个加法运算结果字长相对于输入字长保持不变;对于FFT运算的第3级,将加法运算的输入字长增大以补偿精度,字长变化规律不变。 
4.如权利要求1或2所述的一种流水结构定点FFT字长配置方法,其特征在于,设计的基本蝶形运算单元由蝶形运算模块、截位器、乘法器组成;蝶形运算模块完成FFT运算中每一级的加法运算或减法运算,输入字长为bin,输出字长为bin+1;截位器按照字长配置策略对加减法的输出结果进行截位,即减少加减法运算结果的字长,通过
Figure FDA0000462559490000011
来截去Tibit;其中Ti表示每一级截去的字长位数,乘法器完成复数乘法操作,输入输出字长保持一致,即构成一个基本蝶形运算单元。 
CN201410038044.3A 2014-01-26 2014-01-26 一种流水结构定点fft字长配置方法 Active CN103761074B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410038044.3A CN103761074B (zh) 2014-01-26 2014-01-26 一种流水结构定点fft字长配置方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410038044.3A CN103761074B (zh) 2014-01-26 2014-01-26 一种流水结构定点fft字长配置方法

Publications (2)

Publication Number Publication Date
CN103761074A true CN103761074A (zh) 2014-04-30
CN103761074B CN103761074B (zh) 2016-08-17

Family

ID=50528318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410038044.3A Active CN103761074B (zh) 2014-01-26 2014-01-26 一种流水结构定点fft字长配置方法

Country Status (1)

Country Link
CN (1) CN103761074B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750249A (zh) * 2018-07-24 2020-02-04 华为技术有限公司 一种快速傅里叶变换代码的生成方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700203A (zh) * 2005-06-16 2005-11-23 中国航天时代电子公司第七七一研究所 基2单路深度延时反馈的流水线构成fft处理器的实现方法
US20080071848A1 (en) * 2006-09-14 2008-03-20 Texas Instruments Incorporated In-Place Radix-2 Butterfly Processor and Method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700203A (zh) * 2005-06-16 2005-11-23 中国航天时代电子公司第七七一研究所 基2单路深度延时反馈的流水线构成fft处理器的实现方法
US20080071848A1 (en) * 2006-09-14 2008-03-20 Texas Instruments Incorporated In-Place Radix-2 Butterfly Processor and Method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
何星等: "流水线结构FFT/IFFT处理器的设计与实现", 《微电子学与计算机》, vol. 24, no. 4, 5 April 2007 (2007-04-05), pages 141 - 147 *
王金川等: "基于FPGA的高速基4FFT设计与实现", 《物联网技术》, 15 July 2012 (2012-07-15), pages 38 - 40 *
高振斌等: "可变2n点流水线FFT处理器的设计与实现", 《北京理工大学学报》, vol. 25, no. 3, 30 March 2005 (2005-03-30), pages 268 - 271 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750249A (zh) * 2018-07-24 2020-02-04 华为技术有限公司 一种快速傅里叶变换代码的生成方法及装置
CN110750249B (zh) * 2018-07-24 2021-08-20 华为技术有限公司 一种快速傅里叶变换代码的生成方法及装置

Also Published As

Publication number Publication date
CN103761074B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
WO2019218896A1 (zh) 计算方法以及相关产品
CN108647773B (zh) 一种可重构卷积神经网络的硬件互连系统
CN108647779B (zh) 一种低位宽卷积神经网络可重构计算单元
WO2017092283A1 (zh) 数据累加装置、方法及数字信号处理装置
CN102799563B (zh) 一种可重构计算阵列及构建方法
CN103970718A (zh) 一种快速傅里叶变换实现装置及方法
CN104268122A (zh) 一种可变点数的浮点fft处理器
CN103984560A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN102253919A (zh) 基于gpu和cpu协同运算的并行数值模拟方法和系统
CN103970720A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN103984677A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
Wang et al. A low-latency sparse-winograd accelerator for convolutional neural networks
CN106951394A (zh) 一种可重构定浮点通用fft处理器
CN103544111B (zh) 一种基于实时性处理的混合基fft方法
CN106528490A (zh) 一种fpga异构加速计算装置及系统
Shi et al. Design of parallel acceleration method of convolutional neural network based on fpga
CN112559954B (zh) 基于软件定义可重构处理器的fft算法处理方法及装置
Zong-ling et al. The design of lightweight and multi parallel CNN accelerator based on FPGA
CN103838704A (zh) 一种高吞吐率的fft加速器
CN108647780B (zh) 面向神经网络的可重构池化操作模块结构及其实现方法
CN103761074B (zh) 一种流水结构定点fft字长配置方法
CN110309877B (zh) 一种特征图数据的量化方法、装置、电子设备及存储介质
CN101551790B (zh) 应用于通信领域的快速傅立叶变换实现方法及装置
Yin et al. FPGA-based high-performance CNN accelerator architecture with high DSP utilization and efficient scheduling mode
CN104714773A (zh) 基于plb总线的嵌入式旋转角计算ip软核及旋转角计算方法

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