欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据处理:应用Savitzky-Golay算法对数据进行平滑化处理

程序员文章站 2022-06-23 21:27:29
1...

概念

照抄百度百科,相关推导wiki可见https://en.wikipedia.org/wiki/Savitzky%E2%80%93Golay_filter英语wiki,部分用户可能不可见,原因大家都懂
Savitzky-Golay滤波拟合法是根据NDVI时间序列曲线的平均趋势,确定合适的滤波参数,用多项式实现滑动窗内的最小二乘拟合;利用Savitzky-Golay滤波方法(基于最小二乘的卷积拟合算法)进行迭代运算,模拟整个NDVI时序数据获得长期变化趋势。
非对称高斯函数拟合法是使用分段高斯函数(曲线)组合来模拟植被季相生长(物候)规律、一个组合代表一次植被盛衰过程,最后通过平滑连接各高斯拟合曲线,实现时间序列重建。具体过程包括:区间提取(在时间维选择一最大值或最小值区间作为局部拟合区间)、局部拟合(使用高斯拟合函数对局部区间数据进行拟合)、整体连接(将局部拟合结果合并)。
数据处理:应用Savitzky-Golay算法对数据进行平滑化处理

使用

这个算法可以对我们比较离散的点做平滑化处理
可用于数据预处理等,可以降低背景噪声,比如在使用SVM前做一下
scipy中的signal子模块能实现这样的功能

import scipy
scipy.signal.savgol_filter(x, window_length, polyorder)

x为要滤波的信号
window_length即窗口长度
取值为奇数且不能超过len(x)。它越大,则平滑效果越明显;越小,则更贴近原始曲线。
polyorder为多项式拟合的阶数。
它越小,则平滑效果越明显;越大,则更贴近原始曲线。

本文地址:https://blog.csdn.net/STL_CC/article/details/107240548