有限长信号DFT结果的频谱泄露

提出问题

  1. 依照我们在“信号与系统”这门课建立的印象,不管如何频率的连续正弦信号,其频谱应当是两根笔直的谱线(含负频率)
  2. 但是,当我们把一段正弦信号採样之后的数据拿去做DFT之后DFT的结果总是两根笔直的谱线么?
  3. 假设不总是。那么为什么有时候是,有时候又不是呢?

Case1: 信号採样长度64点,採样率32kHz,正弦频率1kHz

这时信号採样包括了整数个(2个)周期的正弦信号。

此时DFT的结果和我们想象中的连续时间域的频谱是很类似的


Case2: 正弦信号频率1.1kHz,採样率32kHz,数据长度 64,

此时包括 64/(32kHz/1.1kHz) = 2.2个周期的样点

Case3: 正弦信号频率1kHz,採样率32kHz,

数据长度 60点此时包括 60/(32kHz/1kHz) = 1.875个周期的样点


仿真分析

通过改动仿真的參数,我们惊奇的发现, 相同是单一频率的正弦波。直接用DFT进行频谱分析的结果却大不一样。不知道您是否感到吃惊。多年前我第一次自己做实验得到这个结论的时候。实在是感到很吃惊。由此我们能够看到“直接对信号进行DFT来分析频谱” 这样的分析方式的结果的准确性波动太大。比方以上的结果中,在CASE1中的结果很之好,好的接近理想程度了,现实世界中的电子热运动噪声才-180dB,案例1中的噪声被压制到了-300dB下面。已经很满足project上面的測量需求了。

由此,我们開始思考。对一个连续时间信号进行採样。对信号的有限长样点进行DFT的结果,并不总是和该信号在连续时间域的频谱一致,从上面的实验能够看出,似乎仅仅要是有限长採样中包括了整数个周期的信号样点。DFT的结果就和连续域频谱很一致。

然而这为我们带来新的问题。当我们要分析一个有限带宽信号的频谱成分时。我们是不可能让有限长的信号採样里恰好包括了全部频率成分的整数个周期。

尤其是当这个信号的频率成分很丰富的时候。接下来我们要做两件事情:

分析一下。为什么非整数个周期的信号採样的DFT结果会“走样”

如何才干让非整数个周期的信号採样的DFT结果和信号在连续时间域的频谱尽量的“类似”,假设的确存在某种方法,那么这样的方法是有代价的么?

(待续)

參考资料:基于DFT的谱分析 - ECDAV

大话DFT频谱分析(并不是我的话)的更多相关文章

  1. 正余弦信号的DFT频谱分析

    一般的,对正余弦信号进行採样并DFT运算,画出频谱图,会发现频谱并不干净.这样的现象称为频谱泄漏.由于DFT运算仅仅能是有限序列,突然的截断产生了泄漏. 会有这种特殊情况.当採样截取的刚好是整数个周期 ...

  2. 余弦信号DFT频谱分析(继续)

    以前谈到序列的实际长度可以通过零填充方法加入,使得最终增加N添加表观分辨率. 但它并没有解决泄漏频率的问题. 根本原因在于泄漏窗口选择的频率. 由于矩形窗突然被切断,频谱旁瓣相对幅度过大,造成泄漏分量 ...

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

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

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

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

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

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

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

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

  7. 大话keepalive

    大话keepalive 我们说到keepalive的时候,需要先明确一点,这个keepalive说的是tcp的还是http的. tcp的keepalive是侧重在保持客户端和服务端的连接,一方会不定期 ...

  8. 我也来说说DDD~大话目录

    回到占占推荐博客索引 DDD之前没有接触过,但一但有了接触就一发不可收拾,他会带去进入一个全新的世界! DDD不是新技术,而是新思想,新模式,是软件开发领域的一次突破,它更接近于业务,对于业务的改动它 ...

  9. Atitti 大话存储读后感 attilax总结

    Atitti 大话存储读后感 attilax总结 1.1. 大话存储中心思想(主要讲了磁盘文件等存储)1 1.2. 最耐久的存储,莫过于石头了,要想几千万年的存储信息,使用石头是最好的方式了1 1.3 ...

随机推荐

  1. javascript专业八级测试答案整理

    前几天社区的群里森破发了一个这样的链接: http://ourjs.com/detail/52fb82e13bd19c4814000001 做了一遍后突然对人生感到了迷茫,本着不能只有我一个人伤心的原 ...

  2. mongodb配置与使用

    mongodb.dll文件下载地址 http://pecl.php.net/package/mongodb/ 或者 https://windows.php.net/downloads/pecl/rel ...

  3. jQuery:多个AJAX/JSON请求相应单个回调

    原文链接:jQuery: Multiple AJAX and JSON Requests, One Callback 原文日期: 2014年4月15日 翻译日期: 2014年4月22日 翻译人员: 铁 ...

  4. 读取Properties配置文件, 四种方式都可以得到webroot/WEB-INF/classes这个路径

    下面四种方式都可以得到webroot/WEB-INF/classes这个路径,有什么区别,哪种方式最好? String path = this.getClass().getResource(" ...

  5. Objective-C学习笔记(二十一)——函数的返回值与參数类型

    我们在之前的博客中涉及到的函数都没有參数,同一时候返回值也为void,即不须要返回值. 可是在以后的开发中.函数返回值和參数是必须涉及到的. 所以如今我们来讨论这个问题.我们还是以People类为例. ...

  6. Linux 多线程环境下 进程线程终止函数小结(转)

    pthread_kill: pthread_kill与kill有区别,是向线程发送signal.,大部分signal的默认动作是终止进程的运行,所以,我们才要用signal()去抓信号并加上处理函数. ...

  7. 《深入PHP:面向对象、模式与实践》(二)

    第4章 高级特性 本章内容提要: 静态属性和方法:通过类而不是对象来访问数据和功能 抽象类和接口:设计和实现分离 错误处理:异常 Final类和方法:限制继承 拦截器方法:自动委托 析构方法:对象销毁 ...

  8. java 开发中的debug

    mysql 的 级联删除与级联更新 create table student( id int, departmentId int, foreign key(departmentId) referenc ...

  9. Function.prototype.bind、call与apply方法简介

    前言 前段时间面试遇见一题,题目内容大概是 function Parent() { this.prop = 'parent'; } Parent.prototype.get = function() ...

  10. NodeJS 安装不存在的模块

    设置npm镜像: npm config set registry https://registry.npm.taobao.org 我遇到的报错情况: Error: Cannot find module ...