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

首先确定有几级DFT:

FFT 算法硬件描述 (8点)  N = 8 so v = 3 (级)

FFT 算法硬件描述 (8点)

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

FFT 算法硬件描述 (8点)

蝶形算法框图

FFT 算法硬件描述 (8点)

FFT 算法硬件描述 (8点)

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

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

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

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

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

FFT 算法硬件描述 (8点)

将输出的数据输入VECTORING CORDICFFT 算法硬件描述 (8点) 则可得矢量的模(即频域的模)

最后,并行变串行输出

FFT 算法硬件描述 (8点)

时间总耗:

FFT 算法硬件描述 (8点)

参考资料:

FFT 算法硬件描述 (8点)

相关文章: