Skip to main content
Skip table of contents

WOLASynthesisV2

Overview

Synthesis filterbank of an oversampled filterbank with selectable prototype filter

Discussion

This module implements version 2 of the synthesis portion of a weighted-overlap filterbank. The first parameter is the filter type, v1 is the same prototype filter from the original WOLA. An additional parameter - timeFlip, has been introduced and is only valid for V1. By default the filter will be minimum phase at anaylsis, and maximum phase for synthesis. It may be advantageous to switch this for AEC applications - i.e. use min/max for input and max/min for reference. Note that final signal through analysis / synthesis is always linear phase. For V2 you specify the FFT size K, the prototpe filter length, and the output time domain block size. The oversampling factor of the filterbank equals K / (output block size). You should strive to have an oversampling factor of at least 2.0 for V1. In general, the V2 version will be equivalent or overperform V1 for lower latencies when the oversampling factor is >= 2, and should be considered for lower latency applications.

The length of the prototype filter (L) affects the latency through an analysis filter by: L - N. Higher L will have higher attenuation (or less aliasing distortion), but also more 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_analysis_v2_subsystem.m. The analysis filterbank converts from the time domain to the frequency domain. The analysis filterbank must have exactly the same settings for K, filter order, and the time domain block sizes must match. This is not checked for but you will get distorted sound if this is not true.

This module is equivalent to V1, except for the method of design of the prototype filters. The Audio Weaver Module Users Guide has extensive documentation for v1 of this module. Please refer to this other document for more general WOLA information.

Type Definition

-Not Shown-

Variables

Properties

Name

Type

Usage

isHidden

Default value

Range

Units

latency

int

const

0

320

Unrestricted

samples

Pins

Input Pins

Name: f

Description: Frequency domain subbands

Data type: float

Channel range: Unrestricted

Block size range: 65

Sample rate range: Unrestricted

Complex support: Complex

Output Pins

Name: t

Description: Time domain signal

Data type: float

Scratch Pins

Channel count: 1

Block size: 65

Sample rate: 3072000

Channel count: 1

Block size: 128

Sample rate: 3072000

Channel count: 1

Block size: 128

Sample rate: 3072000

MATLAB Usage

File Name: wola_synthesis_v2_subsystem.m

CODE
 SYS=wola_synthesis_subsystem(NAME, K, ATTEN)
 Creates an Audio Weaver subsystem that implements the synthesis bank of an 
 oversampled filterbank.  The synthesis bank combines frequency domain
 subbands into a time domain signal.  This version returns a floating-point
 implementation.  
 Arguments:
   FILTERTYPE - prototpe filter design type
   PARAM1 - type 1/2: K - size of the FFT (must be a power of 2)
   PARAM2 - type 1 - attenuation, type 2 filter order
   PARAM3 - output time domain block size
   PARAM4 - reserved, enter 0
   TIMEFLIP - option to use normal (1): min phase in / max phase out, or 
              (2) time flipped: max phase in, min phase out. This option
              is ignored for FILTERTYPE == 2
 Internally, the stft_design.m function is used to design the filterbank.
 Refer to stft_design.m for more details.  The output block size equals
 K/2.
 SYS=wola_synthesis_subsystem(NAME, K, ATTEN, OUTBLOCKSIZE)
 An optional 3rd output argument allows you to specify the output block
 size.

JavaScript errors detected

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

If this problem persists, please contact our support.