Window Function (winfunc)
Signal processing window functions for reducing spectral leakage in FFT analysis.
API
void winfunc_rectangular(float * taps, int n);
void winfunc_triangular(float * taps, int n);
void winfunc_flattop(float * taps, int n);
void winfunc_welch(float * taps, int n);
void winfunc_hanning(float * taps, int n);
void winfunc_hamming(float * taps, int n);
void winfunc_blackman(float * taps, int n);
void winfunc_kaiser(float * taps, int n, float beta);
winfunc_rectangular— Rectangular (uniform) window, no attenuationwinfunc_triangular— Triangular (Bartlett) windowwinfunc_flattop— Flat-top window, optimized for amplitude accuracywinfunc_welch— Welch (parabolic) windowwinfunc_hanning— Hanning (raised cosine) windowwinfunc_hamming— Hamming window, modified Hanning with non-zero endpointswinfunc_blackman— Blackman window, higher side-lobe attenuation than Hanning/Hammingwinfunc_kaiser— Kaiser window with configurablebetaparameter controlling the trade-off between main-lobe width and side-lobe attenuation
All functions fill taps array with n window coefficients. Apply window by multiplying sample data element-wise with the taps array before FFT.
Example
int n = 1024;
float samples[n];
float window[n];
winfunc_hanning(window, n);
for(int i = 0; i < n; i++)
samples[i] *= window[i];