Мне нужно вычислить производные от зашумленных данных или, скажем, дискретный ряд с некоторым шумом.
sgolay функция в Matlab предлагает способ сглаживания данных, и это может датьпроизводные другого порядка.
Однако, похоже, что производные, которые он мне дает, не включают в себя хорошую оценку запуска и диапазона терминалов, что важно для моего анализа.
[b, g] = sgolay (___) возвращает 2 матрицы, b и g.
В соответствии с документами Matlab, b - это «изменяющиеся во времени коэффициенты FIR-фильтра, заданные как frame-by-by»-framelen matrix. В реализации фильтра сглаживания (например, sgolayfilt) последние (framelen-1) / 2 строки (каждая FIR-фильтр) применяются к сигналу во время переходного процесса при запуске, а первая (framelen-1)/ 2 строки применяются к сигналу во время переходного процесса терминала. Центральный ряд применяется к сигналу в установившемся режиме. "
Это означает, что с центральным рядом b я могу получить хорошее сглаживаниеданные в центре. С последними несколькими строками b я могу получить хорошее сглаживание данных в диапазоне запуска. С помощью первых нескольких строк b я могу получить хорошее сглаживание данных в терминальном диапазоне.
В документе также приведен пример . Он объединяет 3 части, чтобы обеспечить хорошее сглаживание всего диапазона, но только для исходных данных, а не для производных.
При сглаживании исходных данных мы имеем матрицу b. Однако, что касается производных, для указанного производного порядка нет матрицы. Каждая строка в g подобна центральной строке в b, разные строки для разных производных по порядку, что не может дать хорошую оценку в диапазоне запуска и терминала.
Мой вопрос: есть ли способ вычисления производныхиз всего спектра, используя sgolay или любые другие функции в Matlab?
Заранее спасибо.