top of page

An Auxiliary Particle Filter (APF) Implementation

In this project, an implementation of the Auxilliary Particle Filter (APF) is explored. The use cases of this algorithm are in state and parameter estimation of non-linear and multi-modal dynamic systems with added Non-Gaussian noise.

One of the main drawbacks of the standard Particle Filter algorithm is the suboptimal assumptions made for the algorithm to work and the resampling process that is used to overcome the suboptimality. The APF is an attempt to alleviate these issues. In this project, I developed a functioning APF algorithm based on Dr. James McNames' lectures. To get more context as to what APFs are, please refer to Dr. McNames' YouTube channel.

In the APF algorithm presented by Dr. McNames, some suboptimal assumptions are still present to circumvent some direct iterative numerical integrations that I have not kept in my implementation. This is a design decision on my part to make the APF algorithm closer to absolute optimality. Therefore, when needed, I derived the integrations numerically instead of approximating them analytically.

Parallel Pooling is needed to run this code on MATLAB for efficiency to balance out the design decision I made in implementing the APF algorithm. MATLAB requires the Parallel Computing License for Parallel Pooling. If you do not have it, you can revert the "parfor"s to standard for-loops.

For more information please review the GitHub repository I made for this project.

bottom of page