Window Function Stream - 2022.2 English

Vitis Model Composer User Guide (UG1483)

Document ID
Release Date
2022.2 English


AI Engine/DSP/Stream IO


Window function implementation targeted for AI Engines. This block is the utility to apply a windowing (scaling) function such as Hamming to a frame of input Stream data samples.

The Windowing utility block is only expected to work with FFTs, which only allow 2^n inputs/output ports.


Input/Output Data Type:
  • Describes the type of individual data samples input/output of the dynamic point FFT. It can be cint16, cint32, and cfloat types.
Filter coefficients data type:
  • Describes the type of individual coefficients of the filter taps. It should be one of int16, int32, or float and must also satisfy the following rules:
    • Complex types are only supported when the Input/Output data type is also complex.
    • 32-bit types are only supported when the Input/Output data type is also a 32-bit type.
    • Filter coefficients data type must be an integer type if the Input/Output data type is an integer type.
    • Filter coefficients data type must be a float type if the Input/Output data type is a float type.
Filter coefficients:
  • Specifies the filter coefficients as a vector of (N+1)/4+1 elements, where 'N' is a positive integer that represents the filter length and must be in the range 4 to 240 inclusive.
FFT Maximum Size:
  • Specifies the maximum FFT size that is supported by Dynamic point FFT. You can perform different lengths of FFT on different input data frames. It must be a power of 2 with a minimum value of 16. The maximum value supported by the library element is 65536.
Use dynamic point size:
  • Describes whether to support run time selectable point size for the frames of data within the AIE window to be processed.
  • For dynamic FFT, point size specifies the maximum point size and data can have smaller point sizes based on the header information. It is not trivial to derive the corresponding window function for each point size from the max point size. Hence, for example, if we specify point size as 64, then we should specify 128 length coefficients where first 64 coefficients specify window function for point size of 64, the next 32 for the point size of 32, and so on.
  • When the flag is enabled, The coefficient list array must specify the weights for the maximum point size and all smaller point sizes, so must be in the range FFT_POINT_SIZE + FFT_POINT_SIZE/2 to 2*FFT_POINT_SIZE.
Input Window Size:
  • Specifies the number of samples in the input frame excluding the header. The value must be in the range 16 to 65536 and the default value is 64.
Scale Output down by 2^:
  • Describes the power of 2 shift down applied before output.
  • This parameter is intended to improve performance and support FFT sizes beyond the limitations of a single tile. For an SSR value of 'n' (which must be of the form 2^N, where N is a positive integer), the FFT operation is performed in parallel and the actual FFT size is divided by 'n'. For example, a 16384 point FFT with SSR value of 8 creates 8 stream inputs and there will be 8 subframe FFTs each of point size 2048. The specified FFT size and SSR values should be such that FFT size / SSR should not exceed 2048
  • The Windowing utility accepts only powers of 2 as the number of inputs/outputs.