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.

AWR2944: Question about the range CFAR and doppler CFAR list merge

Part Number: AWR2944

Hi team,

In file C:\ti\mmwave_mcuplus_sdk_04_02_00_03\mmwave_mcuplus_sdk_04_02_00_03\ti\datapath\dpc\objectdetection\objdethwaDDMA\src\objectdetection.c

function DPC_ObjDet_estimateXYZ

We have below code, can you please explain a little bit more about why doing this "subtracting two consecutive elements from the cummulative distribution" ??

Thanks.

dopIdx = detObjList[objIdx].dopIdx;
if(dopIdx > 0){
/* Obtain the number of objects for a sub bin in the Range CFAR list by
* subtracting two consecutive elements from the cummulative distribution */
valSubBinObj = rangeCfarObjPerDopList[dopIdx] - rangeCfarObjPerDopList[dopIdx - 1];
cfarListStartIdx = rangeCfarObjPerDopList[dopIdx - 1];
}
else{
/* For the 0th sub bin, do not perform a subtraction */
valSubBinObj = rangeCfarObjPerDopList[dopIdx];
cfarListStartIdx = 0;
}

/* If the sub bin has valid objects in the range CFAR list, check whether the
* object currently being looked at (from the Doppler CFAR list), is also available
* in the range CFAR list. cfarListStartIdx tells us where to start searching for in
* the range CFAR list, and valSubBinObj tells us how many elements to search in.
* This saves computation time. */
if(valSubBinObj){
isValidObj = isObjInRangeAndDopplerList(detObjList[objIdx].rangeIdx,
detObjList[objIdx].dopIdx,
(RangeCfarListObj *)&subFrmObj->dpuCfg.rangeCfarCfg.res.rangeCfarList[cfarListStartIdx],
valSubBinObj);
if(isValidObj < 0){
retVal = DPC_OBJECTDETECTION_RANGE_DOPPLER_NO_MATCH;
goto exit;
}
}

Regards,

Wesley

  • Hi Wesley,

    In the section of the code, the RangeCfar list is being merged with the dopplerCfar list. valSubBinObj indicates for how many objects you would have to perform a merge check for when comparing the dopplerCfar list with the rangeCfar list. The cumulative difference check will eliminate certain number of non-overlapping points across doppler rows next to each other for which the search and merge algorithm (isObjInRangeAndDopplerList) will not have to look at which saves the computation time.

    Regards,

    Kaushik