Как построить частотно-временной график через спектрограмму? - PullRequest
0 голосов
/ 04 ноября 2018

Я пытаюсь построить частотно-временной график через спектрограмму. Я хочу сделать один линейный график (ось х = время, ось у = частота). Я использую Python и функцию signal.stft и получаю спектрограмму. Я также рассчитываю максимальное значение частоты на каждом временном шаге. Но я не могу получить ответ. В чем проблема?

1 Ответ

0 голосов
/ 04 ноября 2018

Если я вас правильно понял, вы хотите построить кривую максимальной частоты поверх спектрограммы? Если да, вы можете просто вызвать второй вызов графика 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()
...