Developer Reference

  • 2021
  • 01/15/2021
  • Public Content
Contents

Understanding Window Functions

The Intel IPP provides the following functions to generate window samples:
These functions generate the window samples and multiply them into an existing signal. To obtain the window samples themselves, initialize the vector argument to the unity vector before calling the window function.
If you want to multiply different frames of a signal by the same window multiple times, it is better to first calculate the window by calling one of the windowing functions (
ippsWinHann
, for example) on a vector with all elements set to 1.0. Then use one of the vector multiplication functions (
ippsMul
, for example) to multiply the window into the signal each time a new set of input samples is available. This avoids repeatedly calculating the window samples. This is illustrated in the following code example.
Example
void multiFrameWin( void ) { Ipp32f win[LEN], x[LEN], X[LEN]; IppsFFTSpec_R_32f* ctx; ippsSet_32f( 1, win, LEN ); ippsWinHann_32f_I( win, LEN ); /// ... initialize FFT context while(1 ){ /// ... get x signal /// ippsMul_32f_I( win, x, LEN ); ippsFFTFwd_RToPack_32f( x, X, ctx, 0 ); } }
For more information on windowing, see: [Jack89], section 7.3,
Windows in Spectrum Analysis
; [Jack89], section 9.1,
Window-Function Technique
; and [Mit93], section 16-2,
Fourier Analysis of Finite-Time Signals
. For more information on these references, see also the Bibliography at the end of this document.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.