Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Scroll Documents: Update page title prefix

Overview

Single band of a cascade graphic equalizer with High Precision Biquad fract32 algorithm

Discussion

This module implements a single stage of a graphic equalizer. The stage provides boost or cut over a specified frequency range. A multistage graphic EQ subsystem is constructed as a series cascade of these modules. The multistage graphic EQ is contained within graphic_eq_subsystem.m. This module is typically not used directly. Instead, use the graphic_eq_subsystem.m

...

Internally, the filter is implemented as a cascade of High Precision second order biquad sections. These filters are smoothly updating based upon the variable .smoothingTime. Note, some low frequency filters may go unstable if the smoothingTime is too large.

Type Definition

Code Block
typedef struct _ModuleGraphicEQBandHpFract32
{
    ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
    FLOAT32 gain;                                 // Gain in the center of the band, in dB
    FLOAT32 lowerEdge;                            // Lower frequency edge of the band, in Hz
    FLOAT32 upperEdge;                            // Upper frequency edge of the band, in Hz
    FLOAT32 smoothingTime;                        // Time constant of the smoothing process.
    INT32 numStages;                              // Number of 2nd order stages in the filter
    INT32 updateActive;                           // Specifies whether the filter coefficients are updating (=1) or fixed (=0).
    INT32 bShift;                                 // Number of bits to shift of Numerator coefficients
    INT32 aShift;                                 // Number of bits to shift of Denominator coefficients
    fract32 smoothingCoeff;                       // Smoothing coefficient
    FLOAT32* coeffs;                              // Matrix of filter coefficients. The size of the matrix is 5 x numStages. Each column contains the variables for a biquad arranged as [b0; b1; b2; a1; a2].
    fract32* coeffsFract32;                       // Matrix of filter coefficients. The size of the matrix is 5 x numStages. Each column contains the variables for a biquad arranged as [b0; b1; b2; a1; a2].
    fract32* currentCoeffsFract32;                // Matrix of filter coefficients. The size of the matrix is 5 x numStages. Each column contains the variables for a biquad arranged as [b0; b1; b2; a1; a2].
    fract32* state;                               // State variables. 6 per channel.
} ModuleGraphicEQBandHpFract32Class;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

gain

float

parameter

0

0

-12:12

dB

lowerEdge

float

parameter

0

100

10:20000

Hz

upperEdge

float

parameter

0

500

10:20000

Hz

smoothingTime

float

parameter

0

50

0:1000

msec

numStages

int

const

0

4

Unrestricted

updateActive

int

state

0

1

0:1

bShift

int

derived

1

4

Unrestricted

aShift

int

derived

1

1

Unrestricted

smoothingCoeff

fract32

derived

1

0.01324

Unrestricted

coeffs

float*

derived

1

[5 x 4]

Unrestricted

coeffsFract32

fract32*

derived

1

[5 x 4]

Unrestricted

currentCoeffsFract32

fract32*

state

1

[5 x 4]

Unrestricted

state

fract32*

state

1

[24 x 1]

Unrestricted

Pins

Input Pins

Name: in

Description: audio input

...

Sample rate range: Unrestricted

Complex support: Real

Output Pins

Name: out

Description: audio output

Data type: fract32

MATLAB Usage

File Name: graphic_eq_band_hp_fract32_module.m

...