# Question of Digital filter; stability and order

Below 1~6 are my question.

1. Shortcomings of IIR filter.
2. Mean of unstable. (Things that will happen when system is unstable.)
3. How to select the best order(n).
4. What happens when I raise order too much.
5. How can I know the maximum order or appropriate order.
6. How to determine stability of system in MATLAB.

I learn IIR filter's shortcoming is unstable. But I don't know mean of unstable. I want to know things that will happen when system is unstable and stable. Additionally, I wonder the order of filter. I thought when I raise order, FIR and IIR filter will have more sharp transition zone(skirt?). It is true, then how much I raise the order? When I raise order too much, what happen will become? I used butterworth filter.

• Hi! Why do you need these information ? Jul 26, 2018 at 1:03
• @Fat32 I'm studying signal processing. I want noise filtering. In the middle of determine filter, I confuse values that effect on filter. When I used butterworth filter, if I raise order too much, the result was something wrong. It seems like merged.
– Park
Jul 26, 2018 at 1:27
• Very high order Butterworth filters (as well asall other IIR filters) will be unstable. Jul 26, 2018 at 17:15

Some of your questions overlap so I’m not going to answer in the framework of 1 followed by 2, .....

An IIR filter ‘s stability is related to the location of its poles. If the region of convergence contains the unit circle, the filter is stable. This definition covers both causal and anti causal filters, so you can have a stable causal filter and an unstable anti causal filter or vice versa.

Filters are implemented in terms of their coefficients so you need to root the denominator polynomial to find the poles and this is an ill conditioned problem.

for an example. small perturbations in filter coefficients, like finite precision, can move the poles so that the region of convergence no longer contains the unit circle.

A good DSP book like Oppenhiem and Schaefer will discus work arounds like factorizing a polynomial into smaller stable polynomials and filter structures that are more robust to precision errors.

There are a number of functions in MATLAB that estimate oder for a given filter performance but these aren’t always reliable.

Ultimately one uses trial and error when designing a filter. start with an oder and test the filter. if the filter meets spec, stop. if not, increase order by one and repeat.

How do you know if a filter is stable? you test it, which is what MATLAB is good at, although add ons like the fixed precision tool box might make things easier.

Overdetermined filters can be stable or unstable. An overdetermined filter can be a poor use of computation.

FIR filters are always stable. While an IIR filter requires fewer arithmetic operations than a FIR filter, some processors have execution pipelines that penalize recursion, so you can be doing more arithmetic faster with a FIR filter than the equivalent IIR filter.

A FIR filter can be linear phase, which can be desirable in many applications. An IIR filter can only be linear phase over a portion of bandwidth.

IIR filters can borrow from analog filters lke the Butterworth filter you mentioned

The answer to question 3 depends on what you mean by best. It isn’t really an issue of order but how oder is structured

• Then, is there no method that find out before experimenting?
– Park
Aug 1, 2018 at 7:49
• Experience helps a lot. Using designs from previous efforts that you know worked well helps a lot. Knowing your design tools well helps. I don’t know of any 100% general absolutely guaranteed method. Keeping your design specifications reasonable like recognizing a 300dB stop band attention is going to be tricky is your best bet. All designs need to be tested. That’s just good engineering practice.
– user28715
Aug 1, 2018 at 9:51