Overview
Audio sample decimator with IIR filter
Discussion
The IIR decimator module implements an IIR filter followed by a downsampler. The IIR low-pass 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.
The block size of the input pin must be divisible by the decimation factor D. The output block size equals the input block size divided by D. The output sample rate equals the input sample rate divided by D.
Type Definition
-Not Shown-
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