This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello
The codes shown below is for the clutter removing from mmWave SDK. Is the "1<<(obj->log2NumDopplerBins-1)" for the rounding of the value pMeanVal?
If the answer is Yes, I think a correct way to do the ROUNDING for the signed number should be "(int)(num < 0 ? (num - 0.5) : (num + 0.5))
". So, how does the following codes ROUND the negative number?
if (obj->cliCfg->clutterRemovalCfg.enabled) { uint32_t sumVal[2]; cmplx32ReIm_t *pSumVal = (cmplx32ReIm_t *) sumVal; uint32_t meanVal; cmplx16ReIm_t *pMeanVal = (cmplx16ReIm_t *) &meanVal; mmwavelib_vecsum((int16_t *) inpDoppFftBuf, (int32_t *) sumVal, (int32_t) obj->numDopplerBins); pMeanVal->real = (pSumVal->real + (1<<(obj->log2NumDopplerBins-1))) >> obj->log2NumDopplerBins; pMeanVal->imag = (pSumVal->imag + (1<<(obj->log2NumDopplerBins-1))) >> obj->log2NumDopplerBins; mmwavelib_vecsubc((int16_t *) inpDoppFftBuf, (int16_t *) inpDoppFftBuf, (uint32_t) meanVal, (int32_t) obj->numDopplerBins); }
Regards
Peter