Идентифицируйте модели timeseries в командной строке

Этот пример показывает, как моделировать модель timeseries, сравнить спектральные оценки, оценочную ковариацию, и предсказать вывод модели.

Сгенерируйте данные timeseries.

ts0 = idpoly([1 -1.5 0.7],[]);
e = idinput(200,'rgs');
y = sim(ts0,e); 
y = iddata(y);
plot(y);

y является объектом iddata с шагом расчета 1.

Оцените и постройте периодограмму и спектр мощности.

per = etfe(y);
speh = spa(y);
spectrum(per,speh,ts0);

Оцените модель AR второго порядка и сравните графики спектра.

ts2 = ar(y,2);
spectrum(speh,ts2,ts0);

Задайте истинную функцию ковариации.

ir = sim(ts0,[1;zeros(24,1)]);
Ry0 = conv(ir,ir(25:-1:1));
ir2 = sim(ts2,[1;zeros(24,1)]);
Ry2 = conv(ir2,ir2(25:-1:1));

Оцените ковариацию.

z = [y.y;zeros(25,1)];
j = 1:200;
Ryh = zeros(25,1);
for k=1:25, 
a = z(j,:)'*z(j+k-1,:);  
Ryh(k) = Ryh(k)+conj(a(:));
end
Ryh = Ryh/200; % biased estimate
Ryh = [Ryh(end:-1:2);Ryh];

Также можно использовать команду Signal Processing Toolbox™ xcorr.

Ryh = xcorr(y.y,24,'biased');

Постройте и сравните ковариацию.

plot([-24:24]'*ones(1,3),[Ryh,Ry2,Ry0]);

Предскажите образцовый вывод.

compare(y,ts2,5);

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

| |

Связанные примеры

Больше о