利索能及
我要发布
收藏
专利号: 2022100802276
申请人: 杭州电子科技大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-08-05
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于FPGA的快速傅里叶变换加速方法,其特征在于,在FPGA中设置FFT分解模块、旋转因子存储模块以及算术运算处理模块,包括以下步骤:步骤S1:FFT分解模块将输入的长度为N的序列分解为4个长度为N/4的子序列,并且同步进行N/4点FFT变换;

步骤S2:旋转因子存储模块通过判断外部的输入信号来输出预先存储的旋转因子数据以用于进行算术运算;

步骤S3:算术运算处理模块处理FFT分解模块以及旋转因子存储模块输出的数据得到原序列的N点FFT变换结果;

所述FFT分解模块包括序列分解模块以及4个并行的N/4点子FFT模块,其中,N/4点子FFT模块为FPGA提供的FFT IP核,其输出模式为顺序输出;

所述旋转因子存储模块包括两个控制单元,分别记为ctr1和ctr2;以及包括三个独立的单口BRAM,分别用于存储三种不同的旋转因子数据,深度均为N/4,分别记为BRAM1、BRAM2和BRAM3,其存储的相对应旋转因子数据如下:步骤S1包括以下步骤:

步骤S11:判断信号fft_valid==1时,将输入长度为N的序列x(n),n=0,1,……,N‑1,分为长度均为N/4的4个子序列x(m)、x(m+2)、x(m+1)和x(m+3),m=0,1,……,N/4‑1;

步骤S12:将4个子序列x(m)、x(m+2)、x(m+1)和x(m+3)分别通过4个并行的N/4点FFT IP核进行变换,得到4个输出序列z1(m)、z2(m)、z3(m)和z4(m),m=0,1,……,N/4‑1;其中z1(m)对应x(m)的输出,z2(m)对应x(m+2)的输出,z3(m)对应x(m+1)的输出,z4(m)对应x(m+3)的输出;

步骤S13:输出序列z1(m)、z2(m)、z3(m)和z4(m)的同时同步输出数据有效信号data1_valid传递给旋转因子存储模块。

2.根据权利要求1所述的基于FPGA的快速傅里叶变换加速方法,其特征在于,步骤S2进一步包括以下步骤:步骤S21:将相应的旋转因子以二进制的形式按k值递增的顺序依次存入三个独立的存储单元BRAM1、BRAM2和BRAM3中;

步骤S22:控制单元ctr1判断信号data1_valid==1时,产生BRAM3的读使能信号rd1及读地址计数器addr1,依次获取WN3的旋转因子数据传递给运算处理模块;

步骤S23:控制单元ctr2判断信号data2_valid==1时,产生BRAM1和BRAM2的读使能信号rd2及读地址计数器addr2,依次获取WN1和WN2的旋转因子数据传递给运算处理模块。

3.根据权利要求1所述的基于FPGA的快速傅里叶变换加速方法,其特征在于,步骤S3进一步包括以下步骤:步骤S31:将序列z2(m)和z4(m)进行延迟打拍等待WN3的旋转因子数据;以流水线结构依次将序列z2(m)和z4(m)与WN3的旋转因子数据分别做乘法运算,得到长度为N/4的序列z21(m)和z41(m),m=0,1,……,N/4‑1;

步骤S32:将序列z1(m)和z3(m)进行延迟打拍等待z21(m)和z41(m);以流水线结构依次将z1(m)和z21(m)做加法运算得到长度为N/4的序列Z1(m),m=0,1,……,N/4‑1;以流水线结构依次将z1(m)和z21(m)做减法运算,即z1(m)减去z21(m),得到长度为N/4的序列Z2(m),m=0,

1,……,N/4‑1;以流水线结构依次将z3(m)和z41(m)做加法运算得到长度为N/4的序列Z3(m),m=0,1,……,N/4‑1;以流水线结构依次将z3(m)和z41(m)做减法运算,即z3(m)减去z41(m),得到长度为N/4的序列Z4(m),m=0,1,……,N/4‑1;

步骤S33:得到Z3(m)和Z4(m)的同时同步输出数据有效信号data2_valid传递给旋转因子存储模块;

步骤S34:将序列Z3(m)和Z4(m)进行延迟打拍等待WN1的旋转因子数据和WN2的旋转因子数据;以流水线结构依次将序列Z3(m)与WN1的旋转因子数据做乘法运算得到长度为N/4的序列Z31(m),m=0,1,……,N/4‑1;以流水线结构依次将序列Z4(m)与WN2的旋转因子数据做乘法运算得到长度为N/4的序列Z41(m),m=0,1,……,N/4‑1;

步骤S35:将序列Z1(m)和Z2(m)进行延迟打拍等待Z31(m)和Z41(m);以流水线结构依次将序列Z1(m)和Z31(m)做加法运算得到长度为N/4的序列y1(n),n=0,1,……,N/4‑1;以流水线结构依次将序列Z2(m)和Z41(m)做加法运算得到长度为N/4的序列y2(n),n=0,1,……,N/4‑

1;以流水线结构依次将序列Z1(m)和Z31(m)做减法运算,即Z1(m)减去Z31(m),得到长度为N/4的序列y3(n),n=0,1,……,N/4‑1;以流水线结构依次将序列Z2(m)和Z41(m)做减法运算,即Z2(m)减去Z41(m),得到长度为N/4的序列y4(n),n=0,1,……,N/4‑1;

步骤S36:输出y1(m)、y2(m)、y3(m)和y4(m)的同时同步输出数据有效信号dout_valid。