WOLAAnalysis
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 _ModuleWOLAAnalysis
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
} ModuleWOLAAnalysisClass;
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 | float |
| Channel range | Unrestricted |
| Block size range | Unrestricted |
| Sample rate range | Unrestricted |
| Complex support | Real |
Output Pins
| Name | f |
| Description | Frequency domain subbands |
| Data Type | float |
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 | 17 |
| Sample rate | 48000 |
Matlab Usage
File Name: wola_analysis_subsystem.m
SYS=wola_analysis_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.
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.