有限长信号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. 使用Python开发SQLite代理服务器(转载)

    转载:https://mp.weixin.qq.com/s?timestamp=1498531736&src=3&ver=1&signature=Eq6DPvkuGJi*G5s ...

  2. gensim加载word2vec训练结果(bin文件)并进行相似度实验

    # -*- coding: utf-8 -*- import gensim # 导入模型 model = gensim.models.KeyedVectors.load_word2vec_format ...

  3. password技术应用设计实践-安全信息传输系统(SITS)(用Java实现DES、RSA、MD5算法)

    本系统包含五个模块,注冊模块.登录模块.RSA算法模块.DES算法模块.MD5算法模块. 这五个模块每个实现不同的功能. 注冊模块实现将username和password写入文件里,登录模块则负责将其 ...

  4. Java定时任务的三种实现方法

    译者注:个人觉得用定时任务来跑垃圾回收不是很好的例子,从译者接触到的项目来看,比较常见的是用定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法:1.普通thre ...

  5. python——二进制/十进制等转换

    To 十进制 八进制: >>> int('10', 8) ->8   To 十六进制: 十进制: >>> hex(12) ->‘0xc’ 二进制: &g ...

  6. Genymotion 在win10 下的安装

    首先我在Genymotion官网上并没有找到他的安装程序.据说是在注冊后,通过邮件里的链接下载,结果也没有看到.最后详细在哪下的,忘了收藏.我下的是 genymotion-2.5.3-vbox.exe ...

  7. java之this关键字

    this使用范围 1.在类的方法定义中使用的this关键字代表调用该方法对象的引用. 2.当必须指出当前使用方法的对象是谁时,要使用关键字this. 3.有时使用this可以处理方法中成员变量和参数重 ...

  8. How to set Selenium Python WebDriver default timeout?

    Trying to find a good way to set a maximum time limit for command execution latency in Selenium Pyth ...

  9. logstash5 单实例多配置文件实现

    有些服务器上有多个服务,要使用单个logstash收集日志,因为有多个配置文件,刚开始使用 /opt/app/logstash/bin/logstash "--path.settings&q ...

  10. mfs挂载

    安装客户端,客户端安装见官网 记住mfs需要dns或者修改hosts文件,实现主机名和ip对应 在mfsmaster修改mfsexports.cfg 修改挂载参数,根须需要 10.0.67.0/24  ...