Part Number:DCA1000EVMOther Parts Discussed in Thread:AWR1642
我使用DCA1000和AWR1642录制了一些数据,模式是raw mode,得到的数据文件是.bin,其大小等于tx num * rx num * frame num * sample num * chirp num * 32 bit
mmwave studio生成的r-v热图如下:
我的理解是,其中的数据是按照real1, imag1, real2, imag2, ……分布的,每一个real和imag都是uint16
因此我这样处理了数据:
ret[0::1] = raw_frame[0::2] + 1j * raw_frame[1::2]
但是我接着做了2d fft,最后得到的range-doppler热图并不正确:
我还在网上找到了另一份开源代码,也是用于处理DCA捕获的数据的,这份代码是这样处理原始数据的:
# Separate IQ data ret[0::2] = raw_frame[0::4] + 1j * raw_frame[2::4] ret[1::2] = raw_frame[1::4] + 1j * raw_frame[3::4]
但是结果也不对:
这两张热图的横、纵坐标分别是doppler id和range id,相当于第一张图的上下反转,只是窄了一些。
请问这是不是数据格式的问题造成的?或者可能是哪里出了错误呢?
Shine:
请问是否有参考过下面文档里的9 Interpreting Binary File in MATLAB?https://www.ti.com/lit/an/swra581b/swra581b.pdf
,
Chenming He:
谢谢,我确认了一下,录制数据时,我是按照这个教程操作的:DCA1000EVM使用指南 – 嵌入式处理 – 技术文章 – E2E 设计支持 (ti.com)
因此,得到的数据是双通道,我找到的开源代码处理方法是正确的:
# Separate IQ data ret[0::2] = raw_frame[0::4] + 1j * raw_frame[2::4] ret[1::2] = raw_frame[1::4] + 1j * raw_frame[3::4]但是最后得到的r-d热图还是不正确,结果对比图就在问题描述里
,
Chenming He:
再请问一下,文件里只提到real和imag是16bit为一个数据的,那么解析它们时应该使用有符号整型还是无符号整型呢?
,
Shine:
请看一下下面的帖子是否有帮助。.bin文件先是LSB再是MSB。https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/914997/awr1642boost-time-domain-plot-in-matlab-postproc-is-different-to-what-i-generate-externally-in-python
,
Chenming He:
谢谢,先低位后高位我倒是没有弄错,但我之前用了无符号整型来读取,这导致了错误
,
Shine:
感谢分享!