TI中文支持网
TI专业的中文技术问题搜集分享网站

iwr1642 车辆检测参数问题

你好,

1.在TM的cfarCfg 4 60 18 16 8 4 0 63 63 0 1 中每一位的含义是什么?

在之前的提问中(e2echina.ti.com/…/608966

比如您建议修改第二个参数 60 ,其单位或者说物理含义是什么呢?

2.TM这个demo中是否有默认近场校正?因为在cfg文件中是没有nearFieldCfg参数配置的

谢谢

Chris Meng:

你好,

正如之前论坛讨论回复的,具体参数含义请参考代码获得更详细的信息。

近场通常是指在20cm以内,这个demo应该没有必要做吧。

user5877061:

回复 Chris Meng:

你好,
我的这两个问题源于之前关于 车辆检测demo lab0013_traffic_monitoring_16xx例程远处检测目标横向位置偏移 仍有疑问未解答。
即,近10m或者更准确一点8m水平线以内没有观察到点云数据。
(e2echina.ti.com/…/195302
1)cfarCfg 4 60 18 16 8 4 0 63 63 0 1
static int32_t MmwDemo_CLICfarCfg (int32_t argc, char* argv[])
{……
//cliCfg.tableEntry[4].helpString = "<detMode> <discardLeft> <discardRight> <refWinSize1> <refWinSize2> <guardWinSize1> <guardWinSize2> <thre>";
/* Populate configuration: */
cfarCfg.cfarMethod = (uint16_t) atoi (argv[1]);
cfarCfg.cfarDiscardLeft = (uint16_t) atoi (argv[2]);
cfarCfg.cfarDiscardRight = (uint16_t) atoi (argv[3]);
cfarCfg.refWinSize[0] = (uint16_t) atoi (argv[4]);
cfarCfg.refWinSize[1] = (uint16_t) atoi (argv[5]);
cfarCfg.guardWinSize[0] = (uint16_t) atoi (argv[6]);
cfarCfg.guardWinSize[1] = (uint16_t) atoi (argv[7]);
cfarCfg.thre = (float) atoi (argv[8]) * 0.1f;
cfarCfg.dopplerSearchRelThr = (float) atoi (argv[9]) * 0.1f;
cfarCfg.log2MagFlag = (uint16_t) atoi (argv[10]);
cfarCfg.clRemoval = (uint16_t) atoi (argv[11]);
关于源码的查看,并引用之前的回答“ These arguments discard some of the samples. Left samples start at index 0 and get greater, Right samples start at index Max and get smaller. We discard more samples on the left because these close range measurements usually have strong near field signal.”
以及询问iwr1642 车辆检测demo lab0013_traffic_monitoring_16xx例程远处检测目标横向位置偏移中,“range bin的个数和一维fft的点数相关。在TI的TM demo里,前面的几米默认是不检测的,所以把相关数据丢弃也是合理的。”

range in m = range index * (speed of light(3e8) * (digOutSampleRate * 1e3) / (2 * (freqSlopeConst * (1e6/1e-6)) * numRangeBins)) – range biasorrange index *range resolution
根据配置参数profileCfg 0 76 3 5 62.65 0 010.622 1 312 5510 0 0 48
numAdcSamples = 312 因此 numRangeBins = 512 ,那么 range index的范围就是0~511
rangeResolution = (speed of light(3e8) * (digOutSampleRate * 1e3) / (2 * (freqSlopeConst * (1e6/1e-6)) * numRangeBins))
= (3e8* 5510* 1e3) / (2 * 10.622 * 1e12 * 312) = 0.2494m
根据range = range index *range resolution(先不管bias) =60 * 0.2494 = 14.964m
那不是应该影响了15m的点云数据吗?(近10m或者更准确一点8m水平线以内没有观察到点云数据)
2)在之前帖子里您的回复先说FFT数据在近处会有一个泄露(高峰),因此需要进行Near field correction。后来又说需要修改cfarCfg
所以并不是需要进行Near field correction导致近10m或者更准确一点8m水平线以内没有观察到点云数据,而是因为cfarCfg 设定丢弃最开始的60个range bin吗?

谢谢

Chris Meng:

回复 user5877061:

你好,

请问减小cfarCfg.cfarDiscardLeft,对雷达近处没有点云的问题有改善?

user5877061:

回复 Chris Meng:

你好
有的,我把60改到5,近处也有点云数据。但是不明白这个数值定义关系具体如何?
望回复。

谢谢

Chris Meng:

回复 user5877061:

你好,

这个参数是CFAR算法的参数。建议你看看下面论坛讨论:

以及相关CFAR算法的源代码:

\mmwave_industrial_toolbox_3_6_2\labs\lab0013_traffic_monitoring_16xx\src\common\radarProcess.c

else if (config->cfarConfig.cfarMethod == 4)

{

cfarConfig->cfarType = RADARDEMO_DETECTIONCFAR_CASOCFAR;

cfarConfig->enableSecondPassSearch = 1;

\mmwave_industrial_toolbox_3_6_2\labs\lab0013_traffic_monitoring_16xx\src\common\modules\detection\CFAR\src\RADARDEMO_detectionCFAR.c

else if (((RADARDEMO_detectionCFAR_Type)detectionCFARInst->cfarType == RADARDEMO_DETECTIONCFAR_CASOCFAR)

|| ((RADARDEMO_detectionCFAR_Type)detectionCFARInst->cfarType == RADARDEMO_DETECTIONCFAR_CACCCFAR)

|| ((RADARDEMO_detectionCFAR_Type)detectionCFARInst->cfarType == RADARDEMO_DETECTIONCFAR_CAGOCFAR)

|| ((RADARDEMO_detectionCFAR_Type)detectionCFARInst->cfarType == RADARDEMO_DETECTIONCFAR_CAVGCFAR)

)

{

estOutput->numObjDetected = RADARDEMO_detectionCFAR_CAAll(

detectionCFARInput,

                           detectionCFARInst,

estOutput->rangeInd,

estOutput->dopplerInd,

estOutput->rangeEst,

estOutput->dopplerEst,

estOutput->rangeVar,

estOutput->dopplerVar,

estOutput->snrEst,

estOutput->noise);

\mmwave_industrial_toolbox_3_6_2\labs\lab0013_traffic_monitoring_16xx\src\common\modules\detection\CFAR\src\RADARDEMO_detectionCFAR_priv.c

int32_t RADARDEMO_detectionCFAR_CAAll(

/* first detectionCFARInst->guardSizeRange + detectionCFARInst->searchWinSizeRange samples starting from detectionCFARInst->leftSkipSize*/

for (k = (int32_t)detectionCFARInst->leftSkipSize + guardSize; k < (int32_t) detectionCFARInst->leftSkipSize + totalWinSize; k+=2 )

{

f2temp1 = _mem8_f2(&powerPtr[k]);

leftWinPower += (double)_hif2(f2temp1);

leftWinPower += (double)_lof2(f2temp1);

}

如果你对CASO CFAR算法不熟悉,建议先在网上搜索一下相关内容。

赞(0)
未经允许不得转载:TI中文支持网 » iwr1642 车辆检测参数问题
分享到: 更多 (0)