как использовать гладкий коэффициент Савицкого-Голея для вычисления производных

Сглаживающий фильтр Савицкого-Голея можно использовать для вычисления коэффициентов, чтобы вычислить сглаженные значения y путем применения коэффициентов к соседним значениям. Сглаженная кривая выглядит великолепно.

Согласно документам, коэффициенты также можно использовать для вычисления производных до 5-го порядка. Параметр расчета коэффициентов ld должен быть установлен в порядке производных. Для первой производной подходящей настройкой является ld=1, а значением производной является накопленная сумма, деленная на интервал дискретизации h.

У меня вопрос: как использовать полученные коэффициенты для расчета накопленной суммы? как рассчитывается производная? любой пример кода?


person Lin Song Yang    schedule 26.08.2010    source источник
comment
Запись в Википедии о числовом сглаживании и дифференцировании помогла мне разработать фильтр S-G.   -  person Doug Currie    schedule 26.08.2010
comment
В вики нет ясности относительно отношения сглаженных значений Y к значениям {a0,a1,a2,...,ak}, особенно при перемещении x. Итак, чтобы вычислить первую производную в точке (xi,yi), всегда ли мы предполагаем, что Z = 0? или использовать формулу (a1 + 2 * a2 * z + 3 * a3 * z^2) / h? каковы значения a1, a2 и a3 по отношению к yi или сглаженному Yi? Формула действительно дает правильную форму, но в сглаженной вершине первой производной, возьмем в качестве примера синусоиду, значение в сглаженных точках должно быть равно нулю, как этого добиться?   -  person Lin Song Yang    schedule 26.08.2010


Ответы (1)


Для вычисления производных с помощью сглаживающего фильтра Савицкого-Голея в вычислении полиномиальных коэффициентов есть параметр 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 = х0.

Следовательно, в расчетах производной:

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

Где a1, a2 — сглаженные значения y с использованием коэффициентов, рассчитанных при соответствующих производных.

person Lin Song Yang    schedule 27.08.2010