-
Notifications
You must be signed in to change notification settings - Fork 8
Particle Filter
The Particle filter (PF) is a Bayesian filtering algorithm for nonlinear dynamic systems. Given a system model, along with measured input and output data, the PF estimates the internal system state.
The Particle filter algorithm implements importance sampling in which a set of particles, each with corresponding weights, are selected. As the discrete time step increases, degeneracy, the domination of fewer number of particles with significant weights over other particles with smaller weights, occurs. This problem can be resolved by resampling a new set of N particles.
For review on Particle Filters, click here.
A PF is created by specifying the system model to use, process noise variance vector values, sensor noise variance vector values, and the number of particles. Once instantiated, it must be initialized using the current time, the initial state, and the initial inputs.
Some helpful functions are the step function and getStateEstimate member function. The step function updates the state estimate of the PF with the current time, the current system inputs, and the current measured system outputs. The getStateEstimate member function delivers the current state estimate.
| Parameter | Description |
|---|---|
| Observer.processNoise [Required] | The process noise variance vector for the model. These must be specified in the order that is consistent with the model. It is represented as a comma-separated list of values. |
| Observer.sensorNoise [Required] | The sensor noise variance vector for the model. These must be specified in the order that is consistent with the model. It is represented as a comma-separated list of values. |
| Observer.N [Required] | The number of particles to use. |
| Observer.MinNEffective [Optional] | The minimum number of effective particles to allow before resampling. By default, this is set to one third of N. Resampling is performed to correct for particle degeneracy. |