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个输出序列z步骤S13:输出序列z
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:将序列z
步骤S32:将序列z
步骤S33:得到Z
步骤S34:将序列Z
步骤S35:将序列Z
步骤S36:输出y