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.

AWRL1432: 關於二階段CFAR開發

Part Number: AWRL1432

您好,我目前在開發二階段CFAR根據不同的距離使用不同的CFAR參數,但現在遇到一個問題是我已經設定兩組CFAR參數了,並且分兩次實作DPU_CFARProcHWA_process,但我發現我僅有第一次CFAR會產生點雲,第二次的CFAR卻沒有輸出點雲,我想請問我應該怎們處理呢?

mmwave_demo.c

  • 您似乎正在更新mmwave L-SDK中包含的mmwave演示。
    您是否试图根据距离修改代码以支持2个不同的CFAR阈值?
    从概念上讲,根据范围,您将使用不同的阈值运行CFAR。需要修改代码以支持此功能。

  • Hi Vivian,

    我目前嘗試使用CFARProcHWA進行運算,並且與原有程式相同針對多次CFAR進行設定,但目前遇到的問題是CFAR僅有第一段CFAR有輸出,但第二段卻沒有任何反應,我想請問我是否能夠如此開發呢?

  • 不,这种方法行不通
    让我回顾一下,然后给你回复

  • 为了支持此功能,您需要对CFAR DPU进行一些更改

    C:\\awrl1432_adas_bsd_demo_v4.1\src\1432\datapath\dpu\cfarproc\v0\vmaxext_cfarprochwa.c

    请参阅第1339行,并与下面的代码进行比较。

        /* Check the point in range-CFAR detection bit map */
                linBitInd = dopplerIdx + rangeIdx * numDopplerBinsPerBand;
                wordInd = linBitInd >> 5;
                bitInd = linBitInd & 31;
                if (!((cfarHwaObj->res.rangeDopplerDetPointBitMap[wordInd] >> bitInd) & 0x1))
                {
                    continue;
                }




                if (isDetMatLog2)
                {
                    cfarCellNoise = noiseMatrixLog2[rangeIdx * numDopplerBinsPerBand + dopplerIdx];
                }
                else
                {
                    cfarCellNoise = noiseMatrix[rangeIdx * numDopplerBinsPerBand + dopplerIdx];
                }

     

                if (rangeIdx < RANGE_SETTING_THRESHOLD_1)
                {
                    int32_t sigPower = detMat[rangeIdx * numDopplerBinsPerBand + dopplerIdx];
                    int32_t SNR = (int32_t)sigPower - (int32_t)cfarCellNoise;
                    if (SNR > SNR_SETTING_THRESHOLD_1)
                    {
                        // Let the object proceed
                    }
                    else
                    {
                        // discard the object
                        continue;
                    }
                }



                /* Check if it is inside range FOV */
                if ((rangeIdx < selRangeMin) || (rangeIdx > selRangeMax))
                {
                    continue;
                }
  • RANGE_SETTING_THRESHOLD_1 is the value of the range that will be used for the short range threshold

  • 好的,感謝您的協助
    我將以此進行嘗試