0
$\begingroup$

I attach a picture about the results of a filter design in Matlab.

enter image description here

It says that it has 12 sections. One section contains the coefficients of the transfer function. If I'm implementing this filter in a microcontroller, I think that 12 sections would take much time as for to do this inside an interrupt loop.

What happens if I only choose 3 sections? Would this affect badly the filter performance?

$\endgroup$
1
  • $\begingroup$ What do you expect? Yes, you have fewer degrees of freedom. $\endgroup$ Feb 22, 2018 at 19:27

1 Answer 1

1
$\begingroup$

If you had infinite-precision math, then no it would not change anything to split your order-24 IIR in 3 cascaded order-8 sections. You could even implement it directly as a single difference equation, i.e. no cascade.

However, in the real world, we don't have infinite-precision math, we typically use 64-bit doubles, 32-bit singles or even integers (fixed-point). In those cases, implementing an order-24 IIR as a single difference equation would lead to quantization issues. Your filter would likely be unstable. Even if it were stable, it would probably not have the expected frequency response.

Therefore what we usually do is split the order-2M IIR filter into M cascaded order-2 IIR filter called byquads. The quantization issue is much easier to deal with when using byquads, at least when using doubles or singles. With Fixed-point arithmetic, even when using byquads, you need to double-check everything.

As a bonus, in DSP libraries, you usually have optimized functions for byquads IIR.

Care to explain why you need an order-24 IIR? I fail to see why you would need something more than an order-8.

$\endgroup$

Your Answer

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

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