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?