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.

[参考译文] IWRL6432BOOST:rangeproc_test — 文件长度和标头参数误解

Guru**** 2552450 points
Other Parts Discussed in Thread: IWRL6432BOOST, IWRL6432AOPEVM

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1541926/iwrl6432boost-rangeproc_test---file-length-and-header-parameters-misunderstanding

器件型号:IWRL6432BOOST
Thread 中讨论的其他器件: IWRL6432AOPEVM

工具/软件:

我目前正在准备传感器的研发、并使用 IWRL6432BOOST/IWRL6432AOPEVM 电路板进行各种实验、并已达到距离 DPU 测试。 这是测试..\MMWAVE_L_SDK_05_05_03_00\examples\datapath\rangeproc\xwrL64xx-evm\m4fss0-0_freeRTOS

在研究测试时、我发现数据文件的大小与此文件标头中指定的数据之间存在差异。 当将雷达 ADC 源/配置加载为“..\BinData\Major_motion\ADC_DATA_0001_CtestAdc6Ant.bin"且“且大小为 5898256 字节时、我会在标头中看到以下数据(前 4 个 int32_t 值):
numTx天 线= 2
numRangeBins = 64
numChirpsPerFrame = 64
数字帧 60

在调试器中运行测试并检查 rangeproc_test_main.c 会显示、从文件中读取单个雷达数据帧、该帧作为全部 64 个线性调频脉冲的 384 个样本(3 个接收天线)的片段序列。

对于测试中硬编码的 numRxTianes = 3、我们有 60*64*3*128=1,474,560 个样本、或 2,949,120 字节。 但是、文件为 5,898,256 大小中的字节。 标头为 4*4=16 字节、其余为数据块:5,898,256-16 = 5,898,240 从而达到原来的两倍。

看起来 numChirpsPerFrame 应该是 128、或者 numFrames 应该是 120。 我不考虑计算应考虑使帧中样本数加倍的发射天线数量的选项、因为我正在分析代码。

请说明我的问题所在?

谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉、标题的复制粘贴错误。 该标头为:

    接头(前 4 个 int32_t 值):
    numAdcSamples = 128
    numVirtual天 线= 6
    numChirpsPerFrame = 64
    数字帧 60

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    如果您有 64 个范围频段、则有 128 个 ADC 样本。

    6 个虚拟天线/线性调频脉冲* 128 个 ADC 样本/线性调频脉冲* 64 个线性调频脉冲/帧* 60 帧应该是正确的计算、因为您有 3RX 和 2 个 TX 天线。

    此致、

    Nate

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、
    我完全同意您的计算。 但我在调试器中研究代码和测试时看到了不同的结果。 看、测试在一个循环中读取一帧 ADC 数据:
    ```μ s

    /*从文件中读取啁啾*/
    for (I = 0;I < testConfig.numChirpsPerFrame;I++)

    if(!endOfFile)

    /*读取 ADC 样本的一个线性调频脉冲并将数据放入 ADC 测试缓冲区*/
    numReadSamples = fread (gAdcTestBuff、sizeof (uint16_t)、numAdcSamplesPerEvt、FileID);
    if (numReadSamples != numAdcSamples PerEvt)

    endOfFile = true;
    }
    }

    /*用于模拟线性调频脉冲可用性 IRQ 的手动触发器*/
    ErrorCode = EDMAEnableTransferRegion(
    baseAddr、RegionID、EDMA_APPSS_TPCC_B_EVT_CHIRP_AVAY_IRQ、EDMA_TRIG_MODE_MANUAL);//EDMA_TRIG_MODE_EVENT
    if (errorCode!= 1)

    DebugP_LOG(“错误:EDMA 启动传输返回%d\n“,errorCode);
    返回;
    }

    ClockP_USleep (1000);//1s 睡眠

    }/*线性调频脉冲环路结束*/


    ```μ s
    初步计算的 numAdcSamplesPerEvt 如下:
    ```μ s
    numAdcSamplesPerEvt =(testConfig.numAdcSamples * testConfig.numRxTianes);

    ```μ s

    因此、实际上只会从`ADC_DATA_0001_CtestAdc6Ant.bin`文件中读取一半的 ADC 数据! 使用来自`ADC_DATA_0001_CtestAdc6Ant_demo_RadarCube.bin`文件的地真多维数据集来测试雷达多维数据集时存在相同的问题!

    您使用的所有地方都是“testConfig.numRx天 线“、而不是“testConfig.numVirtual天 线“!?

    请看看这些参数和我的第一篇文章与计算。

    谢谢。



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    线性调频脉冲/帧的数量是否可以处理此问题? 当您使用两个 TX 时、线性调频脉冲数/帧是每个发送器每帧的线性调频脉冲数、还是是所有发送器每帧的线性调频脉冲数、可能存在一些歧义。 如果您查看 rangeProc 文档、它会对每个线性调频脉冲执行距离 FFT。 如果使用两根 TX 天线、它会为每个 TX 天线计算一次距离 FFT。 如果这里有一个像你描述的错误,那么你应该能够双重  testConfig.numChirpsPerFrame 没有代码中断。 是这样吗?

    此致、

    Nate

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    感谢您对测试更简单的良好建议。 实际上、在 TI 文档和其他来源中、每帧的线性调频脉冲数通常被解释得非常明确。 即使在相同的来源中、有时一个位置的这个数字对应于天线的传输次数、有时对应于一组虚拟天线。 有时很难正确构建整个处理直到生成热图,因为这种混淆不能提供清晰度,并且代码通常包含 2 或 3 的魔法分,以获得多普勒线性调频脉冲的数量,并混淆更多的东西。 为了彻底理解这一点、我正在研究 SDK 中包含的所有测试。 非常感谢 TI 公司提供这个机会。

    我采取了你的建议,并加倍 numChirpsPerFrame 的数量。 之后、我必须进行更多的编辑才能使测试正常工作。 实际测试现在在 SDK 中、它只检查一半的雷达立方体。 顺便说一下、文件`ADC_DATA_0001_CtestAdc6Ant_demo_RadarCube.bin`(用作接地真值)的后半部分用零填充、因此我也将其替换。 现在、一切都对我来说正常、雷达的使用非常清晰。

    非常感谢、

    此致