Firelight Technologies FMOD Studio API
FMOD_DSP_FFT_WINDOW
List of windowing methods for the FMOD_DSP_TYPE_FFT unit. Used in spectrum analysis to reduce leakage / transient signals intefering with the analysis.
This is a problem with analysis of continuous signals that only have a small portion of the signal sample (the fft window size).
Windowing the signal with a curve or triangle tapers the sides of the fft window to help alleviate this problem.
C/C++ Syntax
typedef enum {
FMOD_DSP_FFT_WINDOW_RECT,
FMOD_DSP_FFT_WINDOW_TRIANGLE,
FMOD_DSP_FFT_WINDOW_HAMMING,
FMOD_DSP_FFT_WINDOW_HANNING,
FMOD_DSP_FFT_WINDOW_BLACKMAN,
FMOD_DSP_FFT_WINDOW_BLACKMANHARRIS
} FMOD_DSP_FFT_WINDOW;
JavaScript Syntax
FMOD.DSP_FFT_WINDOW_RECT
FMOD.DSP_FFT_WINDOW_TRIANGLE
FMOD.DSP_FFT_WINDOW_HAMMING
FMOD.DSP_FFT_WINDOW_HANNING
FMOD.DSP_FFT_WINDOW_BLACKMAN
FMOD.DSP_FFT_WINDOW_BLACKMANHARRIS
Values
FMOD_DSP_FFT_WINDOW_RECT
w[n] = 1.0
FMOD_DSP_FFT_WINDOW_TRIANGLE
w[n] = TRI(2n/N)
FMOD_DSP_FFT_WINDOW_HAMMING
w[n] = 0.54 - (0.46 * COS(n/N) )
FMOD_DSP_FFT_WINDOW_HANNING
w[n] = 0.5 * (1.0 - COS(n/N) )
FMOD_DSP_FFT_WINDOW_BLACKMAN
w[n] = 0.42 - (0.5 * COS(n/N) ) + (0.08 * COS(2.0 * n/N) )
FMOD_DSP_FFT_WINDOW_BLACKMANHARRIS
w[n] = 0.35875 - (0.48829 * COS(1.0 * n/N)) + (0.14128 * COS(2.0 * n/N)) - (0.01168 * COS(3.0 * n/N))
Remarks
Cyclic signals such as a sine wave that repeat their cycle in a multiple of the window size do not need windowing.
I.e. If the sine wave repeats every 1024, 512, 256 etc samples and the FMOD fft window is 1024, then the signal would not need windowing.
Not windowing is the same as FMOD_DSP_FFT_WINDOW_RECT, which is the default.
If the cycle of the signal (ie the sine wave) is not a multiple of the window size, it will cause frequency abnormalities, so a different windowing method is needed.
FMOD_DSP_FFT_WINDOW_RECT.
FMOD_DSP_FFT_WINDOW_TRIANGLE.
FMOD_DSP_FFT_WINDOW_HAMMING.
FMOD_DSP_FFT_WINDOW_HANNING.
FMOD_DSP_FFT_WINDOW_BLACKMAN.
FMOD_DSP_FFT_WINDOW_BLACKMANHARRIS.
See Also
Version 1.10.03 Built on Feb 1, 2018