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

Verilog 实现512点 基2FFT算法(频率抽取)
摘要由CSDN通过智能技术生成

空手套白狼的我谢谢您!免开尊口。不必说什么请教,更不要口吐莲花!
代码功能
        代码实现512点FFT蝶形算法,基2频率抽取算法。如需改为时间抽取,只需在输入端增加一级缓存,对时间序列调整顺序;同时,取消输出端的排序。

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

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

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

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

        但是,由上图可知,第一级运算时,x(0)与x(256)组合运算,x(1)与x(257)组合运算,x(2)与x(258)组合运算...x(255)与x(511)组合运算。考虑到x(0)比x(256)、x(1)比x(257)、x(2)与x(258)...x(255)比x(511)提早256个clk(1个硬件时钟周期),则必需对x(0)~x(255)进行缓存。

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

        顶层代码如下:

module FFT512(
    input                     c

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值