Versions Compared

Key

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

Overview

High order allpass structure with integer time delays

Discussion

The allpass_delay_module.m and allpass_delay16_module.m implement the digital system shown below:

...

The module allpass_delay16_module.m has exactly the same functionality except that the data stored in the delay line is quantized to fract16 values in order to save memory.  The input data to the delay line must be in the range [-1 +1) or else it will be clipped.  The output data from the delay line is converted back to floating-point values for further processing.  The allpass_delay16_module.m takes roughly half the memory as compared with the allpass_delay_module.m though with a loss of precision.

Type Definition

Code Block
typedef struct _ModuleAllpassDelay16Fract32
{
   &nbspModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
   &nbspINT32 maxDelay;                               // Maximum delay that can be realized, in samples. The size of the delay buffer (maxDelay+1)*numChannels
   &nbspINT32 currentDelay;                           // Current delay
   &nbspFLOAT32 coef;                                 // Feedback/-feedforward coefficient for the allpass delay.
   &nbspfract32 coefFract32;                          // Feedback/-feedforward fractional coefficient for the allpass delay.
   &nbspINT32 postShift;                              // Number of bits to shift after the fractional multiply. This is based on coef.range.
   &nbspINT32 stateIndex;                             // Index of the oldest state variable in the array of state variables
   &nbspINT32* state;                                 // State variable array
} ModuleAllpassDelay16Fract32Class;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

maxDelay

int

const

0

100

1:100000

samples

currentDelay

int

parameter

0

0

0:1:100

samples

coef

float

parameter

0

0.5

-1:1

coefFract32

fract32

derived

0

0.5

Unrestricted

postShift

int

derived

1

0

Unrestricted

stateIndex

int

state

1

0

Unrestricted

state

int*

state

1

[51 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

...

Description: audio output

Data type: fract32

MATLAB Usage

File Name: allpass_delay_module.m

...