[发明专利]一种基于FPGA的优化FFT算法和装置有效
申请号: | 201910609346.4 | 申请日: | 2019-07-08 |
公开(公告)号: | CN110347968B | 公开(公告)日: | 2023-06-13 |
发明(设计)人: | 王海滨;王杨圣;张辰予;孙洪文;罗成名;张杰;陈正鸣 | 申请(专利权)人: | 河海大学常州校区 |
主分类号: | G06F17/14 | 分类号: | G06F17/14 |
代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 张倩倩 |
地址: | 213022 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 优化 fft 算法 装置 | ||
1.一种实现优化FFT计算的FPGA,其特征是,包括:
待分析数据接收模块,用于响应于外部输入有待分析的数据,存储相应数据;
待分析数据读取模块,用于按照预设的读取规则读取已存储的待分析数据;
预处理模块,用于对待分析数据进行预处理;
简化计算模块,用于基于预处理后的待分析数据以及预设的旋转因子进行基2-FFT的前两级蝶形计算,其中,所述预设的旋转因子中,第一级蝶形运算的旋转因子为1,第二级蝶形运算的旋转因子为1或-j,-j为实部是0,虚部是-1的复数;
以及结果计算模块,用于基于基2-FFT的前两级蝶形计算结果进行基2-FFT前两级之后的其它级蝶形计算,计算结果即为优化FFT算法的计算结果;
其中,待分析数据接收模块响应于外部输入有待分析数据,将外部输入的待分析数据的实部和虚部分别存储;
所述预设的读取规则为:待分析数据读取模块响应于外部读取启动信号,利用时钟计数器在每个时钟周期的上升沿读取一个已存储的待分析数据,直至取出全部已存储的待分析数据,时钟计数器停止计数;
所述预处理模块对待分析数据进行预处理包括:将待分析数据转化为16bit二进制补码数据并保存为COE文件;以及,基于读出的待分析数据进行无故障注入条件下的FFT计算,得到参考输出结果数据,并将参考输出数据转化为16bit二进制补码数据,保存为COE文件;且两类需要保存的COE文件分别存储于不同数据ROM中,用于在有故障注入影响下的算法结果验证;
所述简化计算模块基于预处理后的待分析数据以及预设的旋转因子进行基2-FFT的前两级蝶形计算包括:
以预处理后的待分析数据作为输入数据序列,对输入数据序列进行二进制数倒序排列;
定义N为大于等于2的正整数,对于任意n=2N点的FFT运算,将倒序排列后的输入数据序列x(0)~x(n)分为n/4组;
基于每个分组的输入数据序列分别进行4点FFT运算的前两级蝶形计算:
利用基2-FFT算法获得输出数据与输入序列之间的关系数据,所述关系数据包括第一级旋转因子和第二级旋转因子;
利用预设的旋转因子取值替换关系数据中的两级旋转因子,得到输出数据与输入序列之间的简化关系数据,进而得到第二级蝶形运算的输出数据,即为基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前两级蝶形运算结果为:
2.根据权利要求1所述的实现优化FFT计算的FPGA,其特征是,基2-FFT算法前两级蝶形运算的旋转因子根据以下公式计算得到:
式中,为N点FFT运算中第m+1级的旋转因子,
对于一个4点FFT的前两级基2-FFT蝶形运算,分解为两个2点DFT后,
m=0对应的第一级蝶形运算的旋转因子m=1对应的第二级蝶形运算的旋转因子和分别为1和-j。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河海大学常州校区,未经河海大学常州校区许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910609346.4/1.html,转载请声明来源钻瓜专利网。