![]() |
![]() |
Routine to compute single bin DFT. More...
Functions | |
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... | |
Variables | |
const int32_t | mmwavelib_twiddleTableCommon [2 *256] |
Lookup table for FFT twiddle factors generation(FFT size less than or equal to 1024) and DFT single bin DFT calculation. It contains 256 complex exponentials e(k) = cos(2*pi*k/1024)+j*sin(2*pi*k/1024), k=0,...,255, Imaginary values are in even, and real values are in odd locations. Values are in Q31 format, saturated to +/- 2147483647. More... | |
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. | |
Routine to compute single bin DFT.
const int32_t mmwavelib_twiddleTableCommon[2 *256] |
Lookup table for FFT twiddle factors generation(FFT size less than or equal to 1024) and DFT single bin DFT calculation. It contains 256 complex exponentials e(k) = cos(2*pi*k/1024)+j*sin(2*pi*k/1024), k=0,...,255, Imaginary values are in even, and real values are in odd locations. Values are in Q31 format, saturated to +/- 2147483647.
Following Matlab code was used to generate this table:
Generates lookup table for fast twiddle table generation for DSP lib FFT functions 16x16 and 32x32 for FFT sizes up to 1024. It saturates the amplitude to +/- 2147483647. The values are saved to file as imaginary %(sine) to even, and real (cosine) to odd index positions. M = 2147483647.5; nMax = 1024; table=round(M*exp(1j*2*pi/1024*[0:1*nMax/4-1]')); table=max(min(real(table),2147483647),-2147483647) + 1j* max(min(imag(table),2147483647),-2147483647); fid = fopen('twiddle_table_all.dat','w');
tableRI = [imag(table) real(table)]'; tableRI = tableRI(:); tableRI(tableRI<0) = tableRI(tableRI<0) + 4294967296;
fprintf(fid, [repmat(' 0x%08x,', 1, 8) '
'], tableRI);