Проблема накопления производных с использованием «сголая» в matlab - PullRequest
0 голосов
/ 09 ноября 2019

Мне нужно вычислить производные от зашумленных данных или, скажем, дискретный ряд с некоторым шумом.

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?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...