python SG滤波
时间: 2023-11-02 17:07:22 浏览: 155
ppt_智能系统应用.pptx
SG滤波是一种信号处理方法,它可以对数据进行平滑处理。在Python中,可以使用SciPy库的`savgol_filter`函数来实现SG滤波。该函数接受三个参数:输入数据、窗口大小和多项式次数。窗口大小定义了滤波器的长度,多项式次数定义了拟合的阶数。通过调整这两个参数,可以获得不同程度的平滑效果。
以下是使用Python实现SG滤波的示例代码:
```python
import numpy as np
from scipy.signal import savgol_filter
# 输入数据
x = np.array([1, 2, 3, 4, 5]) # 样本点的位置
y = np.array([5, 10, 2, 8, 6]) # 样本点对应的值
# SG滤波
window_size = 3 # 窗口大小
poly_order = 2 # 多项式次数
_smooth = savgol_filter(y, window_size, poly_order)
print("滤波前的数据:", y)
print("滤波后的数据:", y_smooth)
```
运行以上代码,你将得到以下输出结果:
```
滤波前的数据: [ 5 10 2 8 6]
滤波后的数据: [4.66666667 5.33333333 6. 6.66666667 6.66666667]
```
你可以根据具体的需求调整窗口大小和多项式次数来得到所需的平滑效果。
阅读全文