Other Parts Discussed in Thread: TIDEP-0091,
Hi All,
1. in High Accuracy Range Measurement - 14xx, the following CLI command is used to config the adcbuf :
adcbufCfg 0 1 0 1
which means, Complex data out, Q in LSB and I in MSB, Interleaved samples, fixed value for chirp thres.
2. in Level Sense Demo (TIDEP-0091) uses following lines to config ADCBUF in demo.c demo_staticConfig:
/* Populate Adcbuf configuration: */ adcbufCfg->adcFmt = 0; //0=complex adcbufCfg->iqSwapSel = 1; //1=Q in LSB, I in MSB adcbufCfg->chInterleave = 1; //not interleaved adcbufCfg->chirpThreshold = 1;
which uses non-interleaved samples
In both cases, ADCBUF outputs complex samples (I & Q) and the input to the FFT module is a complex signal.
A) in these two cases, does the 1D FFT output stored in a different way due to the ADCBUF interleaved/non-interleaved change?
I mean the way imag. and real parts of the 1D FFT out is organized in L3 local memory is different due to the interleaved/non-interleaved change?
Any documentation or an explanation would be appropriated.
B) From the source of TIDEP-0091, demo.c, demo_findTopTanges it seems that the imaginary and complex parts are stored next to each other. :
Here, which one is imaginary and which one is real component?
for (idx = START_IDX; idx < DEMOCFG_NUM_ADC_SAMPLES; idx ++) { mag[idx] = 0; for (idx2 = 0; idx2 < chirps * 2; idx2 ++) { //Sum the squares of the magnitudes (of I and Q) and sum the chirps. //(don't need to do square roots since we'll only looking for max) temp = *fft_out++ >> 1; mag[idx] += (temp * temp); } }
C) in High Accuracy Demo 14xx, (i.e. with interleaved samples) how the imag. and real parts of the1D FFT output is stored in MMW_HWA_1D_OUT_PING memory?
Is this similar to non-interleaved complex input signal ?
The reason why I'm asking this info. is, I need to find few peak values in 1D FFT output. Is there any documentation on how the real and imaginary signals are stored in memory?
Thanks,
Randy