VHDL实现灵活长度FFT算法16位定点输入与32位定点输出及内部浮点计算
灵活长度的 FFT 实现挺实用的,是你要在资源紧张的 FPGA 上跑高精度信号时。这个用 VHDL 写的 FFT 模块,输入是 16 位定点,输出是 32 位定点,中间还用了浮点数来做内部计算,精度和性能兼顾得还不错。
结构上比较清爽,FFT 点数可调,用在一些对灵活性有要求的场景蛮合适,比如音频、雷达预这类的项目。接口部分没太多花哨,时钟控制、数据输入输出都是常规模式,新手调试起来也不会太吃力。
如果你之前用过那种纯定点 FFT,知道它在动态范围上的掣肘,这种中间浮点的方式能在不太加资源的情况下,一些幅度跨度比较大的信号,挺香。想玩得更深入点,可以搭配这几个资源一起看:
定点 FFT,适合了解纯定点逻辑;
基于 FPGA 的高速定点 FFT 算法,实现细节比较硬核;
使用 C 语言编写的定点和浮点 FFT,对比理解蛮直观。
哦对了,转换过程里精度和资源是个平衡点,如果你想做大点数的 FFT,比如 1024 点甚至更大,资源就得先评估一下,1024 点定点 FFT那个可以参考。
如果你正在搞FPGA 上的音视频或者嵌入式信号,这个资源可以作为一个还不错的起点。有兴趣就下下来琢磨琢磨,说不定能直接改成你项目里能用的一部分。
下载地址
用户评论