首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scipy.signal.spectrogram nfft参数

scipy.signal.spectrogram nfft参数
EN

Stack Overflow用户
提问于 2017-05-30 17:32:34
回答 1查看 8.3K关注 0票数 3

nfft参数在这个函数中意味着什么?有关文档https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.signal.spectrogram.html,请参阅此链接

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-30 20:51:02

scipy.signal.spectrogram的工作方式是将信号分割成(部分重叠的)时间段,然后从每个片段的快速傅里叶变换 (FFT)中计算功率谱。可以使用nperseg参数来控制这些段的长度,它允许您调整由于不确定原理而产生的频率和时间域中的分辨率之间的权衡。使nperseg变大会使您在频域获得更高的分辨率,而在时间域中则会以较低分辨率为代价。

除了改变进入每一段的样本数外,有时还需要在每个片段上应用零填充,然后再进行FFT。这就是nfft参数的意义所在:

nfft:int,可选 如果需要零填充FFT,则使用FFT的长度。如果没有,则FFT长度为nperseg。默认为无。

默认情况下是nfft == nperseg,这意味着不使用零填充.

你为什么要申请零填充?

  • 原因之一是这使得FFT的结果更长,这意味着你最终会得到更多的频率箱和一个在频率维度上看起来“更平滑”的频谱图。但是,请注意,这实际上并没有在频域中提供更多的分辨率--它基本上是对FFT结果进行sinc插值的有效方法(更详细的解释请参见这里 )。
  • 从性能的角度来看,对段进行填充,使其长度为2的幂可能是有意义的,因为基-2的FFT比一般的方法要快得多。
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44268488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档