Overview - 2023.1 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.1 English

fft_window is utility to apply a windowing (scaling) function such as Hamming to a frame of data samples.

These are the templates to configure the function.

Parameters:

TT_DATA

describes the type of individual data samples input to the function. This is a typename and must be one of the following:

cint16, cint32, cfloat.

TT_COEFF

describes the type of weights in the FFT window. This is a typename and must be one of the following:

int16, int32, float. TT_DATA and TT_COEFF must be both integer types or both float types.

TP_POINT_SIZE describes the number of samples in the frame to be windowed.
TP_WINDOW_VSIZE describes the number of samples to be processed in each call to this function. It must be an integer multiple of TP_POINT_SIZE.
TP_SHIFT described the number of bits to downshift after the scaling by the window value. e.g. for a TT_COEFF of int16 and a window value of 16384 meaning 1.000, a TP_SHIFT value of 14 is appropriate.
TP_API described whether to use streams (1) or windows (0).
TP_SSR describes the number of kernels to use in parallel to perform the windowing function.
TP_DYN_PT_SIZE describes whether to support run-time selectable point size for the frames of data within the AIE window to be processed.
template <
    typename TT_DATA,
    typename TT_COEFF,
    unsigned int TP_POINT_SIZE,
    unsigned int TP_WINDOW_VSIZE,
    unsigned int TP_SHIFT,
    unsigned int TP_API,
    unsigned int TP_SSR,
    unsigned int TP_DYN_PT_SIZE = 0
    >
class fft_window_graph: public graph

// fields

static constexpr int kMaxSSR
static constexpr int kHeaderBytes
static constexpr int kStreamsPerTile
static constexpr int kAPIFactor
static constexpr int kKernelPtSize
static constexpr int kKernelWindowVsize
port_array <input, kAPIFactor*TP_SSR> in
port_array <output, kAPIFactor*TP_SSR> out
kernel m_kernels[TP_SSR]
std::array <std::array <TT_COEFF, kKernelPtSize* (1+TP_DYN_PT_SIZE)>, TP_SSR> kernel_weights