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- numDims матрица данных временных рядов, к который полином оператора задержки A применяется. Последнее наблюдение принято, чтобы быть новым. numDims размерность A, если X вектор-строка, в этом случае X обработан как одномерный ряд. Для одномерного X, ориентация выхода Y определяется ориентацией входа X.

'Initial'

Преддемонстрационные значения входных временных рядов X(t). Если 'Initial' не задано, или если количество преддемонстрационных значений недостаточно, чтобы инициализировать фильтрацию, значения приняты с начала X, сокращение эффективного объема выборки выхода Y. Для удобства скалярные преддемонстрационные значения расширены, чтобы обеспечить весь numPresampleObs- 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..., tp.

Примеры

развернуть все

Создайте 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 данные (разнообразные пути многомерного процесса) не позволены.

Смотрите также