Thread 中讨论的其他器件: AWR1843BOOST、 AWR2944
工具/软件:
您好、
我正在进行 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?
好极了
标记