Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Overview

Audio sample decimator with IIR filter

Discussion

The IIR decimator subsystem implements an IIR filter followed by a downsampler. IIR low-pass filter is realized by adding allpass pair subsystem output. Vaiable cutoffFreq must be smaller than Fs*0.5/D, where Fs is a sampling rate and D is a 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

typedef struct _ModuleFIRInterpolatorFract32
{
    ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
    INT32 L;                                      // Upsampling factor
    INT32 N;                                      // Length of the filter
    INT32 postShift;                              // Number of bits to shift
    INT32 polyphaseLen;                           // Length of each polyphase filter component
    INT32 stateIndex;                             // Index of the oldest state variable in the array of state variables
    INT32 stateLen;                               // Length of the circular state buffer
    FLOAT32* coeffs;                              // Filter coefficient array in normal order
    fract32* coeffsFract32;                       // Filter coefficient fract32 array in normal order
    fract32* state;                               // State variable array. The size of the array equals stateLen * numChannels
} ModuleFIRInterpolatorFract32Class;

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

  • No labels