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.

DCA1000EVM: DCA1000EVM CLI Control 工具

Part Number: DCA1000EVM

为什么我用DCA1000EVM Control CLI 工具得到的原始数据,无法用官方提供的read_bin.m文件处理呢?一直会报错?请问我该如何处理?

  • 我的cf.json配置如下: 我的.cfg文件配置如下: 。如果我把cf.json中的captureStopMode的duration状态改为infinite,并且录制的时间达到14s,则可以使用官方提供的read_bin.m文件进行处理,在录制时间为8s时则无法使用read_bin.m进行处理。请问是上面原因?

  • 您可以 检查一下`read_bin.m`文件的源代码,查看其对于录制数据长度的限制。

  •  请问是这部分代码吗?

  • DCA1000EVM Control CLI 工具得到的原始数据通过read_bin.mat读出来的adcData大小为16885960x1,而不是像mmwave studio读取的原始数据经过read_bin.mat读出来的adcData大小为4x16885960

  • 您好,他确实是一个部分示例代码

  • DCA1000EVM Control CLI 工具得到的原始数据是经过压缩的二进制数据,需要通过解压缩和解密后才能得到原始的 ADC 数据。在解压缩和解密后,得到的数据大小应该与 mmWave Studio 中读取的原始数据大小相同,即为 4x16885960。

    如果您使用的是 MATLAB,可以使用 mmWave Toolbox 中的 readDCA1000 函数来读取解压缩和解密后的 ADC 数据。该函数会返回一个大小为 4xN 的矩阵,其中 N 是采样点数。您可以将该矩阵保存到 .mat 文件中,然后使用 MATLAB 的 load 函数来加载数据。

    以下是一个示例代码,用于读取 DCA1000EVM Control CLI 工具得到的原始数据:

    Fullscreen
    1
    2
    3
    4
    %
    fid = fopen('data.bin', 'r');
    data = fread(fid, inf, 'uint8');
    fclose(fid);
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Fullscreen
    1
    2
    3
    4
    5
    %
    adcData = readDCA1000(data);
    % .mat
    save('adcData.mat', 'adcData');
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    然后,您可以使用以下代码来读取保存的 .mat 文件:

    Fullscreen
    1
    2
    3
    4
    5
    % .mat
    load('adcData.mat');
    % ADC
    % ...
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    请注意,解密和解压缩数据可能需要一些时间