В этом примере показано, как фильтровать состояния известной, инвариантной по времени модели «состояние-пространство».
Предположим, что скрытый процесс является AR (1). Уравнение состояния
+ ut,
где - гауссов со средним значением 0 и стандартным отклонением 1.
Создайте случайную серию из 100 наблюдений из , предполагая, что серия начинается с 1.5.
T = 100; ARMdl = arima('AR',0.5,'Constant',0,'Variance',1); x0 = 1.5; rng(1); % For reproducibility x = simulate(ARMdl,T,'Y0',x0);
Предположим далее, что скрытый процесс подвержен аддитивной погрешности измерения. Уравнение наблюдения
αt,
где - гауссов со средним значением 0 и стандартным отклонением 0,75. В совокупности скрытый процесс и уравнения наблюдения составляют модель состояния-пространства.
Использовать процесс случайного скрытого состояния (x) и уравнение наблюдения для генерации наблюдений.
y = x + 0.75*randn(T,1);
Укажите четыре матрицы коэффициентов.
A = 0.5; B = 1; C = 1; D = 0.75;
Укажите модель state-space с помощью матриц коэффициентов.
Mdl = ssm(A,B,C,D)
Mdl =
State-space model type: ssm
State vector length: 1
Observation vector length: 1
State disturbance vector length: 1
Observation innovation vector length: 1
Sample size supported by model: Unlimited
State variables: x1, x2,...
State disturbances: u1, u2,...
Observation series: y1, y2,...
Observation innovations: e1, e2,...
State equation:
x1(t) = (0.50)x1(t-1) + u1(t)
Observation equation:
y1(t) = x1(t) + (0.75)e1(t)
Initial state distribution:
Initial state means
x1
0
Initial state covariance matrix
x1
x1 1.33
State types
x1
Stationary
Mdl является ssm модель. Убедитесь, что модель правильно задана с помощью отображения в окне команд. Программное обеспечение делает вывод, что процесс состояния является стационарным. Впоследствии программное обеспечение устанавливает среднее начальное состояние и ковариацию на среднее и дисперсию стационарного распределения модели AR (1).
Оцените отфильтрованные состояния для периодов с 1 по 100. Постройте график истинных значений состояния и оценочных отфильтрованных состояний.
filteredX = filter(Mdl,y); figure plot(1:T,x,'-k',1:T,filteredX,':r','LineWidth',2) title({'State Values'}) xlabel('Period') ylabel('State') legend({'True state values','Filtered state values'})

Истинные значения и оценки фильтра примерно одинаковы.
estimate | filter | smooth | ssm