IIRDecimator
Overview
Audio sample decimator with IIR filter
Discussion
The IIR decimator module implements an IIR low-pass filter followed by a downsampler. 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 decimation factor.
-
This module accepts any input block size.
-
The output block size equals the input block size divided by the decimation factor D.
-
The output sample rate equals the input sample rate divided by D.
Module Pack
Advanced
ClassID
classID =
Type Definition
typedef struct _ModuleIIRDecimator
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
} ModuleIIRDecimatorClass;
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 |
| D | 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 | 32 |
| Sample rate | 48000 |
| Channel Count | 1 |
| Block size | 32 |
| Sample rate | 48000 |
| Channel Count | 1 |
| Block size | 32 |
| Sample rate | 48000 |
Matlab Usage
File Name: iir_decimator_subsystem.m
SYS=iir_decimator_subsystem(NAME, D)
Create a sub-system that decimates 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.
D - Decimation factor.
Copyright 2018. DSP Concepts, Inc. All Rights Reserved.
Author: Taka Unno
Copyright (c) 2026 DSP Concepts, Inc.