有限长信号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. scrapy-splash抓取动态数据例子十三

    一.介绍 本例子用scrapy-splash通过搜狗搜索引擎,输入给定关键字抓取微信资讯信息. 给定关键字:数字:融合:电视 抓取信息内如下: 1.资讯标题 2.资讯链接 3.资讯时间 4.资讯来源 ...

  2. 【Cocos2d-x 3.0 基础系列一】 各类回调函数写法汇总

    一.button回调 1. Lambda 表达式,C++11 Lambda 赋予了Cocos2d-x 3.0创建回调函数的灵活性. auto itemNor = Sprite::create(&quo ...

  3. idea 配置Spring MVC

    一.idea 生成的Spring MVC 项目将<url-pattern>.form<url-pattern>改成<url-pattern>.do<url-p ...

  4. Unity多媒体展示项目经验分享-ImageEffect+动态绑定

    Unity多媒体展示项目经验分享-ImageEffect+动态绑定+网络通信 <ignore_js_op> “海尔科技展墙”是去年年初我们为上海家电博览会制作的一个多媒体展项,有限的工期以 ...

  5. Chrome 跨域调试

    1.关闭chrome浏览器(全部) 我们可以通过使用chrome命令行启动参数来改变chrome浏览器的设置,具体的启动参数说明参考这篇介绍.https://code.google.com/p/xia ...

  6. javascript 清空数组的方法

    1,splice var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了 2,lengt ...

  7. 通过浏览器查看nginx服务器状态配置方法

    通过浏览器查看nginx服务器状态配置方法 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了通过浏览器查看nginx服务器状态配置方法,本文讲解开启nginx-status的配 ...

  8. MVC中上传文件大小限制的解决办法

    在Web.Config文件中配置限制上传文件大小与时间. 需要在配置文件里面设置文件上传限定的两个属性值:maxAllowedContentLength,maxRequestLength 允许上传文件 ...

  9. 锁定窗口,禁止更新的win32函数

    [DllImport("user32.dll", EntryPoint = "LockWindowUpdate", SetLastError = true, E ...

  10. C# DateTime的11种构造函数

    别的也不多说没直接贴代码 using System; using System.Collections.Generic; using System.Globalization; using Syste ...