一文搞懂:FT、DTFT、DFT、IDFT

  • 写在前面
  • 一切为了计算机的处理
    • 推导步骤
  • 总结

写在前面

近期重温了一下可爱的数字信号处理,又回想起当初被 FT、DTFT、DFT、IDFT 这几兄弟折腾的傻傻分不清的日子,今天特地在此对它们进行一个梳理。
珠玉在前,非常感谢这篇文章的点拨:一幅图搞懂DFT与DTFT的关系

一切为了计算机的处理

我们知道,FT就是傅里叶变换,其可以将信号从时域变换到频域,但是此刻的信号无论在时域还是频域,都是连续的。
然而,计算机只能处理离散的数据,因此我们要在计算机中完成傅里叶变换,就需要在时域与频域对信号进行采样。

下面,我们通过作图的方式,来梳理一下从 FT 到 DFT 的心路历程。

推导步骤

  1. 连续信号 x(t) ,经过傅里叶变换 FT 后,变成了 X(f)。(两域均连续,计算机无法处理)
  2. 对 x(t) 在时域进行采样,得到 x(n) 。
  3. 对 x(n) 进行 离散时间傅里叶变换(DTFT),得到 X(e^jw)。(频域连续,计算机依然无法处理)
  4. 对 X(e^jw) 进行采样,并尝试通过逆离散傅里叶变换(IDFT)恢复出 x(n),但是 x(n) 出现了周期延拓。依据时频域卷积定理,一个域的采样会导致另一个域的周期延拓。(两域离散,计算机可以处理,但是无法恢复原序列)
  5. 因为 X(e^jw) 是周期为 2Π 的周期信号,因此,我们仅在主值区间对 X(e^jw) 进行采样,即可恢复出正确的原序列。

总结

  1. FT 是针对连续信号的傅里叶变换,或者可以理解为傅里叶变换的统称
  2. DTFT 是针对离散信号的傅里叶变换
  3. DFT 是在 DTFT 的基础上,在频域的主值区间内采样得到的结果
  4. FFT 是 DFT 的一种快速算法

一文搞懂:FT、DTFT、DFT、IDFT相关推荐

  1. 一文搞懂RNN(循环神经网络)

    基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...

  2. 一文搞懂 Python 的 import 机制

    一.前言 希望能够让读者一文搞懂 Python 的 import 机制 1.什么是 import 机制? 通常来讲,在一段 Python 代码中去执行引用另一个模块中的代码,就需要使用 Python ...

  3. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  4. 一文搞懂 Java 线程中断

    转载自   一文搞懂 Java 线程中断 在之前的一文<如何"优雅"地终止一个线程>中详细说明了 stop 终止线程的坏处及如何优雅地终止线程,那么还有别的可以终止线程 ...

  5. 一文搞懂HMM(隐马尔可夫模型)-Viterbi algorithm

    ***一文搞懂HMM(隐马尔可夫模型)*** 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度.熵越大,系统越无序,意味着系统结构和运动的不确定和无规则:反之,,熵越小,系统越有序, ...

  6. 一文搞懂如何使用Node.js进行TCP网络通信

    摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...

  7. 【UE·蓝图底层篇】一文搞懂NativeClass、GeneratedClass、BlueprintClass、ParentClass

    本文将对蓝图类UBlueprint的几个UClass成员变量NativeClass.GeneratedClass.BlueprintClass.ParentClass进行比较深入的讲解,看完之后对蓝图 ...

  8. 一文搞懂AWS EC2, IGW, RT, NAT, SG 基础篇下

    B站实操视频更新 跟着拉面学习AWS--EC2, IGW, RT, NAT, SG 简介 长文多图预警,看结论可以直接拖到"总结"部分 本文承接上一篇文章介绍以下 AWS 基础概念 ...

  9. 一文搞懂CAN FD总线协议帧格式

    目录 1.为什么会出现CAN FD? 2.什么是CAN FD? 3.CAN FD和CAN总线协议帧异同 4.解析CAN FD帧结构 4.1.帧起始 4.2.仲裁段 4.3.控制段 4.4.数据段 4. ...

最新文章

  1. 【Runtime】动态添加方法demo
  2. Java中的断言(assert)
  3. 成功解决TypeError: unsupported operand type(s) for %: 'NoneType' and 'dict'
  4. linux抓源地址,【Linux】apt-get 源地址汇总
  5. android 蓝牙传输分包,彻底掌握Android多分包技术(一)
  6. 小腹下面是什么部位_为什么肚子上的肉最难减?说好的马甲线呢?
  7. evc4工程移植vs.net2005所碰到的问题积累
  8. ORA-03114乌龙处理
  9. 360公布权威机构对扣扣保镖的测试报告
  10. 用于角点检测的FAST算法
  11. 23种设计模式(十六)接口隔离之中介者
  12. python前端Django指南之Hello worldl输出
  13. 0x0F转换成二进制
  14. zcmu 5142: 巴比伦塔
  15. vr手柄设置_最佳无线VR设置,最新和即将推出
  16. 人生=亲情+爱情+金钱+理想+友情?
  17. 弘玑|数字员工赋能金融转型,迈向更加高效灵活的运营模式
  18. C++第三次实验:税收计算
  19. 数字IC手撕代码-流水握手(利用握手解决流水线断流、反压问题)
  20. ExtJS 6 的一些 样式类配置项

热门文章

  1. 详解ISO13400文档-3
  2. 部署iis服务器与c#程序遇到的问题小结
  3. 众昂矿业刘金海:我国萤石进出口现状解析
  4. 汽车销售管理系统java
  5. Linux 命令行字符画工具
  6. 养生指南 1 : 度 / 平衡(奔三了嘛 , 偶像)
  7. 闭包,一个浪漫的故事
  8. 画直方图和函数密度曲线的几种方法
  9. 爱宝贝 导购系统 免费使用下载jsp mysql
  10. 无名(有名)管道,读写文件内容范例