Skip to content

WOLAAnalysisFract32

Overview

Analysis filterbank of an oversampled filterbank

Discussion

This module implements the analysis portion of a weighted-overlap filterbank. The filterbank has an adjustable oversampling factor. As a module argument, you specify the FFT size K and the amount of attenuation between subbands (in dB). The module inherits the block size from the input wire. The oversampling factor of the module is defined as K / (input block size). For example, if the block size of the input pin is K/2 then the module has an oversampling factor of 2. For reasonable reconstruction accuracy you should keep the oversampling factor to be at least 1.5. The module decimates by the input block size and the output sample rate will be reduced accordingly.

The attenuation between subbands affects the length of the analysis filter and the latency through the processing. Higher attenuation gives lower distortion while increasing processing and latency. The module displays the latency on the canvas allowing you to compensate for it in other parts of the signal flow. The latency shown is the latency through the combination of the analysis and synthesis banks.

This module is usually used in conjunction with the wola_synthesis_subsystem.m. The synthesis filterbank converts back from the frequency domain to the time domain. The synthesis filterbank must have exactly the same settings for K, the subband attenuation, and the output block size of the synthesis bank must match the input block size of the corresponding analysis bank. This is not checked for but you will get distorted sound if this is not true.

The Audio Weaver Module Users Guide has extensive documentation for this module. Please refer to this other document for more information.

Module Pack

Advanced

ClassID

classID =

Type Definition

typedef struct _ModuleWOLAAnalysisFract32
{
ModuleInstanceDescriptor instance;            // Common Audio Weaver module instance structure
} ModuleWOLAAnalysisFract32Class;

Variables

Properties

Name Type Usage isHidden Default Value Range Units
latency int const 0 64 Unrestricted samples

Pins

Input Pins

Name t
Description Time domain signal
Data type fract32
Channel range Unrestricted
Block size range Unrestricted
Sample rate range Unrestricted
Complex support Real

Output Pins

Name f
Description Frequency domain subbands
Data Type fract32

Scratch Pins

Channel Count 1
Block size 16
Sample rate 48000
Channel Count 1
Block size 9
Sample rate 48000
Channel Count 1
Block size 32
Sample rate 48000

Matlab Usage

File Name: wola_analysis_fract32_subsystem.m 
 SYS=wola_analysis_fract32_subsystem(NAME, K, ATTEN) 
 Creates an Audio Weaver subsystem that implements the analysis bank of an  
 oversampled filterbank.  The analysis bank splits a time domain input 
 signal into multiple decimated frequency subbands.  This version returns 
 a floating-point implementation.  The input block size is inherited and 
 should be close to K/2.  This version operates on Fract32 data. 
 Arguments: 
   NAME - name of the subsystem 
   K - size of the FFT (must be a power of 2) 
   ATTEN - attenuation (in dB) between neighboring subbands 

 Internally, the stft_design.m function is used to design the filterbank. 
 Refer to stft_design.m for more details. 

Copyright (c) 2026 DSP Concepts, Inc.