作者:BerenCamlost

参考资料:

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

第四章 FFT

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

  • DFT:N2N^2N2次复乘,N(N−1)N(N-1)N(N−1)次复加
  • FFT:N2log2N\frac{N}{2}log_2N2N​log2​N次复乘,Nlog2NNlog_2NNlog2​N次复加
    • 其中FFT中的N为2的整次幂

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

4.2.1 算法原理

{X[k]=G[k]+WNkH[k]k=0,1,2...N2−1X[k+N2]=G[k]−WNkH[k]k=0,1,2...N2−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]+WNk​H[k]X[k+2N​]=G[k]−WNk​H[k]​k=0,1,2...2N​−1k=0,1,2...2N​−1​

  • 其中N为2的整次幂

4.2.2 蝶形算法

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

4.3 按时间抽取的FFT流图

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

4.3.1 算法原理

由蝶形构成基本运算单元,每个流图共有M级,每一竖列有N/2个蝶形,于是得到公式M=log2NM=log_2NM=log2​N

4.3.2 原位运算

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

4.3.3 序数重排

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

数据源顺序 二进制 二进制 FFT顺序
0 0000 0000 0
8 1000 0001 1
4 0100 0010 2
12 1100 0011 3
2 0010 0100 4
10 1010 0101 5
6 0110 0110 6
14 1110 0111 7

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

4.3.4 系数的确定

随缘

数字信号处理——FFT相关推荐

  1. 数字信号处理FFT快速傅立叶变换MATLAB实现——实例

    今天做作业的时候发现要对一个信号进行FFT变换,在网上找了半天也没找到个能看懂的(因为我太菜了),后来自己研究了一下,感觉一知半解的 起因是这道作业题 例题-满足奈奎斯特 我画了两个图,一个是原信号经 ...

  2. 数字信号处理——FFT运算模块设计(2)

    目录 引言 设计 验证 引言 蝶形运算是FFT 运算单元的基本结构,本文就主要实现FFT蝶形运算(基2DIT-FFT)模块的功能,并进行验证. 设计 直接上代码,废话就不多了,注释我写的很详细~~ 有 ...

  3. 数字信号处理——FFT运算模块设计(1)

    目录 引言 FFT理论 基2 DIT-FFT 算法 基于FPGA的设计方法分析 数据存储分析

  4. 数字信号处理——FFT运算模块设计(3)

    目录 引言 基2 DIF-FFT原理 SDF 结构 时序图 参考说明 引言 前面的两篇文章介绍了基于DIT-FFT原位运算的原理和处理思路,并给出了基2DIT-FFT算法蝶形运算的实现源代码.但是顺序 ...

  5. matlab pburg,现代数字信号处理——AR模型

    1. AR模型概念观 AR模型是一种线性预测,即已知N个数据,可由模型推出第N点前面或后面的数据(设推出P点),所以其本质类似于插值,其目的都是为了增加有效数据,只是AR模型是由N点递推,而插值是由两 ...

  6. FPGA数字信号处理(九)Vivado FFT IP核实现

    该篇是FPGA数字信号处理的第9篇,选题为DSP系统中极其常用的FFT运算.上篇介绍了Quartus环境下FFT IP核的使用"FPGA数字信号处理(八)Quartus FFT IP核实现h ...

  7. c语言实现1024点fft程序,数字信号处理的步骤与注意事项,并编写1024个采样点的FFT C语言程序...

    数字信号处理的步骤与注意事项,并编写1024个采样点的FFT C语言程序 1. 数字信号处理 1.1 数字信号处理概述 数字信号处理是研究如何用数字或符号序列来表示信号以及如何对这些序列进行处理的一门 ...

  8. 奇数点偶数点fft的matlab,电子科大 数字信号处理实验2_FFT的实现

    电 子 科 技 大 学 实 验 报 告 学生姓名:Shrimp 学 号: 指导教师: 一.实验室名称:数字信号处理实验室 二.实验项目名称:FFT 的实现 三.实验原理: 一.FFT 算法思想: 1. ...

  9. 数字信号处理知识点总结(四):快速傅里叶变换(FFT)

    本篇文章主要介绍快速傅里叶变换(FFT)的优化原理,基-2FFT算法的推导.实现及用FFT实现的线性卷积. 主要参考知乎[精品讲义]-快速傅里叶变换(Fast Fourier Transformati ...

最新文章

  1. 设置编码格式为utf8
  2. Nature:剖腹产到底好不好?——肠道菌群的视角
  3. tensorflow学习(1.CNN简单实现MNIST)
  4. LmgORM项目: 介绍
  5. Python基础-List找重复数
  6. Redis 3.0.2集群搭建以及相关问题汇总
  7. 腾讯视频下载安装链接_腾讯视频怎么上传视频
  8. fetch ajax cros,由 Fetch 跨域 看 CORS
  9. 为什么tcp不采用停等协议_为什么 TCP 协议有粘包问题
  10. iOS下载历史版本App教程
  11. 中移动入侵防御设备集采,总限价1.6亿;爱立信斩获95个5G商用合同
  12. mysql与gbase获取行号_mysql/gbase数据库全库库表记录数统计
  13. NT1000无线测温系统 方维监测
  14. 苹果手机计算机隐藏照片app,‎App Store 上的“秘密计算器 - 隐藏私人照片和视频”...
  15. H5+微信公众号扫二维码页面跳转功能 vue实现
  16. python前端——HTML超文本标记语言、CSS层叠样式表
  17. oracle创建表空间及查看表空间和使用情况
  18. 理解Schnorr签名算法
  19. css 画小黄人,纯CSS3画出小黄人并实现动画效果
  20. android客户端恢复教程,如何从安卓手机上恢复数据?

热门文章

  1. 沈师PTA2021Java编程题复习题库
  2. #千锋逆战班,王富胜# 学如逆水行舟,不进则退。在千锋学习的第14天 笔记整理
  3. 如何从零开始搭建直播平台,从flash时代的rtmp到过渡期的flv和webrtc的未来以及简单聊聊webassmbly
  4. 数据库decimal对应java什么类型_数据库字段类型和Java的对应关系
  5. Cruehead-CrackMe-3
  6. 计算机谣言之网线的做法
  7. IT资质认证证书如何查询?这篇文章教你查询方式
  8. centos 安装 janus
  9. c语言预处理命令math,C语言之预处理命令
  10. 【控制】自适应控制,模型参考自适应控制,公式推导,有程序有结果图