如何通过频谱图绘制时频图?

时间:2018-11-04 14:02:35

标签: python scipy spectrogram

我正在尝试通过频谱图绘制时频图。我想制作一个折线图(x轴=时间,y轴=频率)。我使用Python和signal.stft函数并获得了一个频谱图。我还计算每个时间步的最大频率值。但是我找不到答案。有什么问题吗?

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么您想在频谱图上方绘制最大频率曲线吗?如果是,您可以在频谱图之后简单地调用matplotlib的第二个绘图调用。像这样:

f, t, Zxx = signal.stft(x, fs, nperseg=1000)
max_f = np.argmax(data, axis=1)  # data has shape (time x frequency)
plt.pcolormesh(t, f, np.abs(Zxx), vmin=0, vmax=amp)
plt.plot(np.arange(max_f.shape[0]), max_f)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()