侧边栏壁纸
博主昵称
Washy

积极乐观的前行~

  • 累计撰写 73 篇文章
  • 累计收到 2 条评论

Savitzky-Golay滤波器原理-01

Washy
2024-05-06 / 0 评论 / 373 阅读 / 正在检测是否收录...

目录

0 前言

最近在看文章时,发现有人使用Savitzky-Golay滤波器对数据进行预处理,提取背景值,尝试之后发现效果显著。因此,简单研究下Savitzky-Golay滤波器的原理。

1 Savitzky-Golay滤波器原理

1.1 简介

Savitzky-Golay滤波器(通常简称为S-G滤波器)最初由Savitzky和Golay于1964年提出,发表于Analytical Chemistry 杂志。之后被广泛地运用于数据流平滑除噪,是一种在时域内基于局域多项式最小二乘法拟合的滤波方法。这种滤波器最大的特点在于在滤除噪声的同时可以确保信号的形状、宽度不变[1]

Savitzy-Golay 卷积平滑算法是移动平滑算法的改进。用 Savitzky-Golay 方法进行平滑滤波,可以提高光谱的平滑性,并降低噪音的干扰。Savitzy-Golay 平滑滤波的效果,随着选取窗宽不同而不同,可以满足不同场合的需求[1]

1.2 推导

思想:使用一定长度窗口的数据对窗口中心的数据进行平滑处理。

设窗口的宽度为2m+1,窗口内的数据值为yii=m,m+1,,1,0,1,,m1,m,使用n阶多项式对其进行拟合,有
fi=f(i)=k=0nbkik
那么拟合数据与原始数据的残差平方和为
R=i=mm(fiyi)2=i=mm(k=0nbkikyi)2
使用最小二乘的思想,为了使拟合效果最好,需要使残差的平方和最小,则需要使得所有拟合系数的一阶偏导为零。对于第l个系数bl
Rbl=2i=mm(k=0nbkikyi)il=0
整理后可得
i=mmyiil=k=0nbki=mmik+l
对于l[0,n]可以得到n+1个方程,联立后可以解得所有系数bl。写成矩阵形式,有
[(m)000m0(m)l0lml(m)n0nmn][(m)0(m)k(m)n000kmnm0mkmn][b0bkbn]=[(m)000m0(m)l0lml(m)n0nmn][ymy0ym]
得到所有系数后,将其代回拟合方程,并计算中心点处的拟合值
f0=f(0)=b0
此时,我们就得到了Savitzky-Golay滤波器平滑后的中心点的数值大小。

1.3 一阶形式

当使用一阶多项式进行拟合时,代入上一节矩阵形式,很容易可以得到
[111m0m][1m101m][b0b1]=[111m0m][ymy0ym]
整理后可得
{b0=i=mmyi/i=mm1b1=i=mmyii/i=mmi2
从而可以得到中心点处的拟合值为
f0=b0=i=mmyi/(2m+1)
此即为滑窗平均的表达式。

参考:

  1. 【UWB】Savitzky Golay filter SG滤波器原理讲解
  2. Savitzky-Golay滤波器原理阐述
1

评论 (0)

昵称
邮箱
网址
取消