Skip to content

IIRInterpolator

Overview

Audio sample interpolator with IIR filter

Discussion

The IIR interpolator module implements an upsampler followed by an IIR low-pass filter. The IIR filter is implemented as an 8th order elliptical filter. The module variable cutoffFreq must be smaller than Fs*0.5/D, where Fs is the sampling rate and D is the interpolation factor.

  • This module accepts any input block size.

  • The output block size equals the input block size times the interpolation factor D.

  • The output sample rate equals the input sample rate times D

Module Pack

Advanced

ClassID

classID =

Type Definition

typedef struct _ModuleIIRInterpolator
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
} ModuleIIRInterpolatorClass;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
cutoffFreq float parameter 0 10800 20:24000 Hz
Rs float parameter 0 60 10:100 dB
L int const 0 2 Unrestricted

Pins

Input Pins

Name in
Description Audio input
Data type float
Channel range Unrestricted
Block size range Unrestricted
Sample rate range Unrestricted
Complex support Real

Output Pins

Name out
Description Audio input
Data Type float

Scratch Pins

Channel Count 1
Block size 64
Sample rate 96000
Channel Count 1
Block size 64
Sample rate 96000
Channel Count 1
Block size 64
Sample rate 96000
Channel Count 1
Block size 64
Sample rate 96000

Matlab Usage

File Name: iir_interpolator_subsystem.m 
 SYS=iir_interpolator_subsystem(NAME, L) 
 Create a sub-system that interpolates audio samples with IIR filter(s). IIR 
 filters are implemented with allpass_pair sub-system with Elliptic filter 
 option. 

 Arguments: 
    NAME - name of the module. 
    L - Interpolation factor. 

 Copyright 2018.  DSP Concepts, Inc.  All Rights Reserved. 
 Author:  Taka Unno 

Copyright (c) 2026 DSP Concepts, Inc.