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.