原址: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),

  图(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分析简单信号的频谱。

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

几幅图片弄清DFT、DTFT、DFS的关系 数字信号处理的更多相关文章

  1. 转载:一幅图弄清DFT与DTFT,DFS的关系

    转载:http://www.cnblogs.com/BitArt/archive/2012/11/24/2786390.html 很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DF ...

  2. DFT,DTFT,DFS,FFT区别

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

  3. FS,FT,DFS,DTFT,DFT,FFT的联系和区别 数字信号处理

    DCT变换的原理及算法 文库介绍 对于初学数字信号处理(DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. 学习过<高等数学>和<信号与系统 ...

  4. 数字信号处理实验(一)——DTFT

    1.MATLAB自编绘图函数 function [] = signal_write(X,w,flag) % X:数据 % w:频率向量 magX=abs(X);angX=angle(X); realX ...

  5. hdu1716--全排列(dfs+有重复数字+输出格式)

    Ray又对数字的列产生了兴趣: 现有四张卡片,用这四张卡片能排列出很多不同的4位数,要求按从小到大的顺序输出这些4位数.  Input每组数据占一行,代表四张卡片上的数字(0<=数字<=9 ...

  6. 10 从DFS到DFT

    从DFS到DFT 周期序列的级数展开 正如连续时间周期信号可以表示为一系列正弦信号的和的形式,周期序列也可以表示为一系列正弦之和的形式,假设序列\(\tilde{x}[n]\)的周期为\(N\),那 ...

  7. FS,FT,DFT,DFS和DTFT的关系

    对于初学数字信号(Digital Signal Processing,DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. FS:时域上任意连续的周期信号可以分 ...

  8. DFT、DTFT、DFS、FFT之间的关系

    DFT.DTFT.DFS.FFT.FT.FS之间的关系 FT和FS是研究连续信号的,在数字信号处理中不涉及. 主要是前四种的关系: DFT(Discrete Fourier Transform):离散 ...

  9. FS,FT,DFS,DTFT,DFT,FFT的联系和区别

    DCT变换的原理及算法 文库介绍 对于初学数字信号处理(DSP)的人来说,这几种变换是最为头疼的,它们是数字信号处理的理论基础,贯穿整个信号的处理. 学习过<高等数学>和<信号与系统 ...

随机推荐

  1. NOIP 2010 P1514 引水入城

    题目:传送门 题目概要:有一个n行m列的矩阵,每一个格子都有一个高度,路径只能从高处向低处扩散,问你如果最后一行可以全部被覆盖,最少要从第一行多少个格子开始,如果不能使最后一行全部被覆盖,求有多少个格 ...

  2. Jupyter Notebook 快捷键(基本)

    Jupyter Notebook 快捷键 Jupyter Notebook 有两种键盘输入模式.编辑模式,允许你往单元中键入代码或文本:这时的单元框线是绿色的.命令模式,键盘输入运行程序命令:这时的单 ...

  3. Mybatis入门(附源码压缩包下载)

    首先,来个项目全景预览,文章尾部附上Demo下载链接 [1]pom.xml配置(加入jar包) <project xmlns="http://maven.apache.org/POM/ ...

  4. PHP json_encode 中文不转码,低版本处理

    5.4 以上版本可以使用 JSON_UNESCAPED_UNICODE  来解决,但是低版本的,需要用其他方式 需要注意的是,encode_json参数为数组,不能为对象 function encod ...

  5. mysql 5.7 创建函数报错,This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creat

    今天用命令创建函数, 报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration ...

  6. 7、numpy——广播

    1.广播的引出 广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行. 如果两个数组 a 和 b 形状相同,即满足 a. ...

  7. 4、numpy——创建数组

    1.普通创建——np.array() 创建数组最简单的方法就是使用array函数.它接收一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组. import numpy as ...

  8. hdu5943 Kingdom of Obsession 二分图+打表找规律

    题目传送门 Kingdom of Obsession Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Ja ...

  9. React Native实践总结一

    一.React的世界观1.通过改变state来改变视图视图不用考虑如何改变自己,把state画出来即可.2.变量不可变通过创建一个新的state来更改state,使得变更可追踪,不容易因为其他部分修改 ...

  10. Docker Swanm集群配置

    首先 可以用ContOS虚拟机   克隆  5个虚拟机,注意(克隆主机必须装了Docker,克隆后,克隆机都会有Docker) 配置 网络 克隆CentOS虚拟机 最后和到如下结果 打开2377端口 ...