scipy.signal.savgol_coeffs¶
- scipy.signal.savgol_coeffs(window_length, polyorder, deriv=0, delta=1.0, pos=None, use='conv')[源代码]¶
计算一维萨维茨基-格雷冷杉过滤的系数。
- 参数
- window_length集成
过滤窗口的长度(即系数数)。 window_length 必须是奇数正整数。
- polyorder集成
用于拟合样本的多项式的阶数。 polyorder 必须小于 window_length 。
- deriv整型,可选
要计算的导数的顺序。这必须是非负整数。默认值为0,表示对数据进行过滤,不做区分。
- delta浮动,可选
将应用过滤的样本的间距。仅当Deriv>0时才使用此选项。
- pos整型或无型,可选
如果pos不是NONE,则指定窗口内的评估位置。默认值为窗口中间。
- use字符串,可选
‘conv’或‘dot’。此参数选择系数的顺序。缺省值是‘conv’,这意味着对系数进行排序,以便在卷积中使用。使用use=‘dot’时,顺序是颠倒的,所以过滤是通过用数据集给系数加点来应用的。
- 退货
- coeffs一维ndarray
过滤系数。
注意事项
0.14.0 新版功能.
参考文献
A.Savitzky,M.J.E.Golay,用简化的最小二乘法对数据进行平滑和微分。分析化学,1964,36(8),1627-1639页。
示例
>>> 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])
请注意,use=‘dot’只是将系数反转。
>>> 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])
x 包含抛物线x=t**2的数据,在t=-1,0,1,2,3处采样。 c 保存将在最后位置计算导数的系数。当点缀有 x 结果应该是6。
>>> x = np.array([1, 0, 1, 4, 9]) >>> c = savgol_coeffs(5, 2, pos=4, deriv=1, use='dot') >>> c.dot(x) 6.0