51uwb.cn

标题: BP400如何获取CIR [打印本页]

作者: ABC    时间: 2023-5-12 16:03
标题: BP400如何获取CIR
如题,想要获取CIR数据应该怎么操作,需要修改源码的哪部分?

作者: 蓝点无限    时间: 2023-5-13 08:56
代码参考如下:主要定义声明:

  1. static dwt_rxdiag_t rx_diag;
  2. #define ACCUM_DATA_LEN 50
  3. static uint8 accum_data[ACCUM_DATA_LEN];
  4. int max(int a, int b)
  5. {
  6.         if(a>b)
  7.                 return a;
  8.         else
  9.                 return b;
  10. }

  11. int min(int a, int b)
  12. {
  13.         if(a < b)
  14.                 return a;
  15.         else
  16.                 return b;
  17. }

  18. void dwNLOS_ExtractAndPrintCIR()
  19. {
  20.         uint8 cir[5]={0};
  21.         for(int i = 0;i<1016;i++)
  22.         {
  23.                 dwt_readaccdata(cir, 5, 4*i);
  24.                 int16 real =0;
  25.                 int16 imag =0;
  26.                 double amp=0;
  27.                 real =  (int16)cir[2] << 8 | (int16)cir[1];/*printf("%i,",real);*/
  28.                 imag =  (int16)cir[4] << 8 | (int16)cir[3]; /*printf("%u\n",imag);*/
  29.                 printf("index:%d,real:%i,imag:%i\r\n",i, real,imag);
  30.         }
  31. }
复制代码
在UWB接收完信号执行如下代码

  1.         /* Read diagnostics data. */
  2.                                                                 dwt_readdiagnostics(&rx_diag);
  3.                                                                  /* Read accumulator */
  4.                                                                 dwNLOS_ExtractAndPrintCIR();
  5.                                                                 printf("Count of preamble symbols accumulated: %d \r\n",rx_diag.rxPreamCount);
  6.                                                                 printf("Index of first path is %d \r\n", rx_diag.firstPath / 64);
  7.                                                                 printf("CIR max growth CIR: % d \r\n",rx_diag.maxGrowthCIR);
  8.                                                                 printf("LDE max value of noise: %d \r\n", rx_diag.maxNoise);
  9.                                                                 printf("Std of noise is %d \r\n",rx_diag.stdNoise);
  10.                                                                 printf("First Path AMP2: %d \r\n",rx_diag.firstPathAmp2);
  11.                                                                 printf("First Path AMP3: %d \r\n",rx_diag.firstPathAmp3);
  12.                                                                 printf("First Path AMP1: %d \r\n",rx_diag.firstPathAmp1);
复制代码



作者: ABC    时间: 2023-5-13 13:40
蓝点无限 发表于 2023-5-13 08:56
代码参考如下:主要定义声明:

在UWB接收完信号执行如下代码

可以问一下这段代码需要放在keil源码的哪个位置吗,刚接触硬件不太懂
作者: 蓝点无限    时间: 2023-5-14 09:42
ABC 发表于 2023-5-13 13:40
可以问一下这段代码需要放在keil源码的哪个位置吗,刚接触硬件不太懂

看上面描述,一个是声明定义,一个是在uwb接收完成后调用。
先把之前的代码做简单流程分析吧
作者: ABC    时间: 2023-5-15 15:01
蓝点无限 发表于 2023-5-14 09:42
看上面描述,一个是声明定义,一个是在uwb接收完成后调用。
先把之前的代码做简单流程分析吧

好的,谢谢
作者: ABC    时间: 2023-5-23 10:22
本帖最后由 ABC 于 2023-5-23 11:02 编辑

请问代码中的printf是输出到了哪里?我将代码烧录到uwb后,如何在电脑上看到它采集的cir的波形,需要使用其它软件吗?
作者: 蓝点无限    时间: 2023-5-25 08:46
ABC 发表于 2023-5-23 10:22
请问代码中的printf是输出到了哪里?我将代码烧录到uwb后,如何在电脑上看到它采集的cir的波形,需要使用其 ...

是原始数据,printf是打印的串口。 你收到原始数据后再用工具生成波形,matlab or Excel 等等
作者: qweqwewc    时间: 2023-6-6 22:09
本帖最后由 qweqwewc 于 2023-6-6 22:10 编辑
蓝点无限 发表于 2023-5-25 08:46
是原始数据,printf是打印的串口。 你收到原始数据后再用工具生成波形,matlab or Excel 等等

为何打印出来一堆0,只有各别的有数值啊
作者: 蓝点无限    时间: 2023-6-14 23:15
ABC 发表于 2023-6-11 17:01
请问可以提供一下matlab上这部分的代码吗,谢谢

我们测试过程没有用matlab,是所有数据拷贝到excel后,分列,然后提取相关数据,用Excel绘制图形
作者: ABC    时间: 2023-6-15 14:40
蓝点无限 发表于 2023-6-14 23:15
我们测试过程没有用matlab,是所有数据拷贝到excel后,分列,然后提取相关数据,用Excel绘制图形

请问多基站和1标签之间同时获取通信CIR数据,并通过串口打印出来,应该如何操作?
代码需要如何修改,是否需要和定位场景一样用基站1连接串口?
作者: 蓝点无限    时间: 2023-6-15 22:33
ABC 发表于 2023-6-15 14:40
请问多基站和1标签之间同时获取通信CIR数据,并通过串口打印出来,应该如何操作?
代码需要如何修改,是 ...

CIR打印太费时间了,本身就是一个debug功能,正式场合不能用。一个完整CIR打印,测距可能进行几十次了




欢迎光临 51uwb.cn (http://51uwb.cn/) Powered by Discuz! X3.3