# Applying multiple IIR and FIR filters at once

I would like to appy multiple filters to a signal at once. Let's assume I got two frequency bands I want to extract. I compute a Butterworth Filter for 300-500Hz and one for 700-800Hz. I would like to combine those filters into a single filter and apply it to the signal. The resulting signal should contain only frequencies in range 300-500Hz and 700-800Hz.

I assume that if the filters are FIR (finite impulse response) filters I just need to add them. Using that single filter, I apply a convolution to the signal. Is that correct?

I am pretty lost if it gets to IIR (Infinite impulse response) filters which are - as I understand - divisions of polynoms in a radial space I do not understand. How can I combine two IIR filters?

Kind regards, Thomy800

• The simplest way is to run the two filters in parallel and add the outputs. Jun 6, 2018 at 14:10
• @jaket As long as the two filters have the same delay, yes.
– MBaz
Jun 6, 2018 at 14:33

When someone says “I want to do x” , it helps to know why? Instead of going into why you want to do your “x”, it might be instructive to go into why it is probably not a good idea.

1. There are some filters where there are mathematically equivalent recursive and non recursive forms, but they don’t have the same robustness to rounding errors.
2. Combining recursive and non recursive forms into a single filter is possible. The numerator in a ratio of polynomials that typically make up a transfer function can be thought of as a non recursive component , so one can end up with a combined filter that is recursive. You can also truncate the impulse response to end up with an overall non recursive filter. In either case it really can’t be both.
3. Polynomials are delicate. Small perturbations in coefficients can make big changes in roots, particularly when those roots are poles near the unit circle. Analytically, it can be stable but in practice it isn’t. In most cases, we factor transfer function is structures like biquads. Lots of cascades little filters are almost always better behaved.
4. Humans delight in their cleverness, but very few things are universally acknowledged as being cleaver. In practice, if this filter is “product” someone else will come along and maintain your code. In most cases, that person ( which might be you after a few years) will not share your joy. They are more likely to curse you and if you are very cleaver, they will curse your mother and father. One should chose clarity over cleverness.
5. You really need to do something a number of different ways in this sort of framework to make tradeoffs. The term “exhaustive enumeration” applies to this problem. The different ways a band pass can be implanted is really not hard to compare most of the salient parameters. You have to appreciate how much harder you make your filter optimization
6. When a parent gives their child a bicycle, it will take a number of years before they enter X-Games. Given that you asked the question, the ultimate answer, is yes but will require great skill.

.

“Whatever doesn’t kill you makes you stronger” I encourage you to follow up on your ideas. Try to make it work. Endeavor to make me wrong,

• +1 for 4. Almost compulsive. Jun 6, 2018 at 17:16

If you are dealing with finite precision arithmetic it is often better to keep IIR filters as separate filters In cascade as quantization errors will increase significantly in the combined form. We often factor larger order filters in smaller order sections for this very reason to isolate the poles. That said, you can convolve the coefficients which is the same as multiplying the polynomials to combine to a single form.

Dan