Skip to main content
Skip table of contents

BlockExtract

Overview

Extracts a range of samples from a block of data. Can also zero pad the signal at the start or end.

Discussion

This module outputs a range of samples between the STARTINDEX and ENDINDEX arguments to the function. The module can be used to output a subset of the samples of a signal or to zero pad at the start or end of the buffer.

Typically, STARTINDEX and ENDINDEX are in the range [0 blockSize-1], where blockSize represents the number of samples on the input pin. The module outputs samples in the range STARTINDEX to ENDINDEX exclusively. The output pin has a blockSize of ENDINDEX-STARTINDEX+1 samples.

If you set STARTINDEX < 0, then the module will prepend a total of -STARTINDEX zeros to the buffer. Similarly, if you set ENDINDEX > blockSize-1, then the module will append ENDINDEX-blockSize+1 zeros to the end of the buffer. In all cases, the blockSize of the output pin is ENDINDEX-STARTINDEX+1 samples.

The module works on multichannel signals and supports real or complex data.

Type Definition

CODE
typedef struct _ModuleBlockExtract
{
    ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
    INT32 startIndex;                             // Start index of the data to extract.
    INT32 endIndex;                               // End index of the data to extract.
} ModuleBlockExtractClass;

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

startIndex

int

const

0

0

Unrestricted

endIndex

int

const

0

0

Unrestricted

Pins

Input Pins

Name: in

Description: Input signal

Data type: {float, int, fract32}

Channel range: Unrestricted

Block size range: Unrestricted

Sample rate range: Unrestricted

Complex support: Real and Complex

Output Pins

Name: out

Description: Output signal

Data type: {float, int, fract32}

MATLAB Usage

File Name: block_extract_module.m

CODE
 M=block_extract_module(NAME, STARTINDEX, ENDINDEX)
 Creates a block extract module for use in the Audio Weaver environment.
 The module outputs the subset of samples between STARTINDEX and ENDINDEX
 to the output pin. The module works with mono or multichannel signals and
 supports time domain and complex frequency domain buffers. The output of
 the module will contain a total of ENDINDEX-STARTINDEX+1 samples.
 Let blockSize represent the number of samples per channel on the input
 wire. Typically, STARTINDEX and ENDINDEX are in the range [0 blockSize-1]
 and the module outputs a subset of samples. If you set STARTINDEX < 0,
 then the module prepends -STARTINDEX samples to the start of the buffer.
 Similarly, if you set ENDINDEX > (blockSize-1), then the module appends
 ENDINDEX-blockSize+1 samples at the end of the buffer.
 Arguments:
    NAME - name of the module.
    STARTINDEX - start index (zero based) of the data to extract.
    ENDINDEX - end index (zero based) of the data to extract.
 The output pin will have the same number of channels as the input pin.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.