filter

Примените полином оператора задержки для фильтрации временных рядов

Синтаксис

[Y,times] = filter(A,X)
[Y,times] = filter(A,X,'Initial',X0)

Описание

Учитывая полином оператора задержки, A(L) [Y,times] = filter(A,X)применяется A(L) к данным временных рядов X(t). Это эквивалентно применению линейного фильтра к X(t), получая отфильтрованный выходной ряд Y(t) = A(L)X(t).

[Y,times] = filter(A,X,'Initial',X0) применяется A(L) к данным временных рядов, X(t) с заданными предопределенными значениями входных X(t) временных рядов.

Входные параметры

A

Полиномиальный объект оператора задержки, произведенный LagOp.

X

numObs-by- numDims матрица данных временных рядов, к которой полином оператора задержки A применяется. Последнее наблюдение принято самым последним. numDims - размерность A, если только X является вектор-строка, в этом случае X рассматривается как одномерный ряд. Для одномерных X, ориентация выхода Y определяется ориентацией входа X.

'Initial'

Предварительный образец значений входных временных рядов X(t). Если 'Initial' не задано, или если количество значений предварительного образца недостаточно для инициализации фильтрации, значения берутся из начала X, уменьшение эффективного размера выборки выхода Y. Для удобства скалярные значения предварительной выборки расширяются, чтобы обеспечить все numPresampleObs-by- numDims предварительная выборка значений, и данные не берутся из X. Если задано больше значений предварительной выборки, чем необходимо, используются только самые последние значения. Для одномерных X, предварительные выборки значения могут быть строкой или вектором-столбцом.

Выходные аргументы

Y

Фильтрация входных временных рядов, Y(t) = A(L)X(t).

times

Вектор относительных временных индексов той же длины, что и Y. Время выражается относительно, или как смещение от, времени наблюдений 0, 1, 2,..., numObs-1 для последовательного входа X(t). Для полинома степени p Y(0) является линейной комбинацией X(t) для раз t = 0, -1, -2,..., - p (предварительный образец данных). Y(t) для t > 0 является линейной комбинацией X(t) для раз t = t, t -1, t -2,..., t - p.

Примеры

расширить все

Создайте LagOp полином и случайные временные ряды:

rng('default')                % Make output reproducible

A = LagOp({1 -0.6 0.08 0.2}, 'Lags', [0 1 2 4]);
X = randn(10, A.Dimension);

Фильтруйте входные временные ряды без явных начальных наблюдений, позволяя filter метод автоматического отключения всех необходимых начальных данных от начала входных временных рядов X(t).

[Y1,T1] = filter(A, X);

Вручную отсоедините все необходимые наблюдения предварительного образца непосредственно от начала X(t), затем пройти в сокращенной длине X(t) и удаленный предварительный образец наблюдений непосредственно к filter способ. В этом случае первые 4 наблюдения X(t) удалены, потому что степень полинома оператора задержки, созданная ниже, равна 4.

[Y2,T2] = filter(A, X((A.Degree + 1):end,:), ...
     'Initial', X(1:A.Degree,:));

Вручную отсоедините часть необходимых предварительных наблюдений от начала X(t) и пусть filter метод автоматически отделяет оставшиеся наблюдения от X(t).

[Y3,T3] = filter(A, X((A.Degree - 1):end,:), ...
     'Initial', X(1:A.Degree - 2,:));

Отфильтрованные выходные ряды все одинаковые. Однако связанные временные векторы не являются.

disp([T1 T2 T3])
     4     0     2
     5     1     3
     6     2     4
     7     3     5
     8     4     6
     9     5     7

Алгоритмы

Фильтрация ограничена одинарными путями, поэтому матричные данные приняты как один путь многомерного процесса, и 3-D данные (несколько путей многомерного процесса) не допускаются.

См. также