一种基于FPGA的优化FFT算法和装置制造方法及图纸

技术编号:22330305 阅读:117 留言:0更新日期:2019-10-19 12:18
本发明专利技术公开一种基于FPGA的优化FFT算法和装置,涉及集成电路数字信号处理技术领域。方法包括:响应于外部输入有待分析数据,存储相应数据;按照预设的读取规则读取已存储的待分析数据;对待分析数据进行预处理;基于预处理后的待分析数据以及预设的旋转因子进行基2‑FFT的前两级蝶形计算;基于基2‑FFT的前两级蝶形计算结果进行基2‑FFT前两级之后的其它级蝶形计算,计算结果即为所述优化FFT算法的计算结果。本发明专利技术利用蝶形运算的前两级旋转因子取值有限的特性,通过预设旋转因子对传统的基2‑FFT算法进行简化,从而实现可由输入序列快速得到前两级蝶形运算的结果,且本发明专利技术能够适用于任何2

【技术实现步骤摘要】
一种基于FPGA的优化FFT算法和装置
本专利技术涉及集成电路数字信号处理
,特别是一种基于FPGA的优化FFT算法和装置。
技术介绍
为了更好的对信号进行分析,工程师们常常会使用傅里叶变换将复杂无序的信号分解为一定频率的正弦信号和余弦信号的叠加,然后从已知的正弦信号和余弦信号的特性出发,分析出原来信号的某些特性。由于直接进行离散傅里叶变换(DFT)的计算复杂度太高,所以通常会选择使用计算复杂度较低的快速傅里叶变换(FFT)。传统的快速傅里叶变换(FastFourierTransformation,简称FFT)相对DFT算法在很大程度上优化了信号处理时的计算复杂度,但仍存在以下问题:传统的基2-FFT算法由多级蝶形运算构成,而每完成一次蝶形运算都需要进行1次复数乘法和2次复数加法,这对于资源有限的FPGA来说无疑会浪费巨大的资源;传统的基2-FFT算法在信号采样点数较多时,其蝶形运算的级数也会增加较多。在宇宙空间中存在着许多高能粒子,这些高能粒子的打击极容易使航天器中FPGA的功能发生错误。在该辐射环境中,为了降低高能粒子对电路的影响,需要尽可能的对FFT电路在面积和速度方面进行优化。而传统的基2-FFT算法电路倘若被高能粒子击中,中间电路的故障极有可能被传播到输出上。
技术实现思路
本专利技术的目的是,提供一种基于FPGA的优化FFT算法和装置,可对传统基2-FFT算法进行加速、降低资源消耗并提高可靠性。本专利技术采取的技术方案为:一种基于FPGA的优化FFT算法,包括:响应于外部输入有待分析数据,存储相应数据;按照预设的读取规则读取已存储的待分析数据;对待分析数据进行预处理;基于预处理后的待分析数据以及预设的旋转因子进行基2-FFT的前两级蝶形计算;基于基2-FFT的前两级蝶形计算结果进行基2-FFT前两级之后的其它级蝶形计算,计算结果即为所述优化FFT算法的计算结果。本专利技术利用蝶形运算的前两级旋转因子取值有限的特性,通过预设旋转因子对传统的基2-FFT算法进行简化,从而实现可由输入序列快速得到前两级蝶形运算的结果,且本专利技术能够适用于任何2N(N≥2)点FFT运算,实现算法的有效加速,进而可降低高能粒子对FFT电路的影响。优选的,响应于外部输入有待分析数据,将外部输入的待分析数据的实部和虚部分别存储。可存储至数据ROM。优选的,所述预设的读取规则为:响应于外部读取启动信号,利用时钟计数器在每个时钟周期的上升沿读取一个已存储的待分析数据,直至取出全部已存储的待分析数据,时钟计数器停止计数。优选的,所述对待分析数据进行预处理包括:将待分析数据转化为16bit二进制补码数据并保存为COE文件。进一步的,所述对待分析数据进行预处理还包括:基于读出的待分析数据进行无故障注入条件下的FFT计算,得到参考输出结果数据,并将参考输出数据转化为16bit二进制补码数据,保存为COE文件。两类需要保存的COE文件分别存储于不同数据ROM中。可用于优化FFT算法结果的验证,特别是在有故障注入影响下的算法结果可靠性验证。优选的,所述基于预处理后的待分析数据以及预设的旋转因子进行基2-FFT的前两级蝶形计算包括:以预处理后的待分析数据作为输入数据序列,对输入数据序列进行二进制数倒序排列;定义N为大于等于2的正整数,对于任意n=2N点的FFT运算,将倒序排列后的输入数据序列x(0)~x(n)分为n/4组;基于每个分组的输入数据序列分别进行4点FFT运算的前两级蝶形计算:利用基2-FFT算法获得输出数据与输入序列之间的关系数据,所述关系数据包括第一级旋转因子和第二级旋转因子;利用预设的旋转因子取值替换关系数据中的两级旋转因子,得到输出数据与输入序列之间的简化关系数据,进而得到第二级蝶形运算的输出数据,即为基2-FFT算法前两级蝶形运算的计算结果。优选的,所述预设的旋转因子中,第一级蝶形运算的旋转因子为1,,第二级蝶形运算的旋转因子为1或-j,-j为实部是0,虚部是-1的复数。优选的,本专利技术中,基2-FFT算法前两级蝶形运算的旋转因子根据以下公式计算得到:式中,为N点FFT运算中第m+1级的旋转因子。因此,对于一个4点FFT的前两级基2-FFT蝶形运算,分解为两个2点DFT后,第一级(m=0)蝶形运算的旋转因子第二级(N=4,)蝶形运算的旋转因子和分别为1和-j。在进行输入数据序列分组后,对于每一组输入数据序列的前两级基2-FFT蝶形运算过程具体为:定义分组后的4点FFT输入数据序列为x(0)~x(3),定义x(0)+x(2)=A,x(1)+x(3)=B,x(0)-x(2)=C,x(3)-x(1)=D,x(1)-x(3)=E,预设的第一级旋转因子为第二级旋转因子则该4点FFT运算的输出序列,即相应输入数据序列组对应的基2-FFT前两级蝶形运算结果为:本专利技术还公开一种优化FFT计算装置,包括:待分析数据接收模块,用于响应于外部输入有待分析数据,存储相应数据;待分析数据读取模块,用于按照预设的读取规则读取已存储的待分析数据;预处理模块,用于对待分析数据进行预处理;简化计算模块,用于基于预处理后的待分析数据以及预设的旋转因子进行基2-FFT的前两级蝶形计算;以及结果计算模块,用于基于基2-FFT的前两级蝶形计算结果进行基2-FFT前两级之后的其它级蝶形计算,计算结果即为所述优化FFT算法的计算结果。本专利技术的优化FFT计算装置可运行于FPGA中,作为FPGA的一部分用于实现基2-FFT计算的集成电路。有益效果与现有技术相比,本专利技术具有以下优点和进步:利用蝶形运算的前两级旋转因子取值有限的特性,通过预设旋转因子取值对传统的基2-FFT算法进行简化,可在很大程度上降低传统基2-FFT算法的计算复杂度,提高运算速度,同时极大的降低FPGA设计的面积开销,使得FPGA设计具有更高的可靠性,能够降低高能粒子对电路输出的影响。附图说明图1是本专利技术基于FPGA的优化FFT算法流程示意图;图2是本专利技术优化FFT算法的一种实施例流程示意图;图3是一种4点基2-FFT蝶形运算的运算示意图;图4是本专利技术一种8点优化FFT算法的实施例运算示意图;图5是对本专利技术优化FFT算法进行可靠性评估的系统框架示意图;图6是图5中软错误缓解控制器的流程图;图7是利用传统FFT与本专利技术优化FFT的两种8点FFT设计的性能对比图;图8是两种8点FFT设计的可靠性对比图。具体实施方式以下结合附图和具体实施例进一步描述。本专利技术利用蝶形运算的前两级旋转因子取值有限的特性,通过预设旋转因子对传统的基2-FFT算法进行简化,从而实现可由输入序列快速得到前两级蝶形运算的结果,且本专利技术能够适用于任何2N(N≥2)点FFT运算,实现算法的有效加速,进而可降低高能粒子对FFT电路的影响。实施例1参考图1所示,本实施例基于FPGA的优化FFT算法,包括:响应于外部输入有待分析数据,存储相应数据;按照预设的读取规则读取已存储的待分析数据;对待分析数据进行预处理;基于预处理后的待分析数据以及预设的旋转因子进行基2-FFT的前两级蝶形计算;基于基2-FFT的前两级蝶形计算结果进行基2-FFT前两级之后的其它级蝶形计算,计算结果即为所述优化FFT算法的计算结果。实施例1-1参考图2至图4,基于实施例1本文档来自技高网...

