use*_*395 9 python signal-processing scipy
功能spicy.signal.spectrogram:https
: //docs.scipy.org/doc/scipy/reference/generated/scipy.signal.spectrogram.html
和spicy.signal.stft:https : //docs.scipy.org/doc/scipy/reference/generated/scipy。 signal.stft.html
似乎做了一个非常相似的事情。
这两个函数有什么区别?
小智 16
Tl; dr:如果我用 SciPy 文档给出的输出写它:Sxx = Zxx ** 2
说明:频谱图和短时傅立叶变换是两个不同的对象,但它们却非常接近。
短时傅里叶变换 (STFT) 是一种傅里叶相关变换,用于确定信号局部部分的正弦频率和相位内容,因为它随时间变化。在实践中,计算 STFT 的过程是将较长时间的信号分成相等长度的较短段,然后在每个较短的段上分别计算傅立叶变换。这揭示了每个较短段的傅立叶频谱。然后通常将变化的光谱绘制为时间的函数。维基百科
另一方面,
频谱图是信号频率随时间变化的频谱的直观表示。维基百科
频谱图基本上在小窗口中切割您的信号,并显示一系列颜色,显示该特定频率的强度。与 STFT 完全一样。事实上,它正在使用 STFT。
现在,对于差异,根据定义,频谱图是信号的短时傅立叶变换 (STFT) 的平方幅度s(t):
spectrogram(t, w) = |STFT(t, w)|^2
scipy.signal.stft页面底部显示的示例显示:
>>> plt.pcolormesh(t, f, np.abs(Zxx), vmin=0, vmax=amp)
Run Code Online (Sandbox Code Playgroud)
它正在工作,您可以看到色标。但由于abs操作,它是线性的。
实际上,要获得真正的频谱图,应该这样写:
>>> plt.pcolormesh(t, f, Zxx ** 2, vmin=0, vmax=amp)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4953 次 |
| 最近记录: |