FFT 算法硬件描述 (8点)

采用基2算法(频率抽样)

首先确定有几级DFT:

image  N = 8 so v = 3 (级)

image

-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并行数据输出

image

蝶形算法框图

image

image

输入的最高位为符号位 1为负

(cordic 算法在前一篇文章中以讲,这儿就不重复了)

之前已经说过用同一个模块完成2,3两个DFT

如何用同一个电路进行两个不同的运算呢?

对输入的数据序列做如下变换 (可见两个结构就相同啦)

image

将输出的数据输入VECTORING CORDICimage 则可得矢量的模(即频域的模)

最后,并行变串行输出

image

时间总耗:

image

参考资料:

image

原文地址:https://www.cnblogs.com/sleepy/p/2104703.html