如何选择数据平滑处理中的均值、中值或Savitzky-Golay滤波器?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1178个文字,预计阅读时间需要5分钟。
平均滤波器+平均滤波器是一种使用频率很高的线性滤波器。其实现原理很简单,就是指定一个长度大小为奇数的窗口,使用窗口中所有数据的平均值来替换中间位置的值。
均值滤波器 均值滤波器是一种使用频次较高的线性滤波器。它的实现原理很简单,就是指定一个长度大小为奇数的窗口,使用窗口中所有数据的平均值来替换中间位置的值,然后平移该窗口,平移步长为 1,继续重复上述操作,直至滑动到时序数据的末尾,如此一来,对时序数据的过滤操作就结束了。均值滤波器的思路简单,计算速度快,但是它容易被窗口中的极值点或者峰值所左右,不能很好地保留序列的边缘信息,在去噪的同时也对数据信号的细节特征产生了一定的破坏,不能很好地去除噪声点,这极大地影响了模型的预测精度。 均值滤波的公式 其中,m表示窗口大小,xi表示窗口中的第 i个数据,x表示窗口中所有数据的均值。 python代码实现均值滤波# 1. 均值滤波函数 def moving_average(data, window=5): size = window - 1 arr_value = list(data.values) fill_left = arr_value[0] for i in range(size): arr_value.insert(0, fill_left) dat = pd.Series(arr_value) dat_roll = dat.rolling(window).mean() return dat_roll.dropna().reset_index(drop=True)
具体应用到数据上:高频数据未完全拟合,其他数据也与源数据拟合程度一般
中值滤波器 中值滤波是一种非线性的滤波算法,它是将指定长度大小为奇数的窗口中的所有数据按从小到大的顺序进行排列,并将排好序的数据的中值取代窗口中间的值。中值滤波克服了均值滤波所存在的问题,对窗口中的极端值不敏感,从而可以有效保留区域中的边缘信息,并且能有效抑制椒盐噪声和脉冲噪声,避免细节特征的丢失。本文共计1178个文字,预计阅读时间需要5分钟。
平均滤波器+平均滤波器是一种使用频率很高的线性滤波器。其实现原理很简单,就是指定一个长度大小为奇数的窗口,使用窗口中所有数据的平均值来替换中间位置的值。
均值滤波器 均值滤波器是一种使用频次较高的线性滤波器。它的实现原理很简单,就是指定一个长度大小为奇数的窗口,使用窗口中所有数据的平均值来替换中间位置的值,然后平移该窗口,平移步长为 1,继续重复上述操作,直至滑动到时序数据的末尾,如此一来,对时序数据的过滤操作就结束了。均值滤波器的思路简单,计算速度快,但是它容易被窗口中的极值点或者峰值所左右,不能很好地保留序列的边缘信息,在去噪的同时也对数据信号的细节特征产生了一定的破坏,不能很好地去除噪声点,这极大地影响了模型的预测精度。 均值滤波的公式 其中,m表示窗口大小,xi表示窗口中的第 i个数据,x表示窗口中所有数据的均值。 python代码实现均值滤波# 1. 均值滤波函数 def moving_average(data, window=5): size = window - 1 arr_value = list(data.values) fill_left = arr_value[0] for i in range(size): arr_value.insert(0, fill_left) dat = pd.Series(arr_value) dat_roll = dat.rolling(window).mean() return dat_roll.dropna().reset_index(drop=True)
具体应用到数据上:高频数据未完全拟合,其他数据也与源数据拟合程度一般
中值滤波器 中值滤波是一种非线性的滤波算法,它是将指定长度大小为奇数的窗口中的所有数据按从小到大的顺序进行排列,并将排好序的数据的中值取代窗口中间的值。中值滤波克服了均值滤波所存在的问题,对窗口中的极端值不敏感,从而可以有效保留区域中的边缘信息,并且能有效抑制椒盐噪声和脉冲噪声,避免细节特征的丢失。
