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