Моей первой мыслью было оценить производные по центральным различиям:
Однако сигнал может иметь много высокочастотных шумов, которые могут вызывать быстрые колебания и .f ″
Каков наилучший способ найти «сглаженные» оценки и ?f ″
Вероятно, это зависит больше от ваших данных. Просто знайте, поскольку дифференцирование является линейной операцией, если вы выбираете любой линейный фильтр для сглаживания f 'и f' ', это эквивалентно сглаживанию f с использованием того же фильтра, а затем его производных.
Можете ли вы опубликовать несколько фотографий или дополнительную информацию о сигнале, который вы хотите дифференцировать? Вероятно, вам нужен какой-то фильтр нижних частот для сглаживания сигнала. Пара действительно простых опций включает однополюсный рекурсивный фильтр, такой как , или фильтр Ганна, который просто свертывает сигнал с окном Ханна. Опция фильтра Ханна хороша тем, что она линейно-фазовая. Если вы знаете частотный диапазон, который вас интересует, вы можете просто разработать подходящий фильтр нижних частот в частотной области.
Савицкий-Гол фильтр обеспечивает плавные оценки сигнала и первые производных.
Реализацию MATLAB можно найти здесь .
источник