Alternative for mfilt.iirdecim for decimation factors bigger than 2

1 view (last 30 days)
As the documentation of mfilt.iirdecim says, this IIR polyphase decimator will be removed in feature releases. The recommendation is to use dsp.IIRHalfbandDecimator.
As the name states "IIRHalfbandDecimator", this function only supports design for a halfband filter (decimation by a factor of 2), so the realization has only two branches and only two branches can be configured manually. However, the old function "mfilt.iirdecim" allowed an arbitary number of branches/phases to be configured. In this way also decimation factors bigger than 2 were possible.
My question is now, what is the alternative to mfilt.iirdecim for a design with more than 2 branches/phases (a decimation factor >2), where each branch/phase (consisting of allpass cascades) can be configured manually?

Answers (1)

Sarthak
Sarthak on 21 Aug 2023
Hi Matthias,
As per my understanding, rate conversion filters with a higher decimation factor can be implemented efficiently using multistage decimators. You can use designMultistageDecimator to obtain such efficient multistage designs.
Please refer to the following documentation to understand the implementation of a multistage filter design.
  1 Comment
Matthias Witkowski
Matthias Witkowski on 28 Aug 2023
Hi Sarthak,
I have the impression that my question is not clear enough. I am not looking for alternative ways of implementing higher rate conversion e.g. as pointed out by you through multistage decimators.
My question points specifically at the method "mfilt.iirdecim", which allows for an N-th Band recursive IIR Filter. Each branch consisting of allpass cascades. In other words, "mfilt.iirdecim" works perfectly for me.
However, this IIR polyphase decimator will be removed in feature releases. The help page is pointing to dsp.IIRHalfbandDecimator, which is only a 2-th Band (halfband) filter, and so does not have the full functionallity of "mfilt.iirdecim". So my question is, if I want to have the full functionallity of "mfilt.iirdecim" (which will be removed), is there still a way to do it with any method of "dsp"?
Additionally one downside of mfilt is, that it is not supporting any fixed-point implementation.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!