我试图平滑一系列数据以获得可以表示给定数据集的连续函数。结果表明,Savitzky-Golay方法可能是一个好方法。
现在,我对平滑和/或插值知之甚少,但乍一看,我设法获得了一个很好的结果:
蓝点是我的数据,红线是应用了 SG 过滤器的结果window = 15
和一个polynomial order = 13
。现在,我可以尝试一些窗口和顺序的其他组合,但更一般地说,我想知道这两个参数的最佳满足原则,特别是在我的情况下,数据没有平滑趋势(如正弦曲线)。
我试图平滑一系列数据以获得可以表示给定数据集的连续函数。结果表明,Savitzky-Golay方法可能是一个好方法。
现在,我对平滑和/或插值知之甚少,但乍一看,我设法获得了一个很好的结果:
蓝点是我的数据,红线是应用了 SG 过滤器的结果window = 15
和一个polynomial order = 13
。现在,我可以尝试一些窗口和顺序的其他组合,但更一般地说,我想知道这两个参数的最佳满足原则,特别是在我的情况下,数据没有平滑趋势(如正弦曲线)。
我们称之为窗口长度, 和是多项式的阶数。要意识到的一件重要事情是您使用了多项式近似数据点。这意味着您使用计算点多项式系数(一个阶多项式有系数)。因此,如果那么你根本不平滑,但你只是使用多项式来插值数据点。在您的示例中,几乎就是这种情况,即几乎没有任何平滑。一般来说,被选择远小于实现一些平滑(以及数值稳定性)。越小相比,你会得到更多的平滑。剩下的就是选择,但据我所知,没有一般准则。在实际示例中,我看到了多项式要么具有更大的值. 考虑到这一切,仍然需要尝试几种组合和并选择最适合您的应用程序的一种。
参数的选择还取决于您想要平滑的现象的性质。它有特征光谱吗?变化快还是慢?所有这些信息都可以帮助您设置顺序(较低的值无法应对高速率变化的现象)和窗口(窗口的大小与现象的频率有关)