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.

[参考译文] AWR2944EVM:修改演示源代码的最佳实践。

Guru**** 2439710 points
Other Parts Discussed in Thread: AWR2944EVM, AWR1843BOOST, AWR2944

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1538053/awr2944evm-best-practice-for-modifying-the-demo-source-code

器件型号:AWR2944EVM
Thread 中讨论的其他器件: AWR1843BOOSTAWR2944

工具/软件:

您好、

我正在进行 AWR2944EVM 开箱即用演示、希望在片上集成  STFT(和后续的匹配追求) DPC 中。 我计划从 STFT 开始、因为它在概念上更简单。

根据我的理解、AWR2944EVM 确实实现了 不会 在内部捕获复杂的 IQ 数据、而仅捕获这些数据 ADC 实数样本 。 雷达数据立方体反映了传统布局、但随着时间的推移 已计算出范围 FFT 。 如果不准确、请更正我!

在之前使用 AWR1843BOOST(提供 IQ 数据)时、我的后处理 STFT 计算如下所示:

#——— 创建用于计算 STFT(——)的慢时间序列 
#Go over each rx、在后面建立在非相干和之上
对于 (N_Rx) 范围内的 rx_idx:
SLOW_TIME_DATA_rx =[]

#如果 STFT 模式是固定的,则在一个恒定范围区间超过设定的帧数
如果 STFT_MODE =“固定“
对于 (start_frame、stop_frame) 范围内的 frame_idx:

如果 ADC_SAMPLING_MODE =“1":“:
frame_data = iq_data[frame_idx, rx_idx,:,:]
Elif ADC_SAMPLING_MODE ==实数
frame_data = I_data[frame_idx, rx_idx,:,:]

#我们来测试 STFT 对窗口数据的行为,这个代码不是干的,而是仅用于演示目的!
RANGE_WINDOW = NP.Hanning (N_SAMPLES)
frame_dat_win = frame_data * range_window[np.newaxis,:]

RANGE_FFT = NP.fft.FFT (FRAME_dat_win、Axis=1)
BIN_DATA = RANGE_FFT[:、RANGE_BIN]

虽然理想情况下会使用非窗口化数据、但我知道 HWA 在距离 FFT 计算期间应用窗口、因此雷达立方体包含已经窗口化的数据、这是可以接受的。 现在、我要为 AWR2944EVM 实现相同的片上功能。 我的实施理念如下:

  • 在主 DPC 调用 dpc_objectDetection_execute 中、直接在使用 DPU_RangeProcHWA_Process 格式化 radarcube 后添加一个名为 fixedSTFT_execute 的自定义函数、该函数放置在新的 classificationdpu.c 文件中、以及用于分配缓冲区空间等函数。fixedSTFT_init ()
  • 这还需要修改除 包含 DPC_objectDetection_execute  的 objectdetection.c 之外的其他几个文件、特别是需要添加新的分类句柄、这反过来意味着修改 objectdetection.h 和 objectdetectioninternal.h 以更改 ObjDetectionObj 结构的定义。 除此之外、还需要在 objectdetection.c 文件的 init 和 deint 内添加新的访问器、而非 STFT_handle。
  • 此外、还存在通过 UART 等发送结果的问题

我认为这种方法是可行的、但是我 T 需要在 DPC/DPU 框架内深入接触多个文件。 ‑、‑有一种不那么侵入性的建议方法(可能通过从 dss_main.c 调用的独立模块或更高的 μ s 级回调)来添加此类功能、以便我不必如此重地修改核心 DPU?

好极了  

标记  

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

    您好:Mark、

    在 AWR2944 中、仅支持实际 ADC 模式。

    如果您使用 DDM 演示、radarcube 是压缩的 1D FFT。 根据我的理解、您希望根据当前处理链中的操作、针对给定数量的帧、获取特定距离库的 1D FFT。 由于这是一个自定义实现、因此我们可能不知道您可能需要进行哪些所有更改。 如果您不想大量更新现有文件、您可以选择为自定义算法添加单独的 DPU 或单独的文件。

    此致、

    Samhitha

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

    你好、Samhitha、

    是的、我正在使用 DDM 演示。 正确的答案是:“ 您希望在当前处理链中完成的操作之上、针对给定数量的帧、获取特定距离库的 1D FFT “。 在实时系统的情况下、单帧/CPI 就足够了。

    我的问题实际上与您是否有在演示中实现此类低级计算的推荐方法有关? 如果是、您建议在哪个阶段将我的功能连接到现有代码?

    另外、我不确定使用单独的 DPU 是什么意思、您是指 在 RTOS 上生成新的单独 DPU 吗?  

    此致、

    标记  

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

    标记、

    我的问题实际上是关于您是否有在演示中实现此类低级计算的推荐方法? 如果是、您建议在哪个阶段将我的功能连接到现有代码?

    我们不建议如何实现此算法、也不建议在当前演示中的何处包含此算法。 请记住、在最新的 SDK (4.7.1.3) 中、在 Radarcube 上覆盖多普勒 CFAR 之后生成的 detObjList。 因此、应该在多普勒处理之前添加这段代码。 否则、您可以参考较旧的 SDK(可能是 4.6.0.1)、其中 detObjList 在 DSS_L3 上分配了单独的存储器。  

    另外、我不知道您使用单独的 DPU 意味着什么、您是指 在 RTOS 上生成新的单独 DPU 吗?  [/报价]

    通过单独的 DPU,我打算添加一个单独的模块,如 Rangeproc, dopplerproc,而不对现有的文件进行太多的更改。

    此致、

    Samhitha