《64点FFT算法实现》由会员分享,可在线阅读,更多相关《64点FFT算法实现(5页珍藏版)》请在金锄头文库上搜索。
1、64 点 FFT 硬件算法实现 本文对 FFT 算法中的截位问题进行分析,并给出了硬件实现的基本流程。1.截位分析以前的 FFT 算法中奇数级(1,3,5)蝶形运算输入数据均为 12bit,输出数据均为 13bit,只进行加减运算未进行截位;而偶数级(2,4,6)蝶形运算输入数据均为 13bit,输出数据均为12bit,其中第二级和第四级均需乘以了 12bit 的旋转因子,并进行了 11bit 的截位,第六级截了 1bit(最后一级的旋转因子是 1)。1 2 b i t1 2 b i t1 2 b i t1 2 b i t1 3 b i t1 3 b i t奇数级蝶形运算1 3 b i t1
2、3 b i t1 4 b i t1 4 b i t1 2 b i t 旋转因子1 2 b i t 旋转因子乘蝶形运算 ( 复数 )1 2 b i t1 2 b i t2 8 b i t第 2 , 4 级截位方式1 2 b i t1 2 b i t输出数据最后一级旋转因子为 1 , 无须复数乘法截低 1 1 b i t , 高 5 b i t , 取 1 1 2 2 b i t 作为下级输入最后一级截位方式偶数级蝶形运算截低 1 b i t , 高 1 b i t , 取 1 1 2 b i t1 4 b i t图1 64 点 FFT 各级截位方式下面对每级不同 bit 的截位进行比较分析(输入
3、均为 12bit)级数 所截位数序号 2 4 6 SNR 输出位数1 12 12 2 40.6496 92 11 11 1 57.5163 123 10 10 0 69.6639 154 9 9 0 71.0629 175 10 11 1 65.2446 136 11 10 1 62.5455 137 11 11 0 59.2151 138 10 12 1 58.4537 129 10 11 2 59.8836 1210 10 10 1 69.0928 140 0.5 1 1.5 2 2.5 3 3.5 4 4.5 501020304050607080X: 5Y: 71.06中中中中中中SNR
4、X: 4Y: 69.66X: 3Y: 57.52X: 2Y: 40.65X: 1Y: 23.04图2 SNR 随每级增加位数的变化注:第二级,第四级和第六级的截位数从 14.14.410.10.09.9.-1 递减,从图中可以看出当第二级,第四级和第六级的截位数小于 10.10.0 时,即输出的比特数大于 15bit 时,信噪比变化平缓。0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 54045505560X: 5Y: 59.9中中中中中中中SNRX: 4Y: 59.88X: 3Y: 57.52X: 2Y: 51.4X: 1Y: 46.63图3 输出为 12bit 时 SNR 随第
5、二级增加位数的变化注:输出都是 12bit 第二级的截位数从 14bit 到 9bit,第四级截位数均为 11bit,第六级截位数从-2 到 3,从图中可以看出输出比特一定且第四级截位数不变的情况下,当第二级截位数小于等于 10,第六级截位数大于等于 2 的时候,信噪比变化平缓。 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 54042444648505254565860X: 4Y: 58.7中中中中中中中SNRX: 3Y: 57.52X: 2Y: 53.04X: 5Y: 59.26X: 1Y: 47.13图4 输出为 12bit 时 SNR 随第四级增加位数的变化注:输出都是
6、12bit 第四级的截位数从 14bit 到 9bit,第二级截位数均为 11bit,第六级截位数从-2 到 3,从图中可以看出输出比特一定且第二级截位数不变的情况下,当第四级截位数小于等于 10,第六级截位数大于等于 2 的时候,信噪比变化平缓。0 1 2 3 4 5 6 7 8 9354045505560657075X: 5Y: 69.09中中中中中中中SNRX: 4Y: 65.24X: 3Y: 57.52X: 2Y: 49.81X: 1Y: 45.23X: 6Y: 70.63X: 7Y: 71 X: 8Y: 71.1图5 SNR 随第二级增加位数的变化注:第四级截位 11bit,第六级截
7、位 1bit,只改变第二级的截位数,从图中可以看出,当x=5,即第二级的截位数小于等于 10 时,系统的信噪比变换缓慢,因此我们可以选择此临界值。(临界时输出数据位 13bit) 0 1 2 3 4 5 6 7 8 93540455055606570X: 4Y: 62.55中中中中中中中SNRX: 3Y: 57.52X: 2Y: 50.57X: 1Y: 44.96X: 5Y: 64.28X: 6Y: 65.16X: 7Y: 65.33X: 8Y: 65.38图6 SNR 随第四级增加位数的变化注:第二级截位 11bit,第六级截位 1bit,只改变第四级的截位数,从图中可以看出,当x=5,即第
8、四级的截位数小于等于 10 时,系统的信噪比变换缓慢,因此我们可以选择此临界值。(临界时输出数据位 13bit)0 1 2 3 4 5 6 7 8 94042444648505254565860X: 4Y: 59.22中中中中中中中SNRX: 3Y: 57.52X: 2Y: 53.3X: 1Y: 47.48X: 5Y: 59.22X: 6Y: 59.22X: 7Y: 59.22X: 8Y: 59.22图7 SNR 随第六级增加位数的变化注:第二级截位 11bit,第四级截位 11bit,只改变第六级的截位数,从图中可以看出,当x=4,即第四级的截位数小于等于 1 时,系统的信噪比变换缓慢,因此
9、我们可以选择此临界值。(临界时输出数据位 12bit)8 9 10 11 12 13 14 15 16303540455055606570中中中中中中SNR10bit11bit12bit13bit14bit图8 SNR 随输出 bit 不同及中间 bit 不同的曲线注:这 5 条线分别代表 5 个不同的输出 bit,可见在中间 bit 较小时,随输出 bit 不同结果变化不大,而当中间 bit 上升时,输出 bit 越大信噪比越高。而对同一个的输出比特而言,当中间 bit 到一定大小时信噪比就保持稳定。以上是我们对不同的截位情况所做的讨论,鉴于目前我们对板子的参数(DAC 的位数及FPGA 的
10、参数) 不了解,因此还需结合具体硬件的参数来决定最终的截位数。2.64 点 FFT 硬件实现结构F I F O 3 2F I F O 3 2 jF I F O 1 6F I F O 1 6 2RadixBF I F O 8F I F O 8 jF I F O 4F I F O 4 2RadixBF I F O 2F I F O 2 jF I F O 1F I F O 1 2RadixBi 2iiXk164nW16n倒序模块倒序模块xn判断F F T _ m o d ed e l a y 1d e l a y 3 33 2 f i f o + 1 a d dd e l a y 1 81 6 f i f o + 1 a d d + 1 m u xd e l a y 98 f i f o + 1 a d dd e l a y 64 f i f o + 1 a d d + 1 m u xd e l a y 32 f i f o + 1 a d dd e l a y 21 f i f o + 1 a d dd e l a y 6 7共 d e l a y 1 3 9图9 64 点 FFT 硬件结构