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.

AWR1642BOOST: 关于CFAR阈值的问题

Part Number: AWR1642BOOST
Other Parts Discussed in Thread: AWR1642, DCA1000EVM

您好

我正在使用本地的程序复现AWR1642内置的检测流程,用来处理DCA1000EVM捕获的数据

在CFAR检测部分,它是通过对参考窗内采样数据取平均来估计背景功率,再加上一个人为设定的阈值作为最终的threshold,和原始的功率进行比较。而在阈值设置部分,我找到了user-guide里的描述

截图来自MMWAVE SDK User Guide

我想请问这里converted from dB to Q8是什么意思呢?比如这个参数设置为15,是给noise+15作为最后的threshold吗?

  • Q8是什么意思呢

    Q格式:小数点位于第n 位元之右侧,称为Qn 格式

    比如这个参数设置为15,是给noise+15作为最后的threshold吗?

    建议查看源码了解更详细的信息。

  • 您好

    我在mss_main.c里找到了这样一段代码:

    /**
     *  @b Description
     *  @n
     *      Utility function to convert the CFAR threshold
     *      from a CLI encoded dB value to a linear value
     *      as expected by the CFAR DPU
     *
     *  @param[in] codedCfarVal CFAR threshold in dB as encoded in the CLI 
     *  @param[in] numVirtualAntennas Number of virtual antennas
     *
     *  @retval
     *      CFAR threshold in linear format
     */
    static uint16_t MmwDemo_convertCfarToLinear(uint16_t codedCfarVal, uint8_t numVirtualAntennas)
    {
        uint16_t linearVal;
        float    dbVal, linVal;   
    
        /* dbVal is a float value from 0-100dB. It needs to
        be converted to linear scale..
        First, recover float dbVal that was encoded in CLI. */
        dbVal = (float)(codedCfarVal / MMWDEMO_CFAR_THRESHOLD_ENCODING_FACTOR);
        
        /* Now convert it to linear value according to the following:
        linear_value = dB_value * (256 / 6) * (numVirtualAntennas / (2^ ceil(log2(numVirtualAntennas)))) .
        */
        linVal = dbVal * (256.0 / 6.0) * ((float)numVirtualAntennas / (float)(1 << mathUtils_ceilLog2(numVirtualAntennas)));
        
        linearVal = (uint16_t) linVal;
        return (linearVal);
    }

    这里的dbVal就是配置文件中设置的阈值,请问linear_value是什么意思呢?这里的计算公式我没有理解

    另外,CFAR的过程在DPC中进行:

    这部分代码我在mmw-SDK-3-5\mmwave_sdk_03_05_00_04\packages\ti\demo\xwr16xx\mmw里没有找到,请问是在哪里呢?

  • 你好,

    建议你安装一个可以搜索代码的软件来看代码,用CCS也是可以的。

    DPC_ObjectDetection_execute函数可以在下面的代码里找到。

    C:\ti\mmwave_sdk_03_05_00_04\packages\ti\datapath\dpc\objectdetection\objdetdsp\src\objectdetection.c

  • 请问linear_value是什么意思呢?

    线性值,db使用log计算的,出来的曲线是非线性的。