Macros | Functions | Variables
mmwavelib_fft.h File Reference

Header file for FFT utility routines. More...

#include <stdint.h>
#include <c6x.h>

Macros

#define MMWAVELIB_WINDOW_INT16   0
 
#define MMWAVELIB_WINDOW_INT32   1
 
#define MMWAVELIB_WIN_HANNING   0
 
#define MMWAVELIB_WIN_BLACKMAN   1U
 
#define MMWAVELIB_WIN_RECT   2U
 
#define MMWAVELIB_WIN_HAMMING   3U
 

Functions

void mmwavelib_windowing16x32 (const int16_t inp[restrict], const int32_t win[restrict], int32_t out[restrict], uint32_t len)
 Function Name : mmwavelib_windowing16x32. More...
 
void mmwavelib_windowing16x32_IQswap (const int16_t inp[restrict], const int32_t win[restrict], int32_t out[restrict], uint32_t len)
 Function Name : mmwavelib_windowing16x32_IQswap. More...
 
void mmwavelib_windowing16x16 (int16_t inp[restrict], const int16_t win[restrict], uint32_t len)
 Function Name : mmwavelib_windowing16xl6. More...
 
void mmwavelib_windowing16x16_evenlen (int16_t inp[restrict], const int16_t win[restrict], uint32_t len)
 Function Name : mmwavelib_windowing16xl6_evenlen. More...
 
void mmwavelib_windowCoef_gen (void *winCoef, uint32_t windowDatumType, float initR, float initI, uint32_t winCoefLen, int32_t Qformat, uint32_t winType)
 Function Name : mmwavelib_windowCoef_gen. More...
 
void mmwavelib_fft16ptZeroPadded32x32 (const int32_t *restrict inp, const int32_t *restrict twiddle, int32_t *restrict temp, int32_t *restrict out, uint32_t numLines, uint32_t numSkipSamples)
 mmwavelib_fft16ptZeroPadded32x32 Computes the 16pt FFT of vectors of length 8. The input vectors are assumed to be in transpose format (in inp). Hence the FFT can be thought of as operating along the columns of inp More...
 
void mmwavelib_dftSingleBin (const uint32_t inBuf[restrict], const uint32_t sincos[restrict], uint64_t *restrict output, uint32_t length, uint32_t doppInd)
 Function Name : mmwavelib_dftSingleBin. More...
 
void mmwavelib_dftSingleBinWithWindow (const uint32_t inBuf[restrict], const uint32_t sincos[restrict], const int32_t win[restrict], uint64_t *restrict output, uint32_t length, uint32_t doppInd)
 Function Name : mmwavelib_dftSingleBinWithWindow. More...
 
void mmwavelib_dftSingleBinWithWindow_ReIm (const uint32_t inBuf[restrict], const uint32_t sincos[restrict], const int32_t win[restrict], uint64_t *restrict output, uint32_t length, uint32_t doppInd)
 Function Name : mmwavelib_dftSingleBinWithWindow_ReIm. More...
 
void mmwavelib_dftSinCosTabelGen (uint32_t dftLength, uint32_t *dftSinCosTbl)
 Function Name : mmwavelib_dftSinCosTabelGen. More...
 
int32_t mmwavelib_gen_twiddle_fft16x16 (int16_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_fft16x16. More...
 
int32_t mmwavelib_gen_twiddle_fft16x16_imre_sa (int16_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_fft16x16_imre_sa. More...
 
int32_t mmwavelib_gen_twiddle_smallfft_16x16 (int16_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_smallfft_16x16. More...
 
int32_t mmwavelib_gen_twiddle_smallfft_16x16_imre_sa (int16_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_smallfft_16x16_imre_sa. More...
 
int32_t mmwavelib_gen_twiddle_largefftUp8k_16x16 (int16_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_largefftUp8k_16x16. More...
 
int32_t mmwavelib_gen_twiddle_largefft_16x16 (int16_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_largefft_16x16. More...
 
int32_t mmwavelib_gen_twiddle_largefft_16x16_imre_sa (int16_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_largefft_16x16_imre_sa. More...
 
int32_t mmwavelib_gen_twiddle_fft32x32 (int32_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_fft32x32. More...
 
int32_t mmwavelib_gen_twiddle_smallfft_32x32 (int32_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_smallfft_32x32. More...
 
int32_t mmwavelib_gen_twiddle_largefft_32x32 (int32_t *w, int32_t n)
 Function Name : mmwavelib_gen_twiddle_largefft_32x32. More...
 

Variables

const int16_t mmwavelib_dftHalfBinExpValue [2 *9]
 Lookup table for half bin sin/cos values. It contains complex exponentials e(k) = cos(pi/N)+j*sin(-pi/N), N=4,8,16,32,64,128,256,512,1024 Imaginary values are in even, and real values are in odd locations. Values are in Q15 format, saturated to +32767/-32768.
 

Detailed Description

Header file for FFT utility routines.

Macro Definition Documentation

#define MMWAVELIB_WIN_BLACKMAN   1U

Blackman window

#define MMWAVELIB_WIN_HAMMING   3U

Hamming window

#define MMWAVELIB_WIN_HANNING   0

Hanning window

#define MMWAVELIB_WIN_RECT   2U

Rectangular window

#define MMWAVELIB_WINDOW_INT16   0

window coefficient data format is int16_t

#define MMWAVELIB_WINDOW_INT32   1

window coefficient data format is int32_t


Copyright 2018, Texas Instruments Incorporated