A very short publication introducing the IMM filter. It describes a system with multiple models, and in each model, there is a state. The model transition is a ergodic Markov chain with probability matrix , and state transition in each mode is a linear dynamic system. The state transition and model transition are independent.

Kalman filter model

Discrete-time state representation of a linear system:

where is the state estimate; is a state transition matrix from to ; is process noise, assumed to be white Gaussian. Observations are assumed to be linear w.r.t. state estimate:

where is the matrix relating the state to observation; the observation noise, assumed to be white Gaussian as well, and not correlated with . Kalman filter is the iterative provess that provides the minimum mean squared error solution:


  • : predicted and filtered quantities respectively
  • : state estimate
  • : covariance matrix (of error of )
  • : discrete time transition matrix
  • : process noise covariance matrix
  • : observation noise covariance matrix
  • : Kalman gain
  • : identity matrix
  • : observation used to update the state estimate

Multiple filter model

Interacting multiple model (IMM) algorithm: Combining state hypotheses from multiple filter models to get a better state estimate of targets with changing dynamics.

Example using two models: State estimate of each model, , and model probability are input to state update. The state update gives out and together and they are separately corrected to and for next step. At the same time, the likelihood of each model are used to update the model probability .

IMM Algorithm:

Model state estimates and covariances for model at time :


Here, is the probability that the system is in model ; is the a priori probability for switching from model to model ; a normalization constant; and are mixed state estimate and covariance for each filter model.

Assume is a vector of observation for the current update and is the predicted observation computed from predicted tract state for filter model . Then is the innovation. The covariance matrix of is . The probability that the system is in model is given by

The model probabilities after update are with a normalization vector to maintain total probability of 1 and a normalization constant.

Finally, combine the state estimates:


A Swedish lecture note describes the above using fewer matrix notation:

Assume the Markov system has models, and the current model of the system is denoted by . The Markov transition probability matrix is

Each model has a different dynamic:

Given measurements , we can find the posterior distribution of base state , and the posterior model probabilities :

The IMM algorithm is as follows:

Suppose we have the statistics of historical state estimates, covariance matrix of estimates, and model probability for each state, up to time :

First the mixing. We update the model probabilities for all state transitions, i.e. probability of a state in next time step is the probability of a state at this moment multiplied by the transition probability:

And the state estimate is, similarly, average of all state estimate weighted by transition probability to this state; so as the covariances:

Then the model-matched prediction update. For each model , calculate the predicted state estimate and covariance from the mixed estimates:

Afterwards, the model-matched measurement update. For each model , calculate the Kalman gain and updated estimate and covariance:

We update the model probability as well:

Finally we can find the overall output estimate. This is not used in the iterative process but as an estimate for the final system state after time :

So now we proceeded a single step to have historical estimates up to time :

Bibliographic data

   title = "Interacting Multiple Model Algorithm for Accurate State Estimation of Maneuvering Targets",
   author = "Anthony F. Genovese",
   year = "2001",
   journal = "Johns Hopkins APL Technical Digest",
   volume = "22",
   number = "4",
   pages = "614--623",