-
Notifications
You must be signed in to change notification settings - Fork 63
Particle Filter
Class implementing the SIR particle filter.
This class implements the sampling-importance-resampling particle filter algorithm. It accepts a model of the explicit discrete time-variant form:
x(t+dt) = stateEqn(t,x(t),u(t),noise,dt)
y(t) = outputEqn(t,x(t),u(t),noise)
State and output equations must be defined in a vectorized form, i.e., so that they can take several samples of state, input, output, and noise. Matrices must be formed such that the row represents the variable and the column the sample.
Currently assumes only Gaussian noise, specified using process and sensor noise variance vectors (so noise for each state/output is generated independently).
Calculation of likelihood is done in a way found to be most efficient, but uses a lot of memory, so this method will have to be changed if a very large number of particles are used (like 10,000).
- initialize(PF,t0,x0,u0) - Initialize filter given initial time, state, and inputs
- estimate(PF,t,u,z) - Update the state and output estimates given new input and output data.
- getStateEstimate(PF) - Return a state estimate structure with samples and weights fields
This class implements the Observer interface.
Observers Package
Prognosis Package