如何用FPGA实现FFT(快速傅里叶变换)

如何用FPGA实现FFT(快速傅里叶变换),第1张

有几个解决方案:1,自己找到FFT如何实现的文档(verilog实现),很多VERILOG方面的书籍都有的,应该可以找到的;2、到open source上下载一个,然后调试仿真,再到FPGA实现;3、直接用xilinx 的ip例化一个,但不一定符合您的要求。

1, scale_sch_we 高电平有效

1,scale_sch 截取的值应该怎么确定?

The butterfly calculation involves complex multiplication,addition, and subtraction. These operations can potentially cause the butterfly data width to grow by two bits from input to output. For radix-2, data can grow by a maximum factor of 2.4 from butterfly input to output (two bits of growth).

One way to avoid the overflow is to scale the butterfly outputs down after each stage.

(因为工作环境的关系,我已经习惯用英文来描述技术问题,用中文有的名词不知道怎么表达)

比如 1024个点 输入输出的xn_re xn_im 都是10位 输出xk_re xk_im也是10位

基二算法 Radix-2的scale_sch 有20位

there are ten stages, 2 bits per stage, so there are 20bit

基四Radix-4 scale_sch是10位 ;都是两位两位一起的

例 Redix_4 10位假如写成10 10 10 10 11 指导手册上写的意思是 第N0级 shift by 3 bits ,N1 shift by bits N2 shift by 2 bits.....

这个移动2位 移动3位是为什么呢?有什么用?

For radix-4, each stage can grow 3-bit (4.8 maximum). Therefore, shift right by 3-bit at 1st stage. And shift 2-bits for the rest, as the first stage is over-shifted.

可以使用Xilinx或者altera官方的IP核啊,这都是通用的IP核,一般工程应用也选择这种成熟的IP核,自己开发并无必要。

参见Xilinx的DS260或者altera的UG-FFT


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11255629.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存