Savitzky-Golay 滤波的 Python 实现,蛮适合你拿来做平滑的。

带噪音的信号时,Savitzky-Golay 滤波就挺好用的,尤其是你不想丢失太多原始波形特征的时候。这个 Python 版本写得还不错,逻辑清晰,参数也比较好调。用在传感器数据或者光谱信号上都挺合适的。

比如你有一组波动大的实时采样数据,用sgolayfilt()这种函数直接平滑一下,效果挺稳的,曲线看起来顺眼多了。代码实现参考了 Matlab 的风格,但用 Python 重写后灵活性更高,兼容性也不错。

想了解更多原理或对比实现的话,也可以看看下面这些资料,像Matlab 实现Python 和 Matlab 代码对比这些都挺实用的。顺手还能看看Kalman 和贝叶斯滤波,思路也差不多,适合不同场景。

如果你在实时信号、光谱曲线或者其他高频噪声数据,那这个 Python 版本蛮值得一试的。配合NumPySciPy用效果更佳,记得调好窗口长度和多项式阶数,影响挺大的哦~