SG滤波代码python
时间: 2023-08-01 10:14:50 浏览: 237
SG 滤波分析 python
以下是一个简单的 Python 代码示例,用于实现一维信号的 Savitzky-Golay 滤波:
```python
import numpy as np
from scipy.signal import savgol_filter
# 生成示例信号
x = np.linspace(0, 10, 100)
y = np.sin(x) + np.random.normal(0, 0.1, size=len(x))
# 应用 Savitzky-Golay 滤波
window_size = 5 # 窗口大小
order = 2 # 多项式阶数
y_smooth = savgol_filter(y, window_size, order)
# 绘制原始信号和滤波后的信号
import matplotlib.pyplot as plt
plt.plot(x, y, label='Original Signal')
plt.plot(x, y_smooth, label='Smoothed Signal')
plt.legend()
plt.show()
```
这段代码使用 `scipy` 库中的 `savgol_filter` 函数进行滤波。首先生成了一个示例信号 `y`,然后使用 `savgol_filter` 函数对其进行滤波,并将结果保存在 `y_smooth` 中。最后使用 `matplotlib` 库绘制了原始信号和滤波后的信号的图形。你可以根据自己的需求调整窗口大小和多项式阶数。
阅读全文