Этот пример показывает, как моделировать модель 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);