For adaptive filtering, both finite and infinite impulse response (FIR/IIR) filters can be utilized. As an advantage of FIR filters in this context, guaranteed stability is often mentioned, while IIR filters do not share this property (see this related question and its answer).

I understand IIR filters are unstable when their impulse response diverges, meaning a transfer function pole lies outside the unit circle (has a radius $r>1$).

My intuition is that since in the example of system identification, only stable systems are practical to identify, it would make sense that estimates of such a systems' transfer function were stable as well.

My question is:

  • Why is this not the case? How can the adaption of IIR filters result in unstable solutions?

Please note that I am not asking about measures to ensure stability in IIR adaptive filtering.


2 Answers 2


The IIR filter doesn't have to be unstable, but it has the potential of being so; unlike the FIR case which doesn't have even the potential.

One reason for the (potential) unstability of an IIR (adaptive) filter is the numerical issues due to coefficient quantization. When the poles are closer to unit circle this will be critical. This is especially important if you are using coarse quantization (like in an legacy 8 bit system?) or you are forcing the limits of your numerical precision.

Furthermore, during the adaptation process, the chaotic behaviour of the input (which is possibly nonstationary) may lead into unbounded updates of the coefficients. When the errors get quite large during a transient stage, the resulting update on the coefficients can also be quite large leading (depending on the adaptation algorithm) the filter to fall into an unstable region...


Although what @Fat32 wrote is correct, I think the potential instability of IIR filters is not the main reason for the instability of an adaptive IIR filter. After all, we can calculate the poles in each iteration and put a hard constraint to avoid poles out of the unit circle.

Even for the FIR filters - which are unconditionally stable- we can end up with an unstable adaptive FIR filter if the loop gain at certain frequencies is large enough.

With FIR filters we are essentially solving iteratively a second-order convex optimization problem. This problem has no local minimums and the Hessian which plays a crucial role in analyzing the convergence of the filter is constant. The error term is linearly related to filter weight. This makes the problem both

  1. Well behaved=> So that you can easily converge

  2. Easy to analyze => So that you can find a scaling factor that leads to the fastest convergence.

With the adaptive IIR filters, the problem is not convex and is nonlinear. If you look at the following block diagram you may think at first look that it is linear with respect to filter coefficients. However, you can inspect that the input to $B(z)$ block contains the coefficients from $A(z)$ and previous iterations of $B(z)$. Compared to the adaptive FIR case we will have a system that is:

  1. Not Well behaved=> The surface can have local minimums and the slope can change erratically compared to an FIR filter cost function.

  2. Hard to analyze => To find a good scaling factor we need to analyze the error surface. In the adaptive IIR case, it is hard if not impossible. Also, the Hessian which plays a crucial role in the analysis of the convergence is even harder to calculate for an adaptive IIR filter.

  3. Dependency on the previous samples (make it hard to pass over a spike in one of the stages or other instabilities)

Adaptive IIR filter diagram

  • 1
    $\begingroup$ Thank you for elaborating on the dificulty with estimating both filters simultaneously! I do not understand how FIR filters can end up unstable with high gain at certain frequencies. Also, I am only asking about stability, although your answer is very informative. $\endgroup$ Oct 12, 2019 at 9:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.