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.
Type Definition
-Not Shown-
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.