【技术保护点】
1.一种基于FPGA的优化FFT算法,其特征是,包括:响应于外部输入有待分析数据,存储相应数据;按照预设的读取规则读取已存储的待分析数据;对待分析数据进行预处理;基于预处理后的待分析数据以及预设的旋转因子进行基2‑FFT的前两级蝶形计算;基于基2‑FFT的前两级蝶形计算结果进行基2‑FFT前两级之后的其它级蝶形计算,计算结果即为所述优化FFT算法的计算结果。

【技术特征摘要】
1.一种基于FPGA的优化FFT算法,其特征是,包括:响应于外部输入有待分析数据,存储相应数据;按照预设的读取规则读取已存储的待分析数据;对待分析数据进行预处理;基于预处理后的待分析数据以及预设的旋转因子进行基2-FFT的前两级蝶形计算;基于基2-FFT的前两级蝶形计算结果进行基2-FFT前两级之后的其它级蝶形计算,计算结果即为所述优化FFT算法的计算结果。2.根据权利要求1所述的方法,其特征是,响应于外部输入有待分析数据,将外部输入的待分析数据的实部和虚部分别存储。3.根据权利要求1所述的方法,其特征是,所述预设的读取规则为:响应于外部读取启动信号,利用时钟计数器在每个时钟周期的上升沿读取一个已存储的待分析数据,直至取出全部已存储的待分析数据,时钟计数器停止计数。4.根据权利要求1所述的方法,其特征是,优选的,所述对待分析数据进行预处理包括:将待分析数据转化为16bit二进制补码数据并保存为COE文件。5.根据权利要求4所述的方法,其特征是,所述对待分析数据进行预处理还包括:基于读出的待分析数据进行无故障注入条件下的FFT计算,得到参考输出结果数据,并将参考输出数据转化为16bit二进制补码数据,保存为COE文件。6.根据权利要求1所述的方法,其特征是,所述基于预处理后的待分析数据以及预设的旋转因子进行基2-FFT的前两级蝶形计算包括:以预处理后的待分析数据作为输入数据序列,对输入数据序列进行二进制数倒序排列;定义N为大于等于2的正整数,对于任意n=2N点的FFT运算,将倒序排列后的输入数据序列x(0)~x(n)分为n/4组;基于每个分组的输入数据序列分别进行4点FFT运算的前两...

【专利技术属性】
技术研发人员:王海滨王杨圣张辰予孙洪文罗成名张杰陈正鸣
申请(专利权)人:河海大学常州校区
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1