In many applications, it is necessary to filter one signal xn in order to match another signal yn as closely as possible. In addition, both signals could be varying over time, so that the filter must change in order to continually provide minimal error. Generally in these situations, a Finite Impulse Response (FIR) filter is used because of the ease with which it may be implemented. But, many times a better result could be obtained by the use of an Infinite Impulse Response (IIR) filter. This improvement is generally overlooked due to the complications introduced by an IIR filter and the fact that an IIR filter with the transfer function
is the same as the filter with transfer function
which can be approximated as
The main complication which IIR filters introduce is that they depend nonlinearly on their coefficients. This makes an optimal choice nearly impossible except in the most trivial of situations. This can be overcome by applying an optimization technique such as Particle Swarm Optimization (PSO). Using this technique, we would choose several possible collections of IIR coefficients, and see what error each produces. Based on those results, we would choose new points to test, and continue until all of the points have clustered together and “swarm” in a small area. PSO converges faster than many other optimization algorithms that could handle this type of problem. This makes it an ideal choice for adaptive applications where the optimization will need to be performed often as the signal evolves. This has application to many areas of signal processing including acoustic echo cancellation.