FFT 算法硬件描述 (8点)
采用基2算法(频率抽样)
首先确定有几级DFT:
-0/8 0度
-1/8 -45度
-2/8 -90度
-3/8 -135度
为节约时间 0度 与-90 度 不采用 cordic (achieved by 2’s complement and BUS exchange)
故整个三级DFT只有第一级需要两个 CORDIC
注意 第一级是输入是real(时域采样回来的值) 第二第三极输入是real , image
有很多方法完成这三级
这里简单说下三个方案:
a迭代方式:用一级模块反复计算3次
特点:占用资源少 耗时大
b流水线方式 :使用3个模块分别计算
特点:占用资源大 耗时小
c(推荐) 使用两个模块 第一个用流水方式 第二个用迭代方式 组合而成
特点 折中了时间与空间
12位串行数据输入 8*12并行数据输出
蝶形算法框图
输入的最高位为符号位 1为负
(cordic 算法在前一篇文章中以讲,这儿就不重复了)
之前已经说过用同一个模块完成2,3两个DFT
如何用同一个电路进行两个不同的运算呢?
对输入的数据序列做如下变换 (可见两个结构就相同啦)
将输出的数据输入VECTORING CORDIC 则可得矢量的模(即频域的模)
最后,并行变串行输出
时间总耗:
参考资料: