一幅图弄清DFT与DTFT,DFS的关系

2023-11-01

http://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html

很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DFT,DTFT,DFS,FFT,FT,FS等,FT和FS属于信号与系统课程的内容,是对连续时间信号的处理,这里就不过多讨论,只解释一下前四者的关系。

  首先说明一下,我不是数字信号处理专家,因此这里只站在学生的角度以最浅显易懂的性质来解释问题,而不涉及到任何公式运算。

  学过卷积,我们都知道有时域卷积定理频域卷积定理,在这里只需要记住两点:1.在一个域的相乘等于另一个域的卷积;2.与脉冲函数的卷积,在每个脉冲的位置上将产生一个波形的镜像。(在任何一本信号与系统课本里,此两条性质有详细公式证明)

  下面,就用这两条性质来说明DFT,DTFT,DFS,FFT之间的联系:

  先看图片:

  首先来说图(1)和图(2),对于一个模拟信号,如图(1)所示,要分析它的频率成分,必须变换到频域,这是通过傅立叶变换即FT(Fourier Transform)得到的,于是有了模拟信号的频谱,如图(2);注意1:时域和频域都是连续的

  但是,计算机只能处理数字信号,首先需要将原模拟信号在时域离散化,即在时域对其进行采样,采样脉冲序列如图(3)所示,该采样序列的频谱如图(4),可见它的频谱也是一系列的脉冲。所谓时域采样,就是在时域对信号进行相乘,(1)×(3)后可以得到离散时间信号x[n],如图(5)所示;由前面的性质1,时域的相乘相当于频域的卷积,那么,图(2)与图(4)进行卷积,根据前面的性质2知,会在各个脉冲点处出现镜像,于是得到图(6),它就是图(5)所示离散时间信号x[n]的DTFT(Discrete time Fourier Transform),即离散时间傅立叶变换,这里强调的是“离散时间”四个字。注意2:此时时域是离散的,而频域依然是连续的

  经过上面两个步骤,我们得到的信号依然不能被计算机处理,因为频域既连续,又周期。我们自然就想到,既然时域可以采样,为什么频域不能采样呢?这样不就时域与频域都离散化了吗?没错,接下来对频域在进行采样,频域采样信号的频谱如图(8)所示,它的时域波形如图(7)。现在我们进行频域采样,即频域相乘,图(6)×图(8)得到图(10),那么根据性质1,这次是频域相乘,时域卷积了吧,图(5)和图(7)卷积得到图(9),不出所料的,镜像会呈周期性出现在各个脉冲点处。我们取图(10)周期序列的主值区间,并记为X(k),它就是序列x[n]的DFT(Discrete Fourier Transform),即离散傅立叶变换。可见,DFT只是为了计算机处理方便,在频率域对DTFT进行的采样并截取主值而已。有人可能疑惑,对图(10)进行IDFT,回到时域即图(9),它与原离散信号图(5)所示的x[n]不同呀,它是x[n]的周期性延拓!没错,因此你去查找一个IDFT的定义式,是不是对n的取值区间进行限制了呢?这一限制的含义就是,取该周期延拓序列的主值区间,即可还原x[n]!

  FFT呢?FFT的提出完全是为了快速计算DFT而已,它的本质就是DFT!我们常用的信号处理软件MATLAB或者DSP软件包中,包含的算法都是FFT而非DFT。

  DFS,是针对时域周期信号提出的,如果对图(9)所示周期延拓信号进行DFS,就会得到图(10),只要截取其主值区间,则与DFT是完全的一一对应的精确关系。这点对照DFS和DFT的定义式也可以轻易的看出。因此DFS与DFT的本质是一样的,只不过描述的方法不同而已。

  不知道经过上面的解释,您是否明白各种T的关系了呢?如果您不是算法设计者,其实只要懂得如何使用FFT分析频谱即可,博主近期会更新一篇文章,专门介绍如何利用FFT分析简单信号的频谱。

  其实个人认为,纠结了这么多,就是为了打破现实模拟世界与计算机数字世界的界限呀!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一幅图弄清DFT与DTFT,DFS的关系 的相关文章

  • Python不是一门伟大的语言

    作为一门简洁易用 生态蓬勃且具有高泛用性的编程语言 Python一直以来都被不少人称作 编程语言中的瑞士军刀 尤其随着近来AI热潮席卷全球 Python在编程语言圈中的地位也随之水涨船高 甚至一度被视作AI专用语言或大数据专用语言 然而从语
  • 数据结构---归并排序

    归并排序 第一步 分组 第二步 归并 归并操作 第一步 第二步 第三步 JAVA实现 总结 第一步 分组 第1层分成2个大组 每组n 2个元素 第2层分成4个小组 每组n 4个元素 第3层分成8个更小的组 每组n 8个元素 一直到每组只有一
  • 各种经纬度坐标系转换-百度坐标系、火星坐标系、国际坐标系

    各种经纬度坐标系转换 百度坐标系 火星坐标系 国际坐标系 文章代码参考网上 测试没什么问题 汇总整理希望对大家有帮助 dou WGS84 国际坐标系 为一种大地坐标系 也是目前广泛使用的GPS全球卫星定位系统使用的坐标系 GCJ02 火星坐
  • UE4中使用数据表(Data Table)

    本文依据官方文档数据驱动游戏性元素整理而来 做过游戏的应该都清楚 如果游戏稍微有点规模 那么使用数据驱动来做游戏一般是必不可少的一步 一般也就是策划通过本表的方式来解决 下面我们来简单说一下UE4中如何使用DataTable来实现数据驱动开
  • MobileViG实战:使用MobileViG实现图像分类任务(一)

    文章目录 摘要 安装包 安装timm 安装 grad cam 数据增强Cutout和Mixup EMA 项目结构 计算mean和std 生成数据集 摘要 论文翻译 https blog csdn net m0 47867638 articl
  • 获取cookie的两种方式EL表达式中判断数据是否为空

    1 使用java代码获取cookie Cookie cs request getCookies 通过请求获取 for Cookie c cs if c getName equals loginAct String loginAct c ge
  • js总结(二)--彻底理解js中this的指向,不必硬背。

    首先必须要说的是 this的指向在函数定义的时候是确定不了的 只有函数执行的时候才能确定this到底指向谁 实际上this的最终指向的是那个调用它的对象 这句话有些问题 后面会解释为什么会有问题 虽然网上大部分的文章都是这样说的 虽然在很多
  • 解决 vscode 登录微软账户同步设置 出现“vscode.dev 关闭了连接“ 问题

    我的电脑最近重装了系统 之前的软件都删除了 在重新安装vscode之后想同步之前的设置 主题时出现了问题 我的解决方法是 在当前页面 输入 https vscode dev 看能不能打开 如果能打开 再次点击vscode登录账号同步设置 我
  • Pytorch与Onnx模型的保存、转换与操作

    Open Neural Network Exchange ONNX 开放神经网络交换 格式 是一个用于表示深度学习模型的标准 可使模型在不同框架之间进行转移 一 pytorch模型保存 加载 有两种方式可用于保存 加载pytorch模型 1
  • mysql查询表的所有内容

    show create table 表名
  • echarts设置x轴字体不同颜色

    业务需求 根据x轴是用户和有用户的文件夹来展示两种颜色 在获取数据的方法中 initData totalAnaysis then res gt let xData yData xFontcolor res data user forEach
  • 男人彻底懂得一个女人之后就不会爱她了吗?

    爱情教母张爱玲说过 男人彻底懂得一个女人之后 是不会爱她的 其实张爱玲的表达不确切 谁都不可能彻底懂得谁 自己都不可能彻底懂得自己 否则 张爱玲不会一遍一遍地写自己的童年 对其进行剖析 早年的有散文 私语 后来有英文的 雷峰塔 和中文的 小
  • java 提取文档注释 命令,java文档注释及javadoc命令

    注释的三种类型 1 单行注释 双斜线 2 多行注释 一次性将程序的多行注释掉 3 文档注释 如果编写Java源代码是添加了合适的文档注释 然年后通过JDK提供的Javadoc工具可以直接将源代码里面的文档注释提取成一份系统的API文档 文档
  • 破解AES秘钥长度限制

    破解AES秘钥长度限制 高级加密标准 AES 在密码学中又称Rijndael加密法 是美国联邦政府采用的一种区块加密标准 这个标准用来替代原先的DES 密码说明 因为Rijndael加密法可以支持更大范围的区块和密钥长度 AES的区块长度固
  • 在liunx双机下自己动手实现浮动IP技术

    http www 360doc com content 11 0823 18 5907545 142730623 shtml 有两台Linux服务器 其中一台主机 IP 139 24 214 22 对外提供了一定的网络服务 另一台从机 IP
  • 性能测试连载 (7)-jmeter 压力测试中的难点解析

    概述 新人在用jmeter做压力测试的时候 会被一些性能术语搞懵 直接导致的后果就是对测试出来的结果数据根本不能理解 更谈不上分析 这篇文章着重给大家实例解释一下jmeter压力测试的一些专有名词 问题1 什么是压力测试 问到如何做压力测试
  • 不同行业数字化工厂建设的几种模式

    国内制造业现阶段面临着巨大的转型压力 劳动力成本迅速攀升 产能过剩 竞争激烈 客户个性化需求日益增长等因素 迫使制造企业从低成本竞争策略转向建立差异化竞争优势 在工厂层面 企业面临着招工难 以及缺乏专业技师的巨大压力 必须实现减员增效 迫切
  • Doris 报错及解决方法

    1 1105 errCode 3 detailMessage tablet 348546 has few replicas 0 alive backends 用csv文件导入数据时报错 用show backends查看有BE节点宕机了 2
  • 基于STM32单片机的农作物大棚灌溉系统设计

    一 硬件方案 本设计以STM32单片机作为主控芯片 实现对农作物大棚环境的温度 湿度 光强度和土壤湿度进行监测 并根据具体情况进行相应的补水和补光 主要由STM32F103C8T6单片机最小系统 wifi模块 温湿度模块 1602液晶显示模
  • windows下编译libLAS库及配置

    windows下编译libLAS库及配置 前言 LibLAS编译 1 在进行编译之前我们首先需要编译Boost GDAL TIFF LASZIP和GeoTIFF的编译 大家可以参考下面的教程 Boost https blog csdn ne

