This FastConv (Fast Convolution) audio object implements an N-channel point to point FIR filter with a constant number of taps for all channels. This filter is optimal for higher order filters (> 1000).
Coefficients are provided through GTT custom panel from pre-stored coefficient files in .csv format.
- Coefficients can be different for each channel, but with same tap length.
- Coefficients represent the impulse response of the filter in time domain.
Without loaded coefficients, the filter functions as an all-pass filter passing the input signal as it is.
The FastConv audio object supports in-place computation based on the core type.
Use Case: The computational effort of a simple FIR filter in time domain increases linearly with the number of taps used.
For complex wideband filtering, example low frequency filtering using room impulse responses – the number of used taps might easily reach few hundreds or thousands. As this number of FIR taps in time domain cannot be realized with reasonable computational effort, it makes sense to do convolution by multiplication in frequency domain – using the FFT.
The trade-off for using fast convolution depends on the used platform and might be in the area of 32-64 taps.
As this filter supports multiple channels – it can be used to adjust the sound to certain acoustics in a multichannel environment. The impulse response, i.e. the time domain coefficients can be different for each channel.
FastConv Properties
Below table describes about the FastConv audio object properties and functionality.
Properties | Description |
# of Channels | The object has a configurable number of channels. The number of audio inputs is always equal to the number of audio outputs.
|
Number of taps | The object has a configurable number of taps.
|
Display Name | Display the name of the FastConv audio object in signal flow design. It can be changed based on the intended usage of the object. |
Mode
There are no mode available for FastConv audio object.
Additional Parameters
There are no additional parameters available for FastConv audio object..
Tuning Parameters
In the current init setup, the tuning filter coefficients consist of all pass or bypass. In the real-world setup, these will be replaced with actual filter coefficients calculated for the preferred vehicle environment.
There are two sets of tuneable parameters –
- Mode: Mode is a single variable
- Coefficients: the number of coefficients depends on the tap-length value configured in GTT
Let Nc denote the number of coefficients (taps), Ni number of channels. All filter coefficients are stored using floating point format. The number of coefficients is rounded up to an integer power of 2, which allows for effective FFT radix-2 or radix-4 implementation. The filter coefficients are denoted by hi[k] where “I” is the filter’s index ranging from 0 to Ni−1 and “k” is the coefficient index (k = 0…Nc−1).
Sub-block ID | Name | Description | Offset | Type | Unit | Range | Default |
---|---|---|---|---|---|---|---|
0 | mode [0] | Mode for filter 0 | 0 | UInt32 | None | 0,1,2 | 0 |
0 | Coefficients for filter 0 | 4 | float | None | -1.0f; +1.0f | 1.0f | |
0 | Coefficients for filter 0 | 8 | float | None | -1.0f; +1.0f | 0.0f | |
0 | Coefficients for filter 0 | float | None | -1.0f; +1.0f | 0.0f | ||
0 | Coefficients for filter 0 | + 4 | float | None | -1.0f; +1.0f | 0.0f | |
1 | mode [1] | Mode for filter 1 | + 4 | UInt32 | None | 0,1,2 | 0 |
1 | Coefficients for filter 1 | + 8 | float | None | -1.0f; +1.0f | 1.0f | |
1 | Coefficients for filter 1 | + 8 | float | None | -1.0f; +1.0f | 0.0f | |
1 | Coefficients for filter 1 | float | None | -1.0f; +1.0f | 0.0f | ||
1 | Coefficients for filter 1 | + 12 | float | None | -1.0f; +1.0f | 0.0f | |
Ni-1 | mode [Ni-1] | Mode for filter Ni-1 | + | UInt32 | None | 0,1,2 | 0 |
Ni-1 | Coefficients for filter | + | float | None | -1.0f; +1.0f | 1.0f | |
Ni-1 | Coefficients for filter | float | None | -1.0f; +1.0f | 0.0f | ||
Ni-1 | Coefficients for filter | float | None | -1.0f; +1.0f | 0.0f | ||
Ni-1 | Coefficients for filter | + | float | None | -1.0f; +1.0f | 0.0f |
The pre-computed FIR filter time domain coefficients need to be stored in a file in .csv format.
GTT has the provision to import the coefficients from the file for the selected channel and pass them to the device. During tuning phase, these time domain filter coefficients are converted to frequency spectrum coefficients for multiplication with the spectrum of the input.
The generalized offset information of the two tuneable parameters can be found below table.
FastConv Tuneable Parameters
Sub-block ID | Name | Description | Offset | Type | Unit | Range | Default |
i | mode[i] | Mode for filter i | UInt32 | – | 0,1,2 | 0 | |
i | Coefficient k=0 for filter i | float | – | -1.0f; +1.0f | 1.0f | ||
i | Coefficient k>0 for filter i | float | – | -1.0f; +1.0f | 0.0f |
FastConv operational mode (Normal / Bypass / Mute) can be controlled (as tuning parameters) from GTT panel. The description of each mode is given in the table below.
FastConv Mode Details
Mode Value | Mode Tag | Description |
0 | NORMAL | Filter operation under use |
1 | BYPASS | Input buffer copied to output buffer |
2 | OFF | Output buffer set to zero |
Control Interface
There are no control parameters available for FastConv audio object.