Как агрессивно сгладить эти кривые и сохранить их фундаментальную тенденцию?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как агрессивно сгладить эти кривые и сохранить их фундаментальную тенденцию?

Сообщение Anonymous »

У меня есть набор из 10 сигналов, которые выглядят следующим образом:
Изображение

Они очень шумные, хотя большая часть шума — выбросы. Мне нужно сделать их сглаживающими таким образом, чтобы сохранить количество точек в каждом сигнале.
До сих пор я пробовал медианный фильтр с двойным применением и кое-что получил. близко к тому, что я хочу, но, к сожалению, не для всех из них работает хорошо и не совсем надежно выглядит в начале сигнала:
[img]https://i. sstatic.net/pBxqHYHf.png[/img]

Есть ли какой-нибудь полезный метод в этом случае? Мои знания в этой области очень ограничены, в основном, только медианной фильтрацией и фильтрацией Савицкого-Голея, которая, похоже, мало что дает.
Мне нужны очень плавные линии, сохраняющие основной тренд (не супер- точно) и никаких выбросов/колебаний, поскольку я собираюсь сравнить их друг с другом на основе сходства тенденций.

Данные (список из 10 списков)< /h3>
Ссылка: https://jpst.it/3VUqP

MWE
data = []
for filename in filenames:
for fork in json.load(open(PATH)):
# Smoothing
smooth_fork = median_filter(median_filter(fork, size=150), size=50)

# Normalization
data.append(list((np.array(smooth_fork) - np.min(smooth_fork)) / (np.max(smooth_fork) - np.min(smooth_fork))))

plt.figure()
for fork in data:
plt.plot(fork)
plt.show()


Подробнее здесь: https://stackoverflow.com/questions/790 ... ntal-trend
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»