随机推荐

  • jsp页面有中文显示乱码

    Tomcat目录的webapp目录下新建jspProject目录 创建以上文件夹 其中web inf文件夹可从ROOT目录下复制 新建index jsp 代码如下 hello Jsp 访问页面 中文显示乱码 更改jsp编码格式 在头一行中加
  • 【MySQL】mysql在Windows下使用mysqldump命令备份数据库

    在cmd窗口中使用mysqldump命令首先需要配置环境变量 1 在计算机中找到MySQL的安装位置 找到MySQL Workbench 比如我的是C Program Files MySQL MySQL Server 5 7 bin 2 在
  • 【目标检测】5、Faster R-CNN

    文章目录 摘要 引言 2 相关工作 3 Faster R CNN 3 1 区域提议网络 3 1 1 anchor 3 1 2 损失函数 3 1 3 训练RPNs 3 2 RPN和Fast R CNN的特征共享 3 3 实现细节 4 实验 4
  • (python)用户输入一段英文,然后输出这段英文中所有长度为3的英文单词

    正则表达式 集合 import re words input Input the words l re split words 使用空格分隔词语 得到各个单词 print l i 0 这里我设置的是计数器 for i in l if len
  • Linux下逻辑地址、线性地址、物理地址详细总结

    一 逻辑地址转线性地址 机器语言指令中出现的内存地址 都是逻辑地址 需要转换成线性地址 再经过MMU CPU中的内存管理单元 转换成物理地址才能够被访问到 我们写个最简单的hello world程序 用gcc编译 再反编译后会看到以下指令
  • awk的sort功能(zz)

    awk的sort功能 zz 2009 04 27 19 07 排序是经常用到的操作 然而原始版本的awk并没有内置的sort函数 想要排序数组的话只能自己实现一个sort函数 在gawk的3 1以后的版本 扩展提供了对数组的sort功能 a
  • Android开源框架之Android-PullToRefresh

    简介 PullToRefresh是一套实现非常好的下拉刷新库 它支持 ListView ExpandableListView GridView WebView ScrollView HorizontalScrollView ViewPage
  • conda的一些常用命令

    参考博客 我们可以在命令行中或者anaconda prompt中执行命令进行操作 常用命令留存 conda create n Python27 python 3 7 conda create n new env clone original
  • ctfshow-萌新-web5( 利用位运算符控制SQL获取网站敏感信息)

    ctf show 萌新模块 we5关 这一关考察的是intval 函数转换字符串的特性和SQL注入的绕过思路 这一关过滤了单双引号 or 斜杠 加减乘除号 叹号 括号 select等关键字 推荐使用取反运算符 来控制SQL语句 获取flag
  • springboot mysql serverTimezone url 设置时区

    serverTimezone GMT即可 spring datasource url jdbc mysql 127 0 0 1 3306 XXX useUnicode true characterEncoding utf8 serverTi
  • 机器学习-人工智能大数据,公开的海量数据集下载

    数据集的网站 1 Public Data Sets on Amazon Web Services AWS http aws amazon com datasets Amazon从2008年开始就为开发者提供几十TB的开发数据 2 Yahoo
  • macbook中m1安装vmware和centos

    下载vmware 链接 https pan baidu com s 14VWwKvAx2ep4MLd BVzHBg 提取码 aw60 或者去官网下载 vwmare官网下载https customerconnect vmware com do
  • Ubuntu18.04开机自动运行脚本

    参考 1 Ubuntu18 04 没有 etc rc local 这个文件 需自己创建 systemd 默认读取 etc systemd system 下的配置文件 该目录下的文件会链接 lib systemd system 下的文件 执行
  • (send disconnect: Broken pipe)让Mac终端保持(SSH)与远程的连接状态

    编辑 sudo vim etc ssh ssh config 添加以下设置可解决这个问题 断开时重试连接的次数 ServerAliveCountMax 5 每隔5秒自动发送一个空的请求以保持连接 ServerAliveInterval 5
  • MYSQL 转义字符

    1 是 MySQL 的转义符 避免和 mysql 的本身的关键字冲突 只要你不在列名 表名中使用 mysql 的保留字或中文 就不需要转义 所有的数据库都有类似的设置 不过mysql用的是 而已 通常用来说明其中的内容是数据库名 表名 字段
  • Unity3D 射线法获取被点击对象的名称

    void Update if Input GetMouseButton 0 Ray ray Camera main ScreenPointToRay Input mousePosition RaycastHit hitInfo if Phy
  • ICMP识别二层为广播帧则不发送ICMP目的端口不可达报文

    拓扑图 前提 二层交换机转发数据时不改变帧头中任何字段的数据 正常情况下 在主机0上构造一个普通的UDP用户数据报报文给主机1 报文中的UDP首部中的目的端口字段填写一个不可能使用的端口号 则主机1在收到此报文后发现本主机上没有进程监听这个
  • Flutter学习第三课-布局组件 Stack和Positioned

    层叠布局 子组件根据距父容器四个角的位置来确定自己位置 子元素按照代码中声明的顺序作为层级 最后一个声明的子元素会放置在最上层 Flutter中使用Stack和Positioned这两个组件来配合使用决定子元素的坐标位置 Stack Sta
  • 【Notepad】Notepad++ 安装XML/Json插件,格式化xml/json文件

    XML插件安装 1 打开Notepad 软件 2 菜单栏选择插件 选择 插件管理 3 搜索 XML 插件 找到该插件后 勾选该文件Npp Xml Treeview 点击 安装 4 安装成功后 重启Notepad 如果没有成功 多试几次 5
  • 一幅图弄清DFT与DTFT,DFS的关系

    http www cnblogs com BitArt archive 2012 11 24 2786390 html 很多同学学习了数字信号处理之后 被里面的几个名词搞的晕头转向 比如DFT DTFT DFS FFT FT FS等 FT和