Предположим, что у нас есть набор данных, который может быть задан приблизительно на
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, но проблема в том, что это не учитывает небольшой шум в хорошем смысле. Если вы рассматриваете частоты, фон намного меньше сигнала, поэтому сплайн только обрезания может быть идеей, но это будет включать в себя преобразование Фурье назад и вперед, что может привести к плохому поведению. Другим способом будет скользящее среднее, но для этого также потребуется правильный выбор задержки.
Любые подсказки/книги или ссылки, как решить эту проблему?