Bonjour,
Je dois travailler sur matlab et je me retrouve confronter à un problème. J'ai crée un filtre de kalman qui marche correctement (je pense) sans bruit. Ensuite j'ai ajouté du bruit blanc gaussien à l'entré du filtre mais en sortie il reproduit quasiment l'entrée avec le bruit (si je compare l'entrer non bruité de mon filtre avec la sortie bruité je retrouve le bruit qui a été ajouté). Je voudrais savoir si c'est normal ou si le problème viens de mon filtre. Et si c'est normal je voudrais savoir comment je peux traiter se bruit sans induire de retard sur ma sortie .
voici ce que contien kalman:
etat_sys(:,k)=X0;
Pk_k=P0;
% effectue les premiers calcul de prédiction
Xk_k=etat_sys(:,k);
Xk1_k=F*Xk_k; %% prédiction de l'état
Pk1_k=F*Pk_k*F'+Q; %% varriance de l'erreur de prédiction
% ne peut pas faire d'estimation car en attente de y_k+1 donc on passe a l'étape d'apres
traj=X0(1);
k=k+1;
else
%On effectue l'estimation a partir des prédiction précédente
S=H*Pk1_k*H'+R;
innov=y-H*Xk1_k;
K=Pk1_k*H'/(S); %%calcul gain de Kalman
sigma=sqrt(S);
%test de divergence
if abs(innov)<3*sigma
Xk1_k1=Xk1_k+K*(innov); %% Correction prédiction
Pk1_k1=(I-K*H)*Pk1_k;
else
Xk1_k1=Xk1_k+K*(innov);
Pk1_k1=(I-K*H)*Pk1_k;
disp('Attention: Il y a divergence');
error=1;
end
%on stock les nouvelles valeurs pour pouvoir faire une nouvelle
%prédiction à partir de celle-ci
etat_sys(:,k)=Xk1_k1;
Pk_k=Pk1_k1;
%on passe a l'étape suivante pour calculer les nouvelles prédiction
k=k+1;
%calcul des nouvelles prédiction
Xk_k=etat_sys(:,k-1);
Xk1_k=F*Xk_k; %% prédiction de l'état
Pk1_k=F*Pk_k*F'+Q; %% varriance de l'erreur de prédiction
traj=etat_sys(1,k-1);
end
Toute les variable ont été déclaré au préalable.
Merci d'avance.
Partager