Розв’язання часу та частоти - це добре відома проблема, і дійсно існують підходи до її подолання. Для аудіосигналів деякі поширені методи включають: параметричні методи; адаптивна роздільна здатність (проаналізуйте за допомогою різних часових / частотних конфігурацій та закріпіть результати разом - Вень X. та М. Сендлер, "Композиційна спектрограма з використанням декількох перетворень Фур'є"); вейвлет / розклад на неповних базах; та використання фазової інформації для отримання точного розташування піків частоти (IFgram).
Однак виявляється, що графік, який ви показали, не використовує деяких із цих прийомів; тому я підозрюю, що це не те, що ви можете шукати. Здається, що на горизонтальній осі спостерігається деяке «розмазування» (наприклад, при t = 1,2s), і це є вірною ознакою того, що аналіз робився з великим перекриттям між шматками.
Дійсно, тривалість фрагмента та кількість кадрів аналізу за секунду не повинні бути пов’язані між собою, якщо ви дозволяєте кадрам перетинатися. Отже, якщо ви хочете використовувати кадр для аналізу довжиною 40 мс, ваша сітка не повинна бути:
кадр 1: t = 0..t = 40 мс; кадр 2: t = 40ms..t = 80ms
Це може бути:
кадр 1: t = 0..t = 40 мс; кадр 2: t = 10ms..t = 50ms
Таке перекриття може створити ілюзію більш високої часової роздільної здатності, не зменшуючи занадто сильний розмір вікна FFT. Зауважте, що це може допомогти лише в точному розташуванні події на осі часу - це не допоможе вирішити два події, що закриваються в часі ... Так само, як збільшення розміру FFT може допомогти визначити місце знаходження частоти піку, але не роздільна здатність двох суміжних піків частоти.