dsp.IIRInterpolator
R2026bDescription
The dsp.IIRInterpolator
System object™ performs polyphase IIR interpolation of the input signal. The object implements
a polyphase structure where each branch contains one or more allpass filter sections. The
object determines the interpolation factor based on the number of branches in the polyphase
structure.
To interpolate the input signal by a factor of 2, use either the dsp.IIRHalfbandInterpolator object or the dsp.IIRInterpolator
object. The dsp.IIRHalfbandInterpolator object is optimized
specifically for interpolation by a factor of 2. To interpolate the input signal by an
arbitrary factor greater than or equal to 2, use the dsp.IIRInterpolator
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 interpolate the input signal:
Create the
dsp.IIRInterpolatorobject 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 interpolator with the default settings. By default, the object has two
branches and interpolates the signal by a factor of 2.iirinterp = dsp.IIRInterpolator
returns a polyphase IIR interpolator with L branches and an
interpolation factor of L. For example,
iirinterp = dsp.IIRInterpolator(Branches={Branch1,...,BranchL})dsp.IIRInterpolator(Branches={dsp.AllpassFilter(AllpassCoefficients=0.3),
dsp.AllpassFilter(AllpassCoefficients=0.5),
dsp.AllpassFilter(AllpassCoefficients=0.7)}) creates an IIR interpolator with
three branches and an interpolation 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 interpolation filter contains an upsampler by L followed by a lowpass IIR filter H(z).
![Input x[n] at sample rate fs passing through an upsampler followed by a polyphase IIR filter H(z) to produce output y[m] at rate Lfs](iirinterpolationfilter.png)
The IIR interpolation 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 an interpolation factor of L, the transfer function of the IIR filter in polyphase form is
where:
L is the interpolation 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] upsampled by L, split through delay elements into L subfilters E0 through EL-1, then summed to produce y[m]](iirinterpolationfilter_polyphase.png)
The multirate noble identity for interpolation is:

Applying the noble identity for interpolation moves the upsampling operation to after the filtering operation. This change enables you to filter the signal at a lower rate.
![Polyphase structure after applying noble identity, with input x[n] filtered by subfilters E0 through EL-1, each upsampled by L with successive delays, then summed to produce y[m]](iir_interpolator_applying_noble_identity.png)
You can replace the upsampling operator, delay block, and adder with a commutator switch. The switch starts on the first branch 0 and moves in the counterclockwise direction, receiving one sample from each branch at each step. The interpolator effectively outputs L samples for every one input sample it receives. Hence, the sample rate at the output of the IIR interpolation filter is Lfs.
![Commutator switch receiving output from polyphase subfilters E0 through EL-1, producing output y[m] at rate Lfs from input x[n] at rate fs](iir_interpolator_switch.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




