dft performs the Discrete Fourier Transform on a set 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_TWIDDLE | describes the type of twiddle factors used in the transform. It must be one of the following: cint16, cfloat and must also satisfy the following rules:
|
TP_POINT_SIZE | describes the number of samples in the frame to be windowed. |
TP_FFT_NIFFT | selects whether the transform to perform is an forward (1) or reverse (0) transform. |
TP_SHIFT | selects the power of 2 to scale the result by prior to output. |
TP_CASC_LEN | selects the number of kernels the DFT will be split over in series to improve throughput |
TP_NUM_FRAMES | describes the number of frames of input data samples that occur within each input window of data. |
TP_RND | describes the selection of rounding to be applied during the shift down stage of processing. Although, TP_RND accepts unsigned integer values descriptive macros are recommended where
|
TP_SAT | describes the selection of saturation to be applied during the shift down stage of processing. TP_SAT accepts unsigned integer values, where:
|
template < typename TT_DATA, typename TT_TWIDDLE, unsigned int TP_POINT_SIZE, unsigned int TP_FFT_NIFFT, unsigned int TP_SHIFT, unsigned int TP_CASC_LEN, unsigned int TP_NUM_FRAMES, unsigned int TP_RND, unsigned int TP_SAT > class dft_graph: public graph // typedefs typedef std::conditional_t <std::is_same <TT_DATA, int16>::value, cint16, std::conditional_t <std::is_same <TT_DATA, int32>::value, cint32, std::conditional_t <std::is_same <TT_DATA, float>::value, cfloat, TT_DATA>>> T_outDataType // fields kernel m_dftKernels[TP_CASC_LEN] port <input> in[TP_CASC_LEN] port <output> out[1] double inv