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.

TDA3XEVM: TDA3 CFAR (PkDetect) Algorithm

Part Number: TDA3XEVM

Hi Piyali,

Per my understanding, current CFAR algorithm perform non-coherent integration (NCI) on the RX channels before performing CFAR thresholding on the resulting NCI channel to obtain the target detection list. Two questions:

1. Rather than performing NCI, is it possible to perform Coherent Integration on the input RX channels data?

2. Right now if we have 4 RX channels, PkDetect will assume the 4 RX channels as input. Is it possible to selectively telling the algorithm to operate on 2 out of the available 4 RX channels?

Ideally we would like PkDetect to be configurable such that it can perform NCI on the specified subset of RX channels present. If that's not possible at the current time, can we work around somehow to feed the 2 RX channels we want it to perform PkDetect on?

We can't simply zero out the 2 RX channel data that we don't don't it to perform NCI and then PkDetect on since we want to output those RDM to external host controller. Can some work around of that nature be done that we can think of?

Thanks,

--Khai

  • Sorry for a few typos. Let me clarify my questions:

    1. Rather than performing NCI, is it possible to perform Coherent Integration on the input RX channels data?

    2. Right now if we have 4 RX channels, PkDetect will assume the 4 RX channels as input. Is it possible to selectively telling the algorithm to operate on 2 out of the available 4 RX channels?

    Ideally, we would like PkDetect to be configurable such that it can perform CI/NCI on the specified subset of RX channels present. If that's not possible at the current time, can we work around somehow to feed the 2 RX channels we want it to perform PkDetect on?

    We can't simply zero out the 2 RX channel data that we don't want it to perform NCI and then PkDetect on since we still need to output the 4 RDMs to an external host controller. Can some workaround of that nature be done that we can think of?

    Thanks,

    --Khai

  • Khai,

    We do not support Coherent Integration.

    You could potentially try setting the number of antennas such that the peak detector only looks at a contiguous subset of the antennas. Set the pitch still to all the number of antennas. This has not been tried before.

    typedef struct
    {
    uint8_t numChunks;
    uint16_t numHorzPoints[PEAK_DETECTION_TI_MAX_NUM_CHUNKS];
    uint16_t numVertPoints;
    uint32_t offsetBwAntennas[PEAK_DETECTION_TI_MAX_NUM_CHUNKS];
    uint32_t pitch[PEAK_DETECTION_TI_MAX_NUM_CHUNKS]; --> Set this to match with all antennas being availble
    uint16_t numAntennas; --> Set this to only the number of antennas you are interested in.
    } PEAK_DETECTION_TI_BufferDescriptor;

    Thanks and Regards,
    Piyali
  • Thanks. If I have RX0, RX1, RX2, and RX3, with this workaround, how does PkDetect know if I want it to process RX1 and RX2 only? I also have another question asking about DSP optimized function to get peak energy of a complex vector of the range FFT sample.

    Thanks,
    --Khai
  • You would need to add an offset to the input buffer address to allow you to access RX1 and RX2.
    pObj->pProcessInArgs->inAlgArgs.inBufs.bufDesc[
    PEAK_DETECTION_TI_BUFDESC_IN_ANTENNA_DATA_BUF]->bufPlanes[0].buf =
    inBufAddr;
    The offset would skip the RX0 data and then start from Rx1 data.

    I have responded to the DSP function for peak detection in the other post.

    Thanks and Regards,
    Piyali
  • Hi Piyali,

    I think your suggestion might work. I'll try it on Tuesday.

    Thanks,

    --Khai

  • Can the offset simply be offsetBwAntennas? That's what it looks to be based on the FFT output format described in the EVE doc.

    Thanks,

    --Khai

  • yes. it would be offsetBwAntennas from the output of 2D FFT.

    Thanks and Regards,
    Piyali
  • Hi Piyali,
    The PkDetect Alg output a detection list with [range, doppler, energy] per detected point above threshold. I would also like to obtain the noise floor value surrounded the CUT as output along with the [r,d,e]. How and where in the source can I modify the PkDetect Alg to wire this param out for the detected object as well?
    Thanks,
    --Khai
  • Hi Khai,

    i believe your original question is anwered in this thread. Can you please open a new thread for these new questions on the Peak Detection Algorithm?

    Thanks and Regards,
    Piyali