function grafici( t, est, est_asyn, figh, q, r, M)

Str=strcat(strcat(strcat(strcat(' ( q=',num2str(q)),', r='),num2str(r)),' )');
v=get(0,'ScreenSize');

h=figure(figh+1);
set(h,'Position',[round(v(3)/2)-600 round(v(4)/2)-200 1200 400]);
subplot(1,2,1);
if (est_asyn.OK==1)
    plot(t,[est.x(1,:); est.y(1,:); est.x_post(1,:); est_asyn.x_post(1,:)])
    legend('Vera','Misurata','Stimata (Kalman ricorsivo)','Stimata (Kalman asintotico)');
else
    plot(t,[est.x(1,:); est.y(1,:); est.x_post(1,:)])
    legend('Vera','Misurata','Stimata (Kalman ricorsivo)')
end
title(strcat('Posizione x',Str))
xlabel('Tempo (s)');
grid on
subplot(1,2,2);
if (est_asyn.OK==1)
    plot(t,[est.x(2,:); est.x_post(2,:); est_asyn.x_post(2,:)])
    legend('Vera','Stimata (Kalman ricorsivo)','Stimata (Kalman asintotico)')
else
    plot(t,[est.x(2,:); est.x_post(2,:)])
    legend('Vera','Stimata (Kalman ricorsivo)')
end
title(strcat('Velocità  x',Str))
xlabel('Tempo (s)');
grid on

h=figure(figh+2);
set(h,'Position',[round(v(3)/2)-600 round(v(4)/2)-200 1200 400]);
subplot(1,2,1);
if (est_asyn.OK==1)
    plot(t,[est.x(3,:); est.y(2,:); est.x_post(3,:); est_asyn.x_post(3,:)])
    legend('Vera','Misurata','Stimata (Kalman ricorsivo)','Stimata (Kalman asintotico)');
else
    plot(t,[est.x(3,:); est.y(2,:); est.x_post(3,:)])
    legend('Vera','Misurata','Stimata (Kalman ricorsivo)')
end
title(strcat('Posizione y',Str))
xlabel('Tempo (s)');
grid on
subplot(1,2,2);
if (est_asyn.OK==1)
    plot(t,[est.x(4,:); est.x_post(4,:); est_asyn.x_post(4,:)])
    legend('Vera','Stimata (Kalman ricorsivo)','Stimata (Kalman asintotico)')
else
    plot(t,[est.x(4,:); est.x_post(4,:)])
    legend('Vera','Stimata (Kalman ricorsivo)')
end
title(strcat('Velocità  y',Str))
xlabel('Tempo (s)');
grid on

h=figure(figh+3);
set(h,'Position',[round(v(3)/2)-300 round(v(4)/2)-250 600 500]);
if (est_asyn.OK==1)
    plot(est.x(1,:),est.x(3,:),est.x_post(1,:),est.x_post(3,:),est_asyn.x_post(1,:),est_asyn.x_post(3,:)) 
    legend('Vera','Stimata (Kalman ricorsivo)','Stimata (Kalman asintotico)')
else
    plot(est.x(1,:),est.x(3,:),est.x_post(1,:),est.x_post(3,:)) 
    legend('Vera','Stimata (Kalman ricorsivo)')
end
title(strcat('Posizione sul piano',Str))
xlabel('ascissa (m)');
ylabel('ordinata (m)');
grid on
axis tight

h=figure(figh+4);
set(h,'Position',[round(v(3)/2)-600 round(v(4)/2)-200 1200 400]);
subplot(1,2,1);
plot(t,[est.NP_emp est.NP])
title(strcat('Traccia della matrice di varianza d''errore di predizione',Str))
legend('Campionaria (Kalman ricorsivo)','Teorica (Kalman ricorsivo)')
xlabel('Tempo (s)');
subplot(1,2,2);
if (est_asyn.OK==1)
    plot(t,[est.NP_emp_post est_asyn.NP_emp_post est.NP_post])
    legend('Campionaria (Kalman ricorsivo)','Campionaria (Kalman asintotico)','Teorica (Kalman ricorsivo)')
else
    plot(t,[est.NP_emp_post est.NP_post])
    legend('Campionaria (Kalman ricorsivo)','Teorica (Kalman ricorsivo)')
end    
title(strcat('Traccia della matrice di varianza d''errore di filtraggio',Str))
xlabel('Tempo (s)');

h=figure(figh+5);
set(h,'Position',[round(v(3)/2)-600 round(v(4)/2)-200 1200 400]);
subplot(1,2,1);
plot(t,[est.NPM_prior est.NP])
title(strcat(strcat(strcat('Traccia della matrice di varianza d''errore di predizione su M=',num2str(M)),' simulazioni'),Str))
legend('Campionaria (Kalman ricorsivo)','Teorica (Kalman ricorsivo)')
xlabel('Tempo (s)');
subplot(1,2,2);
if (est_asyn.OK==1)
    plot(t,[est.NPM_post est_asyn.NPM_post est.NP_post])
    legend('Campionaria (Kalman ricorsivo)','Campionaria (Kalman asintotico)','Teorica (Kalman ricorsivo)')
else
    plot(t,[est.NPM_post est.NP_post])
    legend('Campionaria (Kalman ricorsivo)','Teorica (Kalman ricorsivo)')
end
title(strcat(strcat(strcat('Traccia della matrice di varianza d''errore di filtraggio su M=',num2str(M)),' simulazioni'),Str))
xlabel('Tempo (s)');

