gpt4 book ai didi

c++ - 如何使用 Savitzky-Golay 平滑系数计算导数

转载 作者:可可西里 更新时间:2023-11-01 18:38:50 32 4
gpt4 key购买 nike

Savitzky-Golay 平滑滤波器可用于计算系数,以便通过将系数应用于相邻值来计算平滑后的 y 值。平滑的曲线看起来很棒。

根据论文,系数也可用于计算高达 5 阶的导数。系数计算参数 ld 需要设置为导数阶。对于一阶导数,合适的设置为ld=1,导数的值为累加和除以采样间隔h。

我的问题是:如何利用得到的系数来计算累加和?导数是如何计算的?有示例代码吗?

最佳答案

要使用 Savitzky-Golay 平滑滤波器计算导数,多项式系数计算有一个参数 b,值 b[derivative] 必须设置为 1.0,数组 be 将用于 LU 分解调用。

正确求导的关键是理解多项式公式:Y = a0 + a1 * z + a2 * z^2 + ... + ak * z^k。 a0, a1, a2, ..., ak 的值实际上是移动窗口内的平滑值,z = (x - x0)/h,对于移动窗口的中心点,我们可以假设 z = 0,因为 x = x0。

因此,在导数计算中:

dY/dx = a1/h; and d2Y/dx2 = 2a2/h^2.

其中,a1、a2 是 y 的平滑值,使用在相应导数上计算的系数。

关于c++ - 如何使用 Savitzky-Golay 平滑系数计算导数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3571222/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com