...
This section contains the following pages:
Child pages (Children Display) |
---|
General Information
Modules for processing signals in the frequency domain are found in the Frequency Domain folder. Frequency domain processing yields novels solutions to audio processing problems and may also lead to more efficient implementations. This section describes the main concepts behind frequency domain processing, then Filterbank Processing describes more sophisticated processing using weighted-overlap short-term Fourier transform filterbanks.
...
Two modules are provided to convert between real and complex data
RealImagToComplex | Converts two real signals into complex data using one as the real part and the other as the imaginary part | |
ComplexToRealImag | Converts a complex signal into separate real and imaginary components |
...
Audio Weaver provides 3 different transform modules for converting between the time and frequency domains.
Cfft | Complex FFT. Supports both forward and inverse transforms | |
Fft
| Forward FFT of real data | |
Ifft
| Inverse FFT yielding real data |
...
Before an FFT is computed the signal is typically windowed to prevent edge effects from influencing the results. There are 3 modules which perform windowing.
Window | Simple window | |
WindowOverlap
| Window with overlapping | |
WindowAlias
| Windowing followed by time aliasing |
...
The WindowAlias module applies a window followed by time aliasing the sequence to a shorter length. This module is used in the analysis back of short-term Fourier transform based filterbanks.
OverlapAdd | Reduces block size by overlapping blocks |
The OverlapAdd module performs the opposite of the Rebuffer module. The module has a large input block size and a smaller output block size. The module contains an internal buffer equal to the input block size. The module takes the input data, adds it to the internal buffer, and then shifts out one block of output data. The data in the internal buffer is also left shifted and the leading samples are filled with zeros. The OverlapAdd module finds use in fast convolution algorithms.
RepWinOverlap | Replicates data, applies a window, and then performs overlap add |
The RepWinOverlap module is for advanced users building synthesis filterbanks. The module replicates a signal N times, applies a window, and then performs overlap add.
ZeroPad | Adds zeros at the end of a buffer |
...
The frequency domain modules have a large number of modules which operate on complex data. The modules here are listed without detailed explanations because the underlying functions are basic and easily understood.
ComplexAngle | Computes atan2 of complex data | |
ComplexConjugate | Conjugates data by negating the imaginary component | |
ComplexMagnitude | ||
ComplexMagSquared | ||
ComplexModulate | Multiplies by 𝑒𝑗𝜔𝑘 | |
ComplexMultiplier | Complex x Complex, or Real x Complex | |
ComplexToPolar | Converts to Polar (angle and magnitude) | |
PolarToComplex | Converts from Polar to Real/Imag |
...
Any of the Frequency Domain modules which operate on complex data operate in the subband domain. Audio Weaver also provides a special set of “Subband Processing” modules that start with the “Sb” prefix. These modules replicate some of the standard time domain modules but the operations occur separately in each subband.
SbAttackRelease | Attack and release envelope follower (real data only) | |
SbDerivative | Derivative (real data only) | |
SbComplexFIR | Complex FIR filter | |
SbNLMS | Normalized LMS adaptive filter | |
SbSmooth | Performs smoothing across subbands (real data only) | |
SbRMS | RMS with settable time constant (real data only) | |
SbSOF | Second order filter (real data only) | |
SbSplitter | Subdivides the spectrum into overlapping regions. Similar to a crossover |
...