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.

  • TI Thinks Resolved

CCS/AWR1843BOOST: The computation of the detmatrix and CFAR thresholdScale in the SDK3.2

Expert 1650 points

Replies: 1

Views: 98

Part Number: AWR1843BOOST

Tool/software: Code Composer Studio

Hi,

The DSP mode in the SDK3.2 computes the detmatrix as follows in the function DPU_DopplerProcDSP_log2AbsAccum(3Tx antennas,4Rx Antennas for example):

static inline void DPU_DopplerProcDSP_log2AbsAccum
(
    DPU_DopplerProcDSP_Obj *obj,
    uint16_t               rxAntIdx,
    uint16_t               txAntIdx,
    uint16_t               rangeIdx,
    uint32_t               *waitingTime,
    uint16_t               fftOutIndx
)
{
    volatile uint32_t startTimeWait;
    uint32_t idx;
    uint16_t *log2AbsBuf = (uint16_t *)obj->cfg.hwRes.windowingLog2AbsBuf;
    mmwavelib_log2Abs32(
                (int32_t *) &obj->cfg.hwRes.fftOutBuf[fftOutIndx],
                log2AbsBuf,
                obj->cfg.staticCfg.numDopplerBins);

    /* Check if this is the first virtual antenna for this range bin*/
    if ((rxAntIdx == 0) && (txAntIdx == 0))
    {
        /*This is the first virtual antenna. Starting a new sum. */
        if (rangeIdx > 0)
        {
            /* check if previous  sumAbsBuf has been transferred */
            startTimeWait = Cycleprofiler_getTimeStamp();
            DPU_DopplerProcDSP_waitTransDetMatrix (obj);
            waitingTime += Cycleprofiler_getTimeStamp() - startTimeWait;
        }
        /* Start new sum*/
        for (idx = 0; idx < obj->cfg.staticCfg.numDopplerBins; idx++)
        {
            obj->cfg.hwRes.sumAbsBuf[idx] = log2AbsBuf[idx] >> obj->log2VirtAnt;
        }
    }
    else
    {
        /*Not the first virtual antenna. Accumulate.*/
        mmwavelib_accum16shift(log2AbsBuf,
                               obj->cfg.hwRes.sumAbsBuf,
                               obj->log2VirtAnt,                               
                               obj->cfg.staticCfg.numDopplerBins);
    }
}

In this function,the function mmwavelib_accum16shift is called.The element in the detmatrix is equal to sum(abs(xi)>>4),i=0:11.

The threshold TdB in  the CFAR step is derived as belows:

Because in the function MmwDemo_CLICfarCfg,MMWDEMO_CFAR_THRESHOLD_ENCODING_FACTOR=100.0, the configuration parameter  argv[8] should be  32/100*TdB.That is to say,if the threshold TdB=15, argv[8]=32*15/100=4.8.

I don't know whether my understanding is right or not.

Regards,

Rata

  • Guru 51990 points

    Hi,

    Please review the code implementation.

    If needed please implement it in matlab and simulate it.

    We are not able to provide additional support.

    Thank you

    Cesar

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.