跳转到主要内容
--## 电子创新网图库均出自电子创新网,版权归属电子创新网,欢迎其他网站、自媒体使用,使用时请注明“图片来自电子创新网图库”,不过本图库图片仅限于网络文章使用,不得用于其他用途,否则我们保留追诉侵权的权利。 ##--

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
judy 提交于

文章来源:FPGA入门到精通

前面两篇文章详细介绍了DFT和FFT,今天介绍一下使用Verilog实现8点FFT。

3分钟掌握离散傅里叶变换(DFT):数字世界的“频率解码器”

快速傅里叶变换(FFT):从数学公式到5G信号,揭开数字世界的“频率密码” 

8 点 FFT 计算的结构示意图如下:

1.png

从图中可以看出8点FFT计算只需要几次乘法和乘法即可完成,比繁琐的DFT计算简单很多。

1、复数数据格式

每一级的数据输入都是复数,包含实部和虚部,对于第一级输入的时域信号数据是实数,只需将虚部设为0即可。

2、分级运算 “ 如何理解 ” ?

设FFT 运算点数为 N,运算总数记为M,则FFT可以分为:

2.JPG

8点FFT运算可以分为Log28 = 3级运算。

每一级运算,一般用m表示第几级,m = 1, ..., M。

为了方便分割计算,N 一般为 2 的整数次幂。

3、蝶形运算单元

每一级运算可以分为多个蝶形运算单元。

单个蝶形运算示意图如下:

3.JPG

单个蝶形运算单元计算公式为:

4.JPG

其中5.JPG,m表示第几级数。

从公式中可以看出,每个蝶形单元运算都包含了“1次乘法”和“2次加法”。

每一级运算中,都有 N/2 个蝶形单元。

4、每一级运算分组 “ 如何理解 ” ?

(1)分组的层级性

第 ( m ) 级的分组数:

对于 ( N = 2^M ) 点FFT,在第 ( m ) 级(( m=1,2,...,M ))时,数据被分为 2^m组。

第1级(m=1):分 2^1=4 组,每组2点。
第2级(m=2):分 2^2=2 组,每组4点。
第3级(m=3):分 2^3=1 组,共8点。
组内蝶形运算:

每组内的数据通过蝶形运算合并结果,每组需要完成 ( 2^{m-1} ) 次蝶形运算。

(2)分组的物理意义

数据重排:在基2按时间抽取(DIT-FFT)中,输入数据按二进制逆序排列,逐级分组后,每组数据对应频率分量的偶奇部分。

递归分解:每一级的分组将问题规模减半,直到分解为2点DFT(最底层蝶形运算)。

4、旋转因子与分级的关系

6.JPG

每一级的旋转因子指数按k = 0,△k,2△k,...,(N/2^m - 1)△k增长。

示例:8点FFT

7.JPG

5、码位倒置

输入数据按二进制逆序排列,逐级分组后,每组数据对应频率分量的偶奇部分。

以8点FFT为例,X(0) ~ X(7) 位置对应的 2 进制码:

X(000), X(001), X(010), X(011), X(100), X(101), X(110), X(111)

进行翻转:

X(000), X(100), X(010), X(110), X(001), X(101), X(011), X(111)

此时每个位置对应的 10 进制:

X(0), X(4), X(2), X(6), X(1), X(5), X(3), X(7)

刚好对应 FFT 第一级输入数据的顺序。

精彩推荐

2026英伟达GTC大会专题

CES 2026(国际消费类电子产品展览会)专题

第四届南渡江智慧医疗与康复产业高峰论坛

第十五届松山湖中国IC创新高峰论坛

第四届滴水湖中国RISC-V产业论坛

Recent comments

  • 1873774516_516738
  • 2460440665_516737
  • 1457585548_516736
  • 780289498_516735
  • 2283262460_516734