CN115659109A - 非顺序访问的可配置快速傅里叶运算装置及方法 - Google Patents
非顺序访问的可配置快速傅里叶运算装置及方法 Download PDFInfo
- Publication number
- CN115659109A CN115659109A CN202211706291.7A CN202211706291A CN115659109A CN 115659109 A CN115659109 A CN 115659109A CN 202211706291 A CN202211706291 A CN 202211706291A CN 115659109 A CN115659109 A CN 115659109A
- Authority
- CN
- China
- Prior art keywords
- data
- stage
- fast fourier
- unit
- butterfly
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Complex Calculations (AREA)
Abstract
本申请涉及非顺序访问的可配置快速傅里叶运算装置及方法,装置包括数据频率抽取器,用于采用基于二分法的频率抽取方式对存储在ROM中的待处理数据进行抽取;抽取中单次抽取4个离散点为一组数据。快速傅里叶运算模块,用于根据旋转因子索引获取旋转因子并对数据频率抽取器抽取的待处理数据进行蝶形运算处理;蝶形运算中对一组数据选用2个相邻的基2蝶形单元进行运算且单次进行一级快速傅里叶运算处理。选通控制模块,用于根据数据频率抽取器使用的输入点数模式选择快速傅里叶运算模块末级运算的数据的输入路径。达到了有效兼顾灵活性与吞吐量的目的。
Description
技术领域
本发明属于数据处理电子电路技术领域,涉及一种非顺序访问的可配置快速傅里叶运算装置及方法。
背景技术
快速傅里叶变换(FFT)在数字信号处理中占据核心地位。随着高性能FFT需求的增长,数字信号处理器DSP的计算能力需求越来越高。因此,高精度、低延时和可配置的FFT运算装置是高性能加速器领域的研究热点。FFT运算装置中的FFT算法一般采用基-2FFT算法或基-4FFT算法,其中,基-2碟形运算将离散采样信号分解为若干个2点蝶形单元,单次进行1级FFT运算,由1个复数乘法和2个复数加法组成;而基-4碟形运算则是将离散采样信号分解为若干个4点蝶形单元,单次进行连续2级FFT运算,由3个复数乘法和8个复数加法组成。
基-2FFT算法的电路实现结构简单,实现难度相对较低,但运算时间长,硬件消耗较大。基-4FFT算法相对处理速度更快,可以更好的满足实时性的要求,但算法的电路实现结构相对复杂,灵活性更差,不能完成2的奇数次幂的运算。然而,在实现本发明的过程中,发明人发现一些研究者后来还提出了混合基算法,可以达到更高的运算速度,但是对于FFT运算点数是不固定的情况,无法同时适用不同点数的FFT变换要求且混合基算法会加大控制模块的处理难度,存在着无法兼顾灵活性与吞吐量的技术问题。
发明内容
针对上述传统方法中存在的问题,本发明提出了一种非顺序访问的可配置快速傅里叶运算装置以及一种非顺序访问的可配置快速傅里叶运算方法。
为了实现上述目的,本发明实施例采用以下技术方案:
一方面,提供一种非顺序访问的可配置快速傅里叶运算装置,包括:
数据频率抽取器,用于采用基于二分法的频率抽取方式对存储在ROM中的待处理数据进行抽取;抽取中单次抽取4个离散点为一组数据;
快速傅里叶运算模块,用于根据旋转因子索引获取旋转因子并对数据频率抽取器抽取的待处理数据进行蝶形运算处理;蝶形运算中对一组数据选用2个相邻的基2蝶形单元进行运算且单次进行一级快速傅里叶运算处理;
选通控制模块,用于根据数据频率抽取器使用的输入点数模式选择快速傅里叶运算模块末级运算的数据的输入路径。
在其中一个实施例中,快速傅里叶运算模块的首级单元包括初始化模块、旋转因子存储模块、旋转因子索引模块和蝶形运算单元;蝶形运算单元采用基2蝶形单元构成;
初始化模块用于对首级单元进行初始化,生成首级单元执行运算时所需的全部旋转因子的实部数据与虚部数据,旋转因子存储模块用于存储旋转因子的实部数据与虚部数据,旋转因子索引模块用于根据快速傅里叶运算级数将首级单元执行运算时所需的全部旋转因子索引传输至蝶形运算单元,蝶形运算单元用于根据旋转因子索引从旋转因子存储模块中获取旋转因子后,对输入的待处理数据进行蝶形运算与截位后输出。
在其中一个实施例中,快速傅里叶运算模块的中间级单元包括初始化模块、旋转因子存储模块、延迟计数器、旋转因子索引模块、运算寄存器、临时寄存器和蝶形运算单元;蝶形运算单元采用基2蝶形单元构成,中间级单元包括2至9级;
初始化模块用于对中间级单元进行初始化,生成本级单元执行运算时所需的全部旋转因子的实部数据与虚部数据,旋转因子存储模块用于存储旋转因子的实部数据与虚部数据,旋转因子索引模块用于根据快速傅里叶运算级数将本级单元执行运算时所需的全部旋转因子索引传输至蝶形运算单元,蝶形运算单元用于根据旋转因子索引从旋转因子存储模块中获取旋转因子后,对输入本级单元的数据进行蝶形运算与截位后输出;
临时寄存器用于存储前级单元执行快速傅里叶运算的前级输出数据;前级数据为本级单元的部分输入数据;运算寄存器用于存储前级输出数据以及经前级单元计算完成后的其余输入数据,延迟计数器用于分别指示本级单元的各旋转因子索引每2m-1个时钟周期进行一次更新;m为中间级单元的单元级数。
在其中一个实施例中,快速傅里叶运算模块的末级单元包括初始化模块和蝶形运算单元;蝶形运算单元采用基2蝶形单元构成;
初始化模块用于对中间级单元进行初始化,蝶形运算单元用于对输入的数据进行蝶形运算后输出。
另一方面,还提供一种非顺序访问的可配置快速傅里叶运算方法,应用于上述的非顺序访问的可配置快速傅里叶运算装置,该方法包括:
通过数据频率抽取器采用基于二分法的频率抽取方式对存储在ROM中的待处理数据进行抽取;
根据抽取的待处理数据的点数计算得到快速傅里叶运算级数S;
根据抽取的待处理数据的点数生成第m级快速傅里叶运算所需的旋转因子;其中,m=1,2,…,S-1;
采用基于二分法的频率抽取方式对第m级的旋转因子进行抽取;
利用抽取的第m级的旋转因子对输入至第m级的数据进行快速傅里叶运算;
完成第S-1级的快速傅里叶运算后,使用选通控制模块将第S-1级的运算输出数据顺序输入末级进行快速傅里叶运算,得到输出结果。
在其中一个实施例中,抽取的待处理数据的点数为1024、512、256、128、64、32和/或16。
在其中一个实施例中,采用基于二分法的频率抽取方式对第m级的旋转因子进行抽取的步骤,包括:
根据第m级快速傅里叶运算顺序,生成旋转因子索引。
在其中一个实施例中,采用基于二分法的频率抽取方式对第m级的旋转因子进行抽取的步骤,还包括:
对生成的旋转因子索引进行倒序操作,得到更新后的旋转因子索引。
在其中一个实施例中,第1级的快速傅里叶运算为无延时直接启动。
在其中一个实施例中,第m级的快速傅里叶运算启动后,第m+1级的快速傅里叶运算延时2m-1+1拍后启动。
上述技术方案中的一个技术方案具有如下优点和有益效果:
上述非顺序访问的可配置快速傅里叶运算装置及方法,通过数据频率抽取器、快速傅里叶运算模块和选通控制模块的数据处理结构,数据频率抽取器根据二分法的频率抽取方式对待处理的离散采样信号进行抽取,单次抽取4个数据分别用于进行2个蝶形运算。快速傅里叶运算模块则根据旋转因子索引取出运算所需旋转因子,对抽取的数据执行蝶形运算。由于数据频率抽取器单次抽取4个离散点为一组数据,蝶形运算中对一组数据选用2个相邻的基2蝶形单元进行运算且单次进行一级快速傅里叶运算处理,因此在快速傅里叶运算模块中上级输出数据传输到下级后,下级可根据蝶形运算所需的额外旋转因子索引的需求,反馈至数据频率抽取器,等待剩余数据到达下级后,开始下级的蝶形运算,依此逐级向下,可使快速傅里叶运算模块中每级快速傅里叶运算提前启动,而选通控制模块则根据数据频率抽取器使用的不同点数模式为快速傅里叶运算模块的末级选择合适的运算路径输入数据,实现快速傅里叶运算处理速度的有效提升。
与传统技术相比,上述方案采用了新型的基于二分法的频率抽取方式实现数据抽取与运算的流水线运算结构,压缩了数据运算处理所需的时钟周期并尽可能降低了物理实现所需的硬件资源。兼有基-2FFT算法的高灵活度和基-4FFT算法的高数据吞吐量的优点,达到了有效兼顾灵活性与吞吐量的目的,提升了处理芯片的数据处理性能。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中非顺序访问的可配置快速傅里叶运算装置的模块框图;
图2为一个实施例中非顺序访问的可配置快速傅里叶运算装置的内部结构示意图;
图3为一个实施例中非顺序访问的可配置快速傅里叶运算方法的流程示意图;
图4为一个实施例中基-2FFT频域抽取信号流图(以16点为例)的示意图;
图5为一个实施例中非顺序访问的可配置快速傅里叶运算的工作流程示意图;
图6为一个实施例中基于二分法的频率抽取方式的处理过程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
需要说明的是,在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。
本领域技术人员可以理解,本文所描述的实施例可以与其它实施例相结合。在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件并与之结合为一体,或者可能同时存在居中元件。
下面将结合本发明实施例图中的附图,对本发明实施方式进行详细说明。
在一个实施例中,如图1所示,本申请实施例提供了一种非顺序访问的可配置快速傅里叶运算装置,包括数据频率抽取器11、快速傅里叶运算模块13和选通控制模块15。数据频率抽取器11用于采用基于二分法的频率抽取方式对存储在ROM中的待处理数据进行抽取;抽取中单次抽取4个离散点为一组数据。快速傅里叶运算模块13用于根据旋转因子索引获取旋转因子并对数据频率抽取器11抽取的待处理数据进行蝶形运算处理;蝶形运算中对一组数据选用2个相邻的基2蝶形单元进行运算且单次进行一级快速傅里叶运算处理。选通控制模块15用于根据数据频率抽取器11使用的输入点数模式选择快速傅里叶运算模块13末级运算的数据的输入路径。
上述非顺序访问的可配置快速傅里叶运算装置,通过数据频率抽取器11、快速傅里叶运算模块13和选通控制模块15的数据处理结构,数据频率抽取器11根据二分法的频率抽取方式对待处理的离散采样信号进行抽取,单次抽取4个数据分别用于进行2个蝶形运算。快速傅里叶运算模块13则根据旋转因子索引取出运算所需旋转因子,对抽取的数据执行蝶形运算。由于数据频率抽取器11单次抽取4个离散点为一组数据,蝶形运算中对一组数据选用2个相邻的基2蝶形单元进行运算且单次进行一级快速傅里叶运算处理,因此在快速傅里叶运算模块13中上级输出数据传输到下级后,下级可根据蝶形运算所需的额外旋转因子索引的需求,反馈至数据频率抽取器11,等待剩余数据到达下级后,开始下级的蝶形运算,依此逐级向下,可使快速傅里叶运算模块13中每级快速傅里叶运算提前启动,而选通控制模块15则根据数据频率抽取器11使用的不同点数模式为快速傅里叶运算模块13末级选择合适的运算路径输入数据,实现快速傅里叶运算处理速度的有效提升。
与传统技术相比,上述方案采用了新型的基于二分法的频率抽取方式实现数据抽取与运算的流水线运算结构,压缩了数据运算处理所需的时钟周期并尽可能降低了物理实现所需的硬件资源。兼有基-2FFT算法的高灵活度和基-4FFT算法的高数据吞吐量的优点,达到了有效兼顾灵活性与吞吐量的目的,提升了处理芯片的数据处理性能。
可以理解,上述非顺序访问的可配置快速傅里叶运算装置的结构框图如图1所示,数据频率抽取器11、快速傅里叶运算模块13和选通控制模块15均可以采用本领域相关数据处理芯片内的底层电路来进行物理实现,只要能够组织提供各模块所需实现的数据处理功能即可。其中,快速傅里叶运算模块13也即FFT运算模块,可以包括多级FFT运算模块,具体级数可以根据具体应用场景的设计需要确定。每一级FFT运算模块均采用本领域中基-2FFT算法实现,不同的是:通过数据频率抽取器11采用基于二分法的频率抽取方式进行数据点的抽取,作为基-2FFT算法的改进,单次抽取4个离散点(即离散采样信号点)为一组分别进行2个蝶形运算;与基-4FFT算法最大的不同在于一组蝶形运算的4个离散点选用2个相邻的基-2蝶形单元进行处理,并且单次仅进行一级FFT运算。
具体的,例如每个离散点都是具有24位实部和虚部的复数。对K点采样模式,第1次运算取点索引为0,1,K/2,K/2+1;第2次运算取点索引为K/4,K/4+1,3*K/4,3*K/4+1;第3次运算取点索引为K/8,K/8+1,5*K/8,5*K/8+1;……;第K/4-1次运算取点索引为K/4-2,K/4-1,3*K/4-2,3*K/4-1;第K/4次运算取点索引为K/2-2,K/2-1,K-2,K-1。其中,基于二分法的频率抽取方式具体可以根据现有的二分法原理同理理解。选通控制模块15用于根据采样点数K计算FFT运算级数,选择合适的运算路径输出数据至快速傅里叶运算模块13的末级进行运算输出。
在一个实施例中,如图2所示,进一步的,快速傅里叶运算模块13的首级单元包括初始化模块、旋转因子存储模块、旋转因子索引模块和蝶形运算单元。蝶形运算单元采用基2蝶形单元构成。初始化模块用于对首级单元进行初始化,生成首级单元执行运算时所需的全部旋转因子的实部数据与虚部数据。旋转因子存储模块用于存储旋转因子的实部数据与虚部数据。旋转因子索引模块用于根据快速傅里叶运算级数将首级单元执行运算时所需的全部旋转因子索引传输至蝶形运算单元。蝶形运算单元用于根据旋转因子索引从旋转因子存储模块中获取旋转因子后,对输入的待处理数据进行蝶形运算与截位后输出。
可以理解,为方便描述和理解,图2中未示出各级单元的初始化模块,该初始化模块的物理实现可以根据本领域中传统的FFT运算单元的初始化功能模块同理理解,只要能够用于实现各级单元的初始化设置功能即可。
具体的,首级单元也称第1级FFT运算单元,由初始化模块、旋转因子存储模块、旋转因子索引和蝶形运算单元组成,其运行流程可以如下:1)初始化模块对本级进行初始化,生成本级运算所需的全部旋转因子的实部与虚部数据,存储到旋转因子存储模块。2)数据输入时,旋转因子索引模块根据FFT运算级数S,将当前级的蝶形运算所需的旋转因子索引传输给蝶形运算单元。3)蝶形运算单元根据旋转因子索引提取对应的旋转因子后对输入的数据进行蝶形运算,截位后输出,完成第1级FFT运算输出的处理。
在一个实施例中,进一步的,如图2所示,快速傅里叶运算模块13的中间级单元包括初始化模块、旋转因子存储模块、延迟计数器、旋转因子索引模块、运算寄存器、临时寄存器和蝶形运算单元。蝶形运算单元采用基2蝶形单元构成,中间级单元包括2至9级。初始化模块用于对中间级单元进行初始化,生成本级单元执行运算时所需的全部旋转因子的实部数据与虚部数据。旋转因子存储模块用于存储旋转因子的实部数据与虚部数据。旋转因子索引模块用于根据快速傅里叶运算级数将本级单元执行运算时所需的全部旋转因子索引传输至蝶形运算单元。蝶形运算单元用于根据旋转因子索引从旋转因子存储模块中获取旋转因子后,对输入本级单元的数据进行蝶形运算与截位后输出。
临时寄存器用于存储前级单元执行快速傅里叶运算的前级输出数据;前级数据为本级单元的部分输入数据。运算寄存器用于存储前级输出数据以及经前级单元计算完成后的其余输入数据,延迟计数器用于分别指示本级单元的各旋转因子索引每2m-1个时钟周期进行一次更新;m为中间级单元的单元级数。
可以理解,中间级单元也即快速傅里叶运算模块13中除了首级单元以及最终运算输出数据的末级单元之外的中间各级FFT运算单元。在本实施例中,中间级单元的数量共设有8级,也即第2级至第9级FFT运算单元,各级FFT运算单元的内部结构均为基2蝶形单元构成。在各中间级单元中,本级单元可以表示为第m级FFT运算单元,则前级单元可以表示为第m-1级FFT运算单元,后级单元可以表示为第m+1级FFT运算单元。
具体的,第2级FFT运算单元到第9级FFT运算单元中,每一个中间级单元均由初始化模块、旋转因子存储模块、延迟计数器、旋转因子索引模块、运算寄存器、临时寄存器和蝶形运算单元组成,各级的运行流程均可以如下:
1)初始化模块对本级进行初始化,生成本级运算所需的全部旋转因子的实部与虚部数据,存储到本级的旋转因子存储模块。
3)当第m级FFT运算所需剩余的输入数据经第m-1级计算完成后,随临时寄存器中的数据共同覆盖到2m-1组存放4个数据的寄存器(称为运算寄存器)中。
4)对于第m级FFT运算,共需要N/2m个不同的旋转因子,每个旋转因子供2m-1个蝶形单元执行运算时使用,因此设计了2m-1个时钟周期循环的延迟计数器,令旋转因子索引l m每2m-1个时钟周期更新一次。
5)根据FFT运算级数S,将当前级数蝶形运算所需的旋转因子索引传输给蝶形运算单元,使蝶形运算单元根据旋转因子索引提取相应的旋转因子对输入本级的数据进行蝶形运算处理,在此期间延迟计数器介入,以更新旋转因子索引。
6)进行蝶形运算,截位后输出。高效完成各中间级单元的快速傅里叶运算输出。
在一个实施例中,如图2所示,进一步的,快速傅里叶运算模块13的末级单元包括初始化模块和蝶形运算单元。蝶形运算单元采用基2蝶形单元构成。初始化模块用于对中间级单元进行初始化,蝶形运算单元用于对输入的数据进行蝶形运算后输出。
可以理解,在本实施例中,快速傅里叶运算模块13采用10级FFT运算单元的结构设计,末级单元也称第10级FFT运算单元,由初始化模块和蝶形运算单元组成,其运算处理流程可以如下:1)初始化模块对本级进行初始化。2)当选通控制模块15选通前一级的输出数据传入时,通过蝶形运算单元进行蝶形运算并输出数据,从而最终完成FFT运算输出。
在一个实施例中,如图3所示,还提供一种非顺序访问的可配置快速傅里叶运算方法,可以应用于上述的非顺序访问的可配置快速傅里叶运算装置,该方法可以包括如下数据处理步骤S12至S22:
S12,通过数据频率抽取器11采用基于二分法的频率抽取方式对存储在ROM中的待处理数据进行抽取;
S14,根据抽取的待处理数据的点数计算得到快速傅里叶运算级数S;
S16,根据抽取的待处理数据的点数生成第m级快速傅里叶运算所需的旋转因子;其中,m=1,2,…,S-1;
S18,采用基于二分法的频率抽取方式对第m级的旋转因子进行抽取;
S20,利用抽取的第m级的旋转因子对输入至第m级的数据进行快速傅里叶运算;
S22,完成第S-1级的快速傅里叶运算后,使用选通控制模块15将第S-1级的运算输出数据顺序输入末级进行快速傅里叶运算,得到输出结果。
可以理解,关于本实施中的非顺序访问的可配置快速傅里叶运算装置的解释说明,可以参照上述非顺序访问的可配置快速傅里叶运算装置各实施例中的相应解释说明同理理解,在此不再赘述。其中,第S-1级运算输出数据是输出到末级进行快速傅里叶运算的,即对于第S-1级的下一级第S级快速傅里叶运算而言,无论第S级为第几级,第S-1级运算之后都是在末级快速傅里叶运算模块中进行运算的。
上述非顺序访问的可配置快速傅里叶运算方法,通过数据频率抽取器、快速傅里叶运算模块和选通控制模块的数据处理结构,数据频率抽取器根据二分法的频率抽取方式对待处理的离散采样信号进行抽取,单次抽取4个数据分别用于进行2个蝶形运算。快速傅里叶运算模块则根据旋转因子索引取出运算所需旋转因子,对抽取的数据执行蝶形运算。由于数据频率抽取器单次抽取4个离散点为一组数据,蝶形运算中对一组数据选用2个相邻的基2蝶形单元进行运算且单次进行一级快速傅里叶运算处理,因此在快速傅里叶运算模块中上级输出数据传输到下级后,下级可根据蝶形运算所需的额外旋转因子索引的需求,反馈至数据频率抽取器,等待剩余数据到达下级后,开始下级的蝶形运算,依此逐级向下,可使快速傅里叶运算模块中每级快速傅里叶运算提前启动,而选通控制模块则根据数据频率抽取器使用的不同点数模式为快速傅里叶运算模块的末级选择合适的运算路径输入数据,实现快速傅里叶运算处理速度的有效提升。
与传统技术相比,上述方案采用了新型的基于二分法的频率抽取方式实现数据抽取与运算的流水线运算结构,压缩了数据运算处理所需的时钟周期并尽可能降低了物理实现所需的硬件资源。兼有基-2FFT算法的高灵活度和基-4FFT算法的高数据吞吐量的优点,达到了有效兼顾灵活性与吞吐量的目的,提升了处理芯片的数据处理性能。
在一个实施例中,进一步的,抽取的待处理数据的点数为1024、512、256、128、64、32和/或16。可以理解,本实施例中非顺序访问的可配置快速傅里叶运算装置的设计可以支持K=1024,512,256,128,64,32,16等7种采样点数模式的FFT运算处理,可根据不同的实际应用场景的需要进行配置,适应性较强。如图4和图5所示,上述非顺序访问的可配置快速傅里叶运算方法具体可以如下工作流程所示:
(1)采用基于二分法的频率抽取方式对数据进行抽取。
对于K点采样,通过所述数据频率抽取器对存储在ROM中的K点数据进行抽取,单次取4个离散点为一组,如图6所示。
(2)计算FFT运算级数S:
(3)生成第m级(m=1,2,…,S-1)FFT运算所需的旋转因子,生成公式为:
(4)基于二分法的频率抽取方式对第m级(m=1,2,…,S-1)旋转因子进行抽取。进一步的,关于上述的步骤S18,其中可以包括如下处理过程:
根据第m级快速傅里叶运算顺序,生成旋转因子索引。
具体的,根据第m级FFT运算顺序,生成旋转因子地址索引,具体的,对生成的旋转
因子索引进行倒序操作,得到更新后的旋转因子索引:从0至顺序计数,对
其二进制编码得到索引l,对索引l进行倒序操作,得到新的索引l m,l m会随蝶形运算过程更
新。。
(5)进行第m级FFT运算。(m=1,2,…,S-1)。进一步的,第1级的快速傅里叶运算为无延时直接启动。第m级FFT运算的第一组4个输出数据传输到第m+1级,作为第m+1级FFT运算的部分数据。第m+1级FFT运算在等待第m级FFT运算输出的另外4个数据到达后启动。因此,进一步的,第m级的快速傅里叶运算启动后,第m+1级的快速傅里叶运算延时2m-1+1拍后启动:第m级启动后,需延时2m-1+1拍,第m+1级启动。由于数据包含实部和虚部,4个数据一共对应有8个乘法公式,分别为:
re1=Re1+Re3
im1=Im1+Im3
re2=Re2+Re4
im2=Im2+Im4
re3=(Re1-Re3)*WnR[2*l m*num]-(Im1-Im3)*WnI[2*l m*num]
im3=(Re1-Re3)*WnI[2*l m*num]+(Im1-Im3)*WnR[2*l m*num]
re4=(Re2-Re4)*WnR[(2*l m+1)*num]-(Im2-Im4)*WnI[(2*l m+1)*num]
im4=(Re2-Re4)*WnI[(2*l m+1)*num]+(Im2-Im4)*WnR[(2*l m+1)*num]
其中,Re与Im分别为输入数据的实部与虚部,re和im分别为输出数据的实部与虚部,l m为步骤(4)输出的旋转因子索引,num为旋转因子索引放大倍数,计算公式为:num=210 -S 。
(6)进行第S级FFT运算。
需要说明的是,本示例中,FFT运算模块共包括10级,末级FFT运算模块即为第10级FFT运算模块。第S级运算都是在第10级FFT运算模块进行的。将第S级的FFT运算放到第10级FFT运算模块中进行,这个运算位置选择的操作则可以通过选通控制模块实现。如图2所示,第S级FFT运算输入为顺序输入且无延迟,在完成第S-1级蝶形运算后,使用选通控制模块将数据直接输入到第10级FFT运算模块进行运算。第10级FFT运算所需的旋转因子值均为1,因此无需存放旋转因子,计算公式分别为:
re1=Re1+Re2
im1=Im1+Im2
re2=Re1-Re2
im2=Im1-Im2
re3=Re3+Re4
im3=Im3+Im4
re4=Re3-Re4
im4=Im3-Im4
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可做出若干变形和改进,都属于本申请保护范围。因此本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种非顺序访问的可配置快速傅里叶运算装置,其特征在于,包括:
数据频率抽取器,用于采用基于二分法的频率抽取方式对存储在ROM中的待处理数据进行抽取;所述抽取中单次抽取4个离散点为一组数据;
快速傅里叶运算模块,用于根据旋转因子索引获取旋转因子并对所述数据频率抽取器抽取的待处理数据进行蝶形运算处理;所述蝶形运算中对一组数据选用2个相邻的基2蝶形单元进行运算且单次进行一级快速傅里叶运算处理;
选通控制模块,用于根据所述数据频率抽取器使用的输入点数模式选择所述快速傅里叶运算模块末级运算的数据的输入路径。
2.根据权利要求1所述的非顺序访问的可配置快速傅里叶运算装置,其特征在于,所述快速傅里叶运算模块的首级单元包括初始化模块、旋转因子存储模块、旋转因子索引模块和蝶形运算单元;所述蝶形运算单元采用基2蝶形单元构成;
所述初始化模块用于对所述首级单元进行初始化,生成所述首级单元执行运算时所需的全部旋转因子的实部数据与虚部数据,所述旋转因子存储模块用于存储所述旋转因子的实部数据与虚部数据,所述旋转因子索引模块用于根据快速傅里叶运算级数将所述首级单元执行运算时所需的全部旋转因子索引传输至所述蝶形运算单元,所述蝶形运算单元用于根据所述旋转因子索引从所述旋转因子存储模块中获取所述旋转因子后,对输入的所述待处理数据进行蝶形运算与截位后输出。
3.根据权利要求1所述的非顺序访问的可配置快速傅里叶运算装置,其特征在于,所述快速傅里叶运算模块的中间级单元包括初始化模块、旋转因子存储模块、延迟计数器、旋转因子索引模块、运算寄存器、临时寄存器和蝶形运算单元;所述蝶形运算单元采用基2蝶形单元构成,所述中间级单元包括2至9级;
所述初始化模块用于对所述中间级单元进行初始化,生成本级单元执行运算时所需的全部旋转因子的实部数据与虚部数据,所述旋转因子存储模块用于存储所述旋转因子的实部数据与虚部数据,所述旋转因子索引模块用于根据快速傅里叶运算级数将本级单元执行运算时所需的全部旋转因子索引传输至所述蝶形运算单元,所述蝶形运算单元用于根据所述旋转因子索引从所述旋转因子存储模块中获取所述旋转因子后,对输入本级单元的数据进行蝶形运算与截位后输出;
所述临时寄存器用于存储前级单元执行快速傅里叶运算的前级输出数据;所述前级数据为本级单元的部分输入数据;所述运算寄存器用于存储所述前级输出数据以及经前级单元计算完成后的其余输入数据,所述延迟计数器用于分别指示本级单元的各旋转因子索引每2m-1个时钟周期进行一次更新;m为所述中间级单元的单元级数。
4.根据权利要求3所述的非顺序访问的可配置快速傅里叶运算装置,其特征在于,所述快速傅里叶运算模块的末级单元包括初始化模块和蝶形运算单元;所述蝶形运算单元采用基2蝶形单元构成;
所述初始化模块用于对所述中间级单元进行初始化,所述蝶形运算单元用于对输入的数据进行蝶形运算后输出。
5.一种非顺序访问的可配置快速傅里叶运算方法,应用于权利要求1至4任一项所述的非顺序访问的可配置快速傅里叶运算装置,其特征在于,所述方法包括:
通过数据频率抽取器采用基于二分法的频率抽取方式对存储在ROM中的待处理数据进行抽取;
根据抽取的所述待处理数据的点数计算得到快速傅里叶运算级数S;
根据抽取的所述待处理数据的点数生成第m级快速傅里叶运算所需的旋转因子;其中,m=1,2,…,S-1;
采用基于二分法的频率抽取方式对所述第m级的旋转因子进行抽取;
利用抽取的所述第m级的旋转因子对输入至所述第m级的数据进行快速傅里叶运算;
完成第S-1级的快速傅里叶运算后,使用选通控制模块将第S-1级的运算输出数据顺序输入末级进行快速傅里叶运算,得到输出结果。
6.根据权利要求5所述的非顺序访问的可配置快速傅里叶运算方法,其特征在于,抽取的所述待处理数据的点数为1024、512、256、128、64、32和/或16。
7.根据权利要求5所述的非顺序访问的可配置快速傅里叶运算方法,其特征在于,采用基于二分法的频率抽取方式对所述第m级的旋转因子进行抽取的步骤,包括:
根据第m级快速傅里叶运算顺序,生成旋转因子索引。
8.根据权利要求7所述的非顺序访问的可配置快速傅里叶运算方法,其特征在于,采用基于二分法的频率抽取方式对所述第m级的旋转因子进行抽取的步骤,还包括:
对生成的所述旋转因子索引进行倒序操作,得到更新后的旋转因子索引。
9.根据权利要求5至8任一项所述的非顺序访问的可配置快速傅里叶运算方法,其特征在于,第1级的快速傅里叶运算为无延时直接启动。
10.根据权利要求9所述的非顺序访问的可配置快速傅里叶运算方法,其特征在于,第m级的快速傅里叶运算启动后,第m+1级的快速傅里叶运算延时2m-1+1拍后启动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211706291.7A CN115659109B (zh) | 2022-12-29 | 2022-12-29 | 非顺序访问的可配置快速傅里叶运算装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211706291.7A CN115659109B (zh) | 2022-12-29 | 2022-12-29 | 非顺序访问的可配置快速傅里叶运算装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115659109A true CN115659109A (zh) | 2023-01-31 |
CN115659109B CN115659109B (zh) | 2023-04-07 |
Family
ID=85022670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211706291.7A Active CN115659109B (zh) | 2022-12-29 | 2022-12-29 | 非顺序访问的可配置快速傅里叶运算装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115659109B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060133470A1 (en) * | 2004-11-16 | 2006-06-22 | Raz Gil M | Method and system of nonlinear signal processing |
US20120020201A1 (en) * | 2009-04-13 | 2012-01-26 | Zte Corporation | Device and method for fast fourier transform |
CN106227698A (zh) * | 2016-07-26 | 2016-12-14 | 中国科学院自动化研究所 | 混合基dft/idft蝶形因子存储及读取方法和系统 |
CN109255428A (zh) * | 2018-09-30 | 2019-01-22 | 兰州理工大学 | 一种基于快速傅里叶变换的新型智能优化算法 |
CN109522674A (zh) * | 2018-12-05 | 2019-03-26 | 天津大学 | 基2-2算法的快速傅里叶变换硬件设计方法 |
CN115525244A (zh) * | 2022-09-29 | 2022-12-27 | 中国星网网络应用有限公司 | 一种fft硬件加速器和数据处理方法 |
-
2022
- 2022-12-29 CN CN202211706291.7A patent/CN115659109B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060133470A1 (en) * | 2004-11-16 | 2006-06-22 | Raz Gil M | Method and system of nonlinear signal processing |
US20120020201A1 (en) * | 2009-04-13 | 2012-01-26 | Zte Corporation | Device and method for fast fourier transform |
CN106227698A (zh) * | 2016-07-26 | 2016-12-14 | 中国科学院自动化研究所 | 混合基dft/idft蝶形因子存储及读取方法和系统 |
CN109255428A (zh) * | 2018-09-30 | 2019-01-22 | 兰州理工大学 | 一种基于快速傅里叶变换的新型智能优化算法 |
CN109522674A (zh) * | 2018-12-05 | 2019-03-26 | 天津大学 | 基2-2算法的快速傅里叶变换硬件设计方法 |
CN115525244A (zh) * | 2022-09-29 | 2022-12-27 | 中国星网网络应用有限公司 | 一种fft硬件加速器和数据处理方法 |
Non-Patent Citations (1)
Title |
---|
梁煜 等: ""一种基于串行蝶形单元的快速傅里叶变换硬件设计"" * |
Also Published As
Publication number | Publication date |
---|---|
CN115659109B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
He et al. | A new approach to pipeline FFT processor | |
Chang | An efficient VLSI architecture for normal I/O order pipeline FFT design | |
Cheng et al. | High-throughput VLSI architecture for FFT computation | |
WO1997019412A1 (en) | Improvements in or relating to real-time pipeline fast fourier transform processors | |
EP0254844A2 (en) | Digital pipelined heterodyne circuit | |
CN109522674A (zh) | 基2-2算法的快速傅里叶变换硬件设计方法 | |
CN108021781A (zh) | 一种可参数化的fft ip核设计和优化方法 | |
US7634524B2 (en) | Arithmetic method and function arithmetic circuit for a fast fourier transform | |
CN112231626A (zh) | 一种fft处理器 | |
Ayinala et al. | Parallel-pipelined radix-2 2 FFT architecture for real valued signals | |
CN115659109B (zh) | 非顺序访问的可配置快速傅里叶运算装置及方法 | |
Abbas et al. | An FPGA implementation and performance analysis between Radix-2 and Radix-4 of 4096 point FFT | |
Jang et al. | Area-efficient scheduling scheme based FFT processor for various OFDM systems | |
EP1076296A2 (en) | Data storage for fast fourier transforms | |
WO2001078290A2 (en) | Traced fast fourier transform apparatus and method | |
CN105975436A (zh) | 一种SoC系统中通用可配置加速单元的IP电路 | |
Mamatha et al. | Systolic architecture implementation of 1D DFT and 1D DCT | |
JP2848134B2 (ja) | 可変高速フーリエ変換回路 | |
Cui-xiang et al. | Some new parallel fast Fourier transform algorithms | |
Kim et al. | New parallel MDC FFT processor with efiicient scheduling scheme | |
EP2038768A2 (en) | Optimized multi-mode dft implementation | |
CN113901389A (zh) | 一种信号处理方法、装置、电子设备及可读存储介质 | |
Ajmal et al. | FPGA based area optimized parallel pipelined radix-2 2 feed forward FFT architecture | |
Mookherjee et al. | Hardware implementation of the Hirschman optimal transform | |
Lai et al. | High-performance RDFT design for applications of digital radio mondiale |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |