数字信号处理——FFT

作者:BerenCamlost

参考资料:

  1. 老师PPT:百度网盘链接 提取码: dhn4
  2. 数字信号处理课本
  3. 超星视频:B站视频链接

第四章 FFT

4.1 DFT运算量和FFT运算量对比

  • DFT: N 2 N^2 N2次复乘, N ( N − 1 ) N(N-1) N(N1)次复加
  • FFT: N 2 l o g 2 N \frac{N}{2}log_2N 2Nlog2N次复乘, N l o g 2 N Nlog_2N Nlog2N次复加
    • 其中FFT中的N为2的整次幂

4.2 按时间抽取的基2 - FFT原理

4.2.1 算法原理

{ X [ k ] = G [ k ] + W N k H [ k ] k = 0 , 1 , 2... N 2 − 1 X [ k + N 2 ] = G [ k ] − W N k H [ k ] k = 0 , 1 , 2... N 2 − 1 \left\{\begin{matrix} X[k]=G[k]+W_N^kH[k] & k=0,1,2...\frac{N}{2}-1\\ X[k+\frac{N}{2}]=G[k]-W_N^kH[k] & k=0,1,2...\frac{N}{2}-1 \end{matrix}\right. {X[k]=G[k]+WNkH[k]X[k+2N]=G[k]WNkH[k]k=0,1,2...2N1k=0,1,2...2N1

  • 其中N为2的整次幂

4.2.2 蝶形算法

1

  • 蝶形算法和上面的公式是同一个东西的不同表现形式。

4.3 按时间抽取的FFT流图

  • 这里以16点FFT流图为例进行解释(注意这个图的WN标注的位置可能有些奇怪)
    16点FFT流图

4.3.1 算法原理

由蝶形构成基本运算单元,每个流图共有M级,每一竖列有N/2个蝶形,于是得到公式 M = l o g 2 N M=log_2N M=log2N

4.3.2 原位运算

由于DFT算法的限制,导致源数据将作为每一次运算的操作数,这使得储存容量的要求很大。而FFT算法,从蝶形图中可以看出,下一个蝶形的数据源和上一次的数据源是不同的,所以可以把每一次蝶形运算得到的数据直接存放在原来的存储区域,大大减小了存储容量的要求。

4.3.3 序数重排

可以看到,FFT的结果值是按顺序排列的,如果把计算结果k的二进制和数据源的n的二进制相比较,可以发现如下规律:

数据源顺序二进制二进制FFT顺序
0000000000
8100000011
4010000102
12110000113
2001001004
10101001015
6011001106
14111001117

等等……
可以发现前后两个数的二进制是正好反过来的。

4.3.4 系数的确定

随缘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值