生成savitzky-golay代码
时间: 2023-08-31 13:10:13 浏览: 157
Savitzky-golay滤波在陀螺仪角加速度测量中的应用
以下是Python中使用SciPy库实现Savitzky-Golay滤波器的示例代码:
```python
from scipy.signal import savgol_filter
import numpy as np
# 生成测试数据
x = np.linspace(-5, 5, num=100)
y = np.sin(x) + np.random.normal(0, 0.1, size=x.shape)
# 应用Savitzky-Golay滤波器
y_filtered = savgol_filter(y, window_length=11, polyorder=2)
# 绘制原始数据和滤波后的数据
import matplotlib.pyplot as plt
plt.plot(x, y, label='Original')
plt.plot(x, y_filtered, label='Savitzky-Golay')
plt.legend()
plt.show()
```
在该代码中,`savgol_filter()`函数接受两个参数:`window_length`和`polyorder`。它们分别代表滑动窗口的大小和拟合多项式的阶数。可以根据具体需求进行调整。在上述示例中,我们使用了一个11个点的窗口和2阶多项式来平滑数据。
阅读全文