dsp.IIRDecimator
R2026bDescription
The dsp.IIRDecimator
System object™ performs polyphase IIR decimation of the input signal. The object implements a
polyphase structure where each branch contains one or more allpass filter sections. The object
determines the decimation factor based on the number of branches in the polyphase
structure.
To decimate the input signal by a factor of 2, use either the dsp.IIRHalfbandDecimator object or the dsp.IIRDecimator object.
The dsp.IIRHalfbandDecimator object is optimized specifically for decimation
by a factor of 2. To decimate the input signal by an arbitrary factor greater than or equal to
2, use the dsp.IIRDecimator object.
The object algorithm implements an IIR polyphase structure, an efficient equivalent of the combined system depicted in the diagram. For more details, see Algorithms.

To decimate the input signal:
Create the
dsp.IIRDecimatorobject and set its properties.Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?
Creation
Syntax
Description
returns a
polyphase IIR decimator with the default settings. By default, the object has two branches
and decimates the signal by a factor of 2.iirdecim = dsp.IIRDecimator
returns a polyphase IIR decimator with M branches and a decimation
factor of M. For example,
iirdecim = dsp.IIRDecimator(Branches={Branch1,Branch2,...,BranchM})dsp.IIRDecimator(Branches={dsp.AllpassFilter(AllpassCoefficients=0.3),
dsp.AllpassFilter(AllpassCoefficients=0.5),
dsp.AllpassFilter(AllpassCoefficients=0.7)}) creates an IIR decimator with
three branches and a decimation factor of 3.
Properties
Usage
Syntax
Description
Input Arguments
Output Arguments
Object Functions
To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj, use
this syntax:
release(obj)
Examples
Algorithms
Conceptually, the IIR decimation filter contains a lowpass IIR filter H(z) followed by a downsampler by M.
![Input x[n] at sample rate fs passing through polyphase IIR filter H(z), then downsampled by factor M to produce output y[m] at rate fs/M](iirdecimationfilter.png)
The IIR decimation filter uses a polyphase structure for efficient implementation. Each branch of the polyphase structure contains a cascade of one or more allpass filter sections.
To derive the polyphase structure, start with the transfer function of the IIR filter H(z). For a decimation factor of M, the transfer function of the IIR filter in polyphase form is
where:
M is the decimation factor that determines the number of polyphase branches.
z−k represents the delay associated with the k-th polyphase branch.
Ek(z) is a cascade of one or more allpass filter sections in the k-th polyphase branch. A single allpass filter section of order N has the following transfer function:
Because the numerator coefficients are the denominator coefficients in reverse order, |E(ejw)| = 1 for all frequencies (allpass property).
To express H(z) in polyphase form, replace it with its polyphase representation.
![Polyphase representation of H(z) with input x[n] split through delay elements into M IIR subfilters E0 through EM-1, summed, then downsampled by M to produce y[m]](iirdecimationfilter_polyphase.png)
The multirate noble identity for decimation is:

Applying the noble identity for decimation moves the downsampling operation before the filtering operation. This change enables you to filter the signal at a lower rate.
![Polyphase structure after applying noble identity, with downsampling by M moved before subfilters E0 through EM-1, outputs summed to produce y[m]](iir_decimator_applying_noble_identity.png)
You can replace the delays and the decimation factor at the input with a commutator switch. The switch starts on the first branch and moves in the counterclockwise direction. When the first input sample arrives, the commutator switch feeds this input to the first branch and the IIR decimator computes the first output value. As more input samples come in, the switch delivers one sample at a time to each branch alternately. The decimator generates output every time the switch returns to the first branch. This reduces the sampling rate of the input signal by a factor of M.
![Commutator switch feeding input x[n] at rate fs into polyphase subfilters E0 through EM-1, with accumulator producing output y[m] at rate fs/M](iirdecimationfilter_polyphase_ni.png)
References
[1] Renfors, Markku, and T. Saramaki, "Recursive N-th Band Digital Filters, Parts I and II," IEEE Trans. CAS, Vol. 34, pp. 24-51, Jan. 1987.
[2] Milic, Ljiljana. Multirate Filtering for Digital Signal Processing: MATLAB Applications. Information Science Reference, 2009.
[3] Harris, Fredric J. Multirate Signal Processing for Communication Systems. Prentice Hall, 2004.
Version History
Introduced in R2026b




