Я работаю с данными сигнала и пытаюсь найти экземпляр (или близкий к нему) до того, как начнет формироваться пик. Например:
Красные звезды и оранжевые крестики в настоящее время рассчитываются с использованием scipy.signal.find_peaks, чтобы найти первый минимальный пик перед двумя пиками, превышающими 50 подряд. Идеальное место, которое я хочу, это область с красными звездами и вторым и третьим оранжевым крестиком.
Моя проблема в том, что иногда нет минимального значения прямо перед тем, как образуется первый горб, и это вызывает проблему, как с первым оранжевым x слева.
Что было бы лучшим методом или способом улучшить мой текущий метод, чтобы получить это место прямо перед тем, как образуется горб (приблизительное расположение стрелки):
Мой текущий код выглядит примерно так, и он работает для синей и зеленой линий отдельно:
step_peak, _ = find_peaks(z, height=60, distance=40)
step_min, _ = find_peaks(-1*z, height=-60)
contact = []
for i in range(len(step_peak)-1):
if step_peak[i+1] - step_peak[i] < 100:
for min in reversed(step_min):
if min < step_peak[i]:
contact.append(min)
break
Этот метод работает примерно для 90% всего набора данных, лишь немногие из них заканчиваются как первый оранжевый x, который мне нужно учитывать.
Любая помощь будет принята с благодарностью.