«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно сгладить зашумленные кривые данных?

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

Опубликовано 6 ноября 2024 г.
Просматривать:882

How to Effectively Smoothen Noisy Data Curves?

Оптимальное сглаживание зашумленных кривых

Рассмотрим набор данных, аппроксимированный следующим образом:

import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)   np.random.random(100) * 0.2

Это включает 20% вариацию. Такие подходы, как UnivariateSpline и скользящие средние, имеют ограничения.

Фильтр Савицкого-Голея

Эффективным решением является фильтр Савицкого-Голея, доступный в scipy. Он использует регрессию наименьших квадратов для оценки значения в центре небольшого окна с помощью полинома. Затем окно смещается, чтобы повторить процесс, что приводит к оптимизации настройки каждой точки.

import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import savgol_filter

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)   np.random.random(100) * 0.2
yhat = savgol_filter(y, 51, 3) # window size 51, polynomial order 3

plt.plot(x,y)
plt.plot(x,yhat, color='red')
plt.show()
Заявление о выпуске Эта статья перепечатана по адресу: 1729411035. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3