2013-03-17 6 views
1

Je ne parviens pas à estimer les paramètres de mon modèle d'espace d'état que je veux utiliser pour construire mon filtre de Kalman dans Matlab:filtre de Kalman estimation des paramètres MLE

S_t = S_(t-1)+e_t 
Y_t = B*S_t+v_t 

Y_t est la matrice d'observation contenant environ 20 fois série et S_t est censé être un scalaire. Je n'ai trouvé aucun exemple de code qui estime ma matrice de paramètres B et tous mes tests ont échoué jusqu'à présent.

+0

Hi. StackOverflow rejette généralement les réponses qui ne montrent aucun effort, alors s'il vous plaît montrer ce que vous avez fait jusqu'à présent, et expliquer pourquoi il est infructueux. –

Répondre

1

Je vais essayer de vous expliquer en mots simples ce que vous devriez faire avec Kalman Filter. S'il vous plaît demander et fournir plus d'informations si vous voulez de meilleurs conseils.

Dans le filtre de Kalman, vous tentez d'estimer l'état réel d'un système dynamique (qui change avec le temps). L'état dans votre cas est S_t (peut être un courant provenant d'un système, d'une position GPS ou de tout autre nombre ou ensemble de nombres). Dans le système dynamique normalement, vous avez une matrice de transition qui vous indique le changement de l'état S_(t-1) à l'état S_t. Comme vous l'avez écrit, il semble que votre matrice de transition sera égale à 1. En d'autres termes, vous devriez vous attendre à la même valeur que la valeur précédente uniquement avec du bruit gaussien ajouté. Le bruit gaussien vient de toutes les sources différentes qui sont difficiles à modéliser et n'est pas corrélé avec votre état.

Maintenant l'état de votre système est normalement mesuré par un capteur et vous avez une lecture Y_t du capteur. La lecture est liée à l'état par B matrice d'observation. Chaque capteur a son bruit v_t qui provient de l'imperfection du capteur. Et le Y_t est une lecture de votre état que vous voulez estimer. Dans ce que vous avez écrit, je peux comprendre que vous avez 20 lectures de Y_1 à Y_20. vous voulez estimer la vraie valeur de l'état du système dynamique après 20 lectures, disons 20 secondes. D'abord vous devez penser si vous avez raison que votre matrice de transition est A = 1 et S_t=A*S_(t-1)+e_t est la même que S_t=S_(t-1)+e_t. Pour modéliser A vous avez besoin d'une certaine connaissance de votre système dynamique, très souvent il est modélisé par l'utilisation d'équations différentielles. Après avoir modélisé le système pensez à la relation entre ce que vous voulez estimer et votre mesure (ce qui vient sur votre capteur), cela conduit à votre B. Le filtre Kalman est un filtre itératif. Pour votre série chronologique Y, vous branchez votre modèle et vous effectuez une itération sur la mesure. Vous devriez terminer avec l'estimation pour Y-2, Y_3, ... jusqu'à Y_20 avec la covariance d'erreur qui vous indique si votre estimation est bonne.

Pensez à cette procédure et si vous avez besoin d'aide, posez une bonne question avec plus de détails fournis comme suggéré dans les commentaires.

Bonne chance

Questions connexes