AWR2944: intra-sector detection in dopplerprocDDMA DPU

Part Number: AWR2944

Tool/software:

Hi

I try to perform intra-sector CFAR detection in dopplerprocDDMA DPU.
The reason is to get processing faster and do not detect objects outside the area of interest.

I have read paragraph about input formater of HWA and added extra code to CFAR paramset to control circular addressing and wrap in azimuth direction.

/* Perform fftshift and intra-sector detection */
double half_sector = 70.0; /* Hardcode sector width temporary */
uint32_t fft_idx = ceil(obj->cfarAzimFFTCfg.numAzimFFTBins/2 * sin(half_sector*M_PI/180.0));

hwaParamCfg.source.srcBcnt = (uint16_t)(2U*fft_idx + 1U - 1U);
hwaParamCfg.source.srcBcircShift = (uint16_t)(obj->cfarAzimFFTCfg.numAzimFFTBins - fft_idx);

if (obj->cfarAzimFFTCfg.numAzimFFTBins % 3U == 0U) /* If numSamples % 3 == 0 */
{
    hwaParamCfg.source.srcCircShiftWrap3 |= (1U << 1U); /* add extra bit 'b010 for B dim of srcCircShiftWrap3 */
    hwaParamCfg.source.srcBcircShiftWrap = mathUtils_ceilLog2(obj->cfarAzimFFTCfg.numAzimFFTBins / 3U);
}
else
{
    /* do not change srcCircShiftWrap3, just define srcBcircShiftWrap*/
    hwaParamCfg.source.srcBcircShiftWrap = mathUtils_ceilLog2(obj->cfarAzimFFTCfg.numAzimFFTBins);
}

This is something similar to the fftshift implementation at input of CFAR.
For test purposes I hardcode +- 60 degrees sector of azimuth and expect to get detections inside  27 ... 47 0 1 ... 21 indeces range (exclude bins 22 - 26) fornumAzimFFTBins = 48.

I get the following Input Formatter/Source config:


And I expect to catch all detections in unit test of DPU because there are no azimuth indexes outside this sector.

But as result I have miss detections in DPU's unit test app. In some test there are no detections at all.
For example:
C66xx_DSP: Object Not Found. ObjIdx = 7, RangeBin = 3, DopBinActual = 5, AzimIdx = 10 (inside my sector!)

Please, explain what's wrong with my configuration?
How to configure input formatter for B-dimension?
Or maybe something wrong with Doppler Proc DPU Test?

  • Hi Dmitry,

    Can you explain what exactly are you trying to implement?

    Regards,

    Samhitha

  • Hi Samhitha,

    I'm trying to implement CFAR scaning inside the specified field of view.
    Input formatter allow to add gap in middle of azimuth (B-dimension) if we start with offset and use wrap.

    But something wrong with my formatter configuration because CFAR misses objects that are located inside the specified sector (at Doppler Proc DPU Test).

  • Hi Dmitry,

    In that case, I suggest you to write a unit test just which takes a known input and gives a known output. For example, use FFT mode and disable FFT. It should help in fetching output which is same as the input. You can add circular shift logic in the test paramset to check if the circular shift works in the same pattern as you have expected.

    Regards,

    Samhitha

  • Hi Samhitha,

    I have performed several experiments and found that even I configure srcBcircShift the output detections of CFAR is always have range from zero to srcBcnt.
    I mean that addressing in azimuth-doppler matrix performed as It has been configured but output azimuth indeces have no offset.
    Adding extra offset equal to configured srcBcircShift to azimuth bin indeces fix problem and I can see detections in right angle sector.

    Can you confirm that output of CFAR doesn't take in account srcBcircShift bin offset and counts indeces from zero?

    Regards,

    Dmitry

  • Hi Dmitry,

    Input formatter is responsible to reformat the data before sending it to the compute engine. Once the data is passed from Input formatter to Compute Engine, input formatter registers configuration are not used anymore.

    Can you confirm that output of CFAR doesn't take in account srcBcircShift bin offset and counts indeces from zero?

    Yes, you are correct.

    Regards,

    Samhitha