scipy.signal.

savgol_coeffs#

scipy.signal.savgol_coeffs(window_length, polyorder, deriv=0, delta=1.0, pos=None, use='conv')[Quelle]#

Berechnet die Koeffizienten für einen 1-D Savitzky-Golay FIR-Filter.

Parameter:
window_lengthint

Die Länge des Filterfensters (d. h. die Anzahl der Koeffizienten).

polyorderint

Der Grad des Polynoms, das zur Anpassung der Abtastwerte verwendet wird. polyorder muss kleiner als window_length sein.

derivint, optional

Der Grad der Ableitung, die berechnet werden soll. Dies muss eine nichtnegative Ganzzahl sein. Der Standardwert ist 0, was bedeutet, dass die Daten ohne Differenzierung gefiltert werden.

deltafloat, optional

Der Abstand der Abtastwerte, auf die der Filter angewendet wird. Dies wird nur verwendet, wenn deriv > 0.

posint oder None, optional

Wenn pos nicht None ist, gibt es die Auswertungsposition innerhalb des Fensters an. Der Standardwert ist die Mitte des Fensters.

usestr, optional

Entweder ‘conv’ oder ‘dot’. Dieses Argument wählt die Reihenfolge der Koeffizienten aus. Der Standardwert ist ‘conv’, was bedeutet, dass die Koeffizienten so geordnet sind, dass sie in einer Faltung verwendet werden. Mit use=’dot’ wird die Reihenfolge umgekehrt, sodass der Filter durch Skalarprodukt der Koeffizienten mit dem Datensatz angewendet wird.

Rückgabe:
coeffs1-D ndarray

Die Filterkoeffizienten.

Siehe auch

savgol_filter

Hinweise

Hinzugefügt in Version 0.14.0.

Referenzen

A. Savitzky, M. J. E. Golay, Smoothing and Differentiation of Data by Simplified Least Squares Procedures. Analytical Chemistry, 1964, 36 (8), S. 1627-1639. Jianwen Luo, Kui Ying und Jing Bai. 2005. Savitzky-Golay smoothing and differentiation filter for even number data. Signal Process. 85, 7 (Juli 2005), 1429-1434.

Beispiele

>>> import numpy as np
>>> from scipy.signal import savgol_coeffs
>>> savgol_coeffs(5, 2)
array([-0.08571429,  0.34285714,  0.48571429,  0.34285714, -0.08571429])
>>> savgol_coeffs(5, 2, deriv=1)
array([ 2.00000000e-01,  1.00000000e-01,  2.07548111e-16, -1.00000000e-01,
       -2.00000000e-01])

Beachten Sie, dass use=’dot’ einfach die Koeffizienten umkehrt.

>>> savgol_coeffs(5, 2, pos=3)
array([ 0.25714286,  0.37142857,  0.34285714,  0.17142857, -0.14285714])
>>> savgol_coeffs(5, 2, pos=3, use='dot')
array([-0.14285714,  0.17142857,  0.34285714,  0.37142857,  0.25714286])
>>> savgol_coeffs(4, 2, pos=3, deriv=1, use='dot')
array([0.45,  -0.85,  -0.65,  1.05])

x enthält Daten der Parabel x = t**2, abgetastet bei t = -1, 0, 1, 2, 3. c enthält die Koeffizienten, die die Ableitung an der letzten Position berechnen. Wenn sie mit x skalar multipliziert werden, sollte das Ergebnis 6 sein.

>>> x = np.array([1, 0, 1, 4, 9])
>>> c = savgol_coeffs(5, 2, pos=4, deriv=1, use='dot')
>>> c.dot(x)
6.0