% Identificazione e Analisi dei Dati: Esercitazione #3
% Scelta della classe di modelli

% parte prima
% dati generati da un sistema ARX
% A=[1 -1.23 0.86 -0.2];
% B=[0 1.8 -0.7 -0.25];

% caricamento dati
load Eser3-1
N=size(z,1);
figure,idplot(z)

zi=z(1:N/2,:); %dati per identificazione
zv=z(N/2:N,:); %dati per validazione
zi=dtrend(zi);zv=dtrend(zv); % eliminazione del trend dai dati

% selezione dell'ordine
V=arxstruc(zi,zv,struc(1:10,1:10,1));
nnopt=selstruc(V,0) 
% provare con i criteri 'aic' e 'mdl'

tharx=arx(zi,nnopt);
present(tharx)

% residuo
figure, [earx,rarx]=resid(zi,tharx);

% capacita' predittiva
figure, compare(zv,tharx,inf,150:500);

% diagramma poli-zeri
figure, zpplot(th2zp(tharx),3);

% parte seconda
% dati generati da un sistema ARMAX
% A=[1 -1.23 0.86 -0.2];
% B=[0 1.8 -0.7 -0.25];
% C=[1 -1 0.6];

zi2=z2(1:N/2,:); %dati per identificazione
zv2=z2(N/2:N,:); %dati per validazione
zi2=dtrend(zi2); zv2=dtrend(zv2);

V=arxstruc(zi2,zv2,struc(1:10,1:10,1));
nnopt=selstruc(V,0)

tharx=arx(zi2,nnopt);
present(tharx)

figure, [earx,rarx]=resid(zi2,tharx);

figure, compare(zv2,tharx,inf,150:500);

figure, zpplot(th2zp(tharx),3);

% provare con modelli armax!




