scipy.signal.
cspline1d#
- scipy.signal.cspline1d(сигнал, lamb=0.0)[источник]#
Вычислить коэффициенты кубического сплайна для массива ранга 1.
Найти коэффициенты кубического сплайна для 1-D сигнала, предполагая зеркально-симметричные граничные условия. Чтобы получить сигнал обратно из представления сплайна, зеркально-симметрично сверните эти коэффициенты с окном КИХ длины 3 [1.0, 4.0, 1.0]/ 6.0.
- Параметры:
- сигналndarray
Массив ранга 1, представляющий выборки сигнала.
- lambfloat, опционально
Коэффициент сглаживания, по умолчанию 0.0.
- Возвращает:
- cndarray
Коэффициенты кубического сплайна.
Смотрите также
cspline1d_evalВычислить кубический сплайн в новом наборе точек.
Примеры
Мы можем фильтровать сигнал, чтобы уменьшить и сгладить высокочастотный шум с помощью кубического сплайна:
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from scipy.signal import cspline1d, cspline1d_eval >>> rng = np.random.default_rng() >>> sig = np.repeat([0., 1., 0.], 100) >>> sig += rng.standard_normal(len(sig))*0.05 # add noise >>> time = np.linspace(0, len(sig)) >>> filtered = cspline1d_eval(cspline1d(sig), time) >>> plt.plot(sig, label="signal") >>> plt.plot(time, filtered, label="filtered") >>> plt.legend() >>> plt.show()