Hi,
We are using awr1642 short range radar demo . We want to eliminate all static objects from output (As I see traffic monitor demo detects only moving objects).In similar manner we
want to eliminate stationary objects before sending on UART/CAN.
For that in file dss_datapath.c
In function findandPopulateDetectedObjects() ,findandPopulateIntersectionOfDetectedObjects() we want to reorganize below portion of code
/* Existing code*/
/* 3. Populate the output Array. */
detObj2DRaw[numDetObj2D].rangeIdx = rangeIdx;
detObj2DRaw[numDetObj2D].dopplerIdx = dopplerLine;
detObj2DRaw[numDetObj2D].rangeIdx = rangeIdx;
detObj2DRaw[numDetObj2D].dopplerIdx = dopplerLine;
detObj2DRaw[numDetObj2D].speed = (int16_t) (speed * oneQFormat);
detObj2DRaw[numDetObj2D].range = (uint16_t)(range * oneQFormat);
/* 4. Note that the peakVal is taken from the sumAbsRange. */
detObj2DRaw[numDetObj2D].peakVal = sumAbsRange[rangeIdx] >> obj->log2numVirtAnt;
/* 5. Note that the SNR is taken from the CFAR output. */
detObj2DRaw[numDetObj2D].rangeSNRdB = cfarDetObjSNR[detIdx2] >> obj->log2numVirtAnt;
/* 6. Since we have no estimate of the doppler SNR, set it to 0. */
detObj2DRaw[numDetObj2D].dopplerSNRdB = 0;
detObj2DRaw[numDetObj2D].range = (uint16_t)(range * oneQFormat);
/* 4. Note that the peakVal is taken from the sumAbsRange. */
detObj2DRaw[numDetObj2D].peakVal = sumAbsRange[rangeIdx] >> obj->log2numVirtAnt;
/* 5. Note that the SNR is taken from the CFAR output. */
detObj2DRaw[numDetObj2D].rangeSNRdB = cfarDetObjSNR[detIdx2] >> obj->log2numVirtAnt;
/* 6. Since we have no estimate of the doppler SNR, set it to 0. */
detObj2DRaw[numDetObj2D].dopplerSNRdB = 0;
numDetObj2D++;
/* New change to eliminate stationary objects*/
if(speed > 0)
{
detObj2DRaw[numDetObj2D].rangeIdx = rangeIdx;
detObj2DRaw[numDetObj2D].dopplerIdx = dopplerLine;
detObj2DRaw[numDetObj2D].dopplerIdx = dopplerLine;
detObj2DRaw[numDetObj2D].speed = (int16_t) (speed * oneQFormat);
detObj2DRaw[numDetObj2D].range = (uint16_t)(range * oneQFormat);
/* 4. Note that the peakVal is taken from the sumAbsRange. */
detObj2DRaw[numDetObj2D].peakVal = sumAbsRange[rangeIdx] >> obj->log2numVirtAnt;
/* 5. Note that the SNR is taken from the CFAR output. */
detObj2DRaw[numDetObj2D].rangeSNRdB = cfarDetObjSNR[detIdx2] >> obj->log2numVirtAnt;
/* 6. Since we have no estimate of the doppler SNR, set it to 0. */
detObj2DRaw[numDetObj2D].dopplerSNRdB = 0;
detObj2DRaw[numDetObj2D].range = (uint16_t)(range * oneQFormat);
/* 4. Note that the peakVal is taken from the sumAbsRange. */
detObj2DRaw[numDetObj2D].peakVal = sumAbsRange[rangeIdx] >> obj->log2numVirtAnt;
/* 5. Note that the SNR is taken from the CFAR output. */
detObj2DRaw[numDetObj2D].rangeSNRdB = cfarDetObjSNR[detIdx2] >> obj->log2numVirtAnt;
/* 6. Since we have no estimate of the doppler SNR, set it to 0. */
detObj2DRaw[numDetObj2D].dopplerSNRdB = 0;
numDetObj2D++;
}
Does this change cause any problems/effects?does it meet our requirement.
Thanks,
P Tulasi Krishna.