Verilog 实现256点 基2FFT算法(频率抽取)

需要源代码及文档,

代码功能

        代码实现256点FFT蝶形算法,基2频率抽取算法。如需改为时间抽取,只需在输入端增加一级缓存,对时间序列调整顺序;同时,取消输出端的排序。

        本代码不依托于硬件平台,可只使用modelsim进行仿真,无需使用Vivado或Quartus II。

代码框架

        256点FFT示意图过于复杂,此处以8点FFT 基2频率抽取分解示意图为例进行说明。

Verilog 实现256点 基2FFT算法(频率抽取)_第1张图片

         如图,N=8时,分为log2(8) = 3级。则当N=512时,分为log2(256)=8级。

        由于采用频率抽取,则时域信号可顺序输入,无需对时域256个数据全部缓存。

   

        同时,FFT直接计算结果为X(0)、X(128)、X(1)、X(129)……,为调整为顺序输出,则需要对计算结果进行一次缓存。然后顺序输出FFT计算结果。

        顶层代码如下:

module FFT256(
input                     clk,
input                     rst_n,
input                     in_valid,
input signed  

你可能感兴趣的:(数字信号处理的FPGA实现,fpga开发)