首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >scipy.signal.spectrogram和scipy.signal.stft有什么区别?

scipy.signal.spectrogram和scipy.signal.stft有什么区别?
EN

Stack Overflow用户
提问于 2019-04-15 06:58:59
回答 1查看 8.5K关注 0票数 14

功能

spicy.signal.spectrogramhttps://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.spectrogram.html

spicy.signal.stfthttps://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.stft.html

似乎做了一件非常相似的事。

这两种功能有什么区别?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-15 08:02:58

Tl;博士:如果我用SciPy文档给出的输出来写它:Sxx = Zxx ** 2

解释:谱图和短时傅里叶变换是两个不同的对象,但它们实际上是紧密相连的。

短时傅里叶变换(STFT)是一种与傅里叶相关的变换,用于确定信号局部截面随时间变化时的正弦频率和相位内容。在实际应用中,计算STFT的过程是将较长的时间信号划分为等长的较短的段,然后对每个较短的段分别计算傅里叶变换。这揭示了每个较短段的傅里叶谱。然后,人们通常把变化的光谱绘制成时间的函数。维基百科

另一方面,

谱图是一种随时间变化的信号频率谱的直观表示。维基百科

光谱图基本上是在小窗口中切断你的信号,并显示一系列的颜色,显示这个或那个特定频率的强度。和STFT完全一样。事实上,它使用的是STFT。

现在,对于差分,根据定义,光谱图是信号s(t)的短时傅里叶变换的平方数量级:

spectrogram(t, w) = |STFT(t, w)|^2

scipy.signal.stft页面底部显示的示例显示:

代码语言:javascript
复制
>>> plt.pcolormesh(t, f, np.abs(Zxx), vmin=0, vmax=amp)

它起作用了,你可以看到一个色标。但是它是线性的,因为abs操作。

在现实中,要获得真正的谱图,我们应该写:

代码语言:javascript
复制
>>> plt.pcolormesh(t, f, Zxx ** 2, vmin=0, vmax=amp)
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55683936

复制
相关文章

相似问题

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