Part Number:DCA1000EVM
为什么我用DCA1000EVM Control CLI 工具得到的原始数据,无法用官方提供的read_bin.m文件处理呢?一直会报错?请问我该如何处理?
gaojun gao:
我的cf.json配置如下:我的.cfg文件配置如下:。如果我把cf.json中的captureStopMode的duration状态改为infinite,并且录制的时间达到14s,则可以使用官方提供的read_bin.m文件进行处理,在录制时间为8s时则无法使用read_bin.m进行处理。请问是上面原因?
,
Gary Lu:
您可以 检查一下`read_bin.m`文件的源代码,查看其对于录制数据长度的限制。
,
gaojun gao:
请问是这部分代码吗?
,
gaojun gao:
DCA1000EVM Control CLI 工具得到的原始数据通过read_bin.mat读出来的adcData大小为16885960×1,而不是像mmwave studio读取的原始数据经过read_bin.mat读出来的adcData大小为4×16885960
,
Gary Lu:
您好,他确实是一个部分示例代码
,
Gary Lu:
DCA1000EVM Control CLI 工具得到的原始数据是经过压缩的二进制数据,需要通过解压缩和解密后才能得到原始的 ADC 数据。在解压缩和解密后,得到的数据大小应该与 mmWave Studio 中读取的原始数据大小相同,即为 4×16885960。
如果您使用的是 MATLAB,可以使用 mmWave Toolbox 中的 readDCA1000 函数来读取解压缩和解密后的 ADC 数据。该函数会返回一个大小为 4xN 的矩阵,其中 N 是采样点数。您可以将该矩阵保存到 .mat 文件中,然后使用 MATLAB 的 load 函数来加载数据。
以下是一个示例代码,用于读取 DCA1000EVM Control CLI 工具得到的原始数据:
% 读取二进制文件 fid = fopen('data.bin', 'r'); data = fread(fid, inf, 'uint8'); fclose(fid);% 解密和解压缩数据 adcData = readDCA1000(data);% 保存数据到 .mat 文件 save('adcData.mat', 'adcData');然后,您可以使用以下代码来读取保存的 .mat 文件:
% 读取 .mat 文件 load('adcData.mat');% 处理 ADC 数据 % ...请注意,解密和解压缩数据可能需要一些时间