51uwb.cn

 找回密码
 立即注册
查看: 3649|回复: 10
打印 上一主题 下一主题

BP400如何获取CIR

[复制链接]

1

主题

5

帖子

21

积分

新手上路

Rank: 1

积分
21
跳转到指定楼层
楼主
发表于 2023-5-12 16:03:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,想要获取CIR数据应该怎么操作,需要修改源码的哪部分?
回复

使用道具 举报

35

主题

1053

帖子

4531

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4531
沙发
发表于 2023-5-13 08:56:37 | 只看该作者
代码参考如下:主要定义声明:

  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);
复制代码


回复

使用道具 举报

1

主题

5

帖子

21

积分

新手上路

Rank: 1

积分
21
板凳
 楼主| 发表于 2023-5-13 13:40:17 | 只看该作者
蓝点无限 发表于 2023-5-13 08:56
代码参考如下:主要定义声明:

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

可以问一下这段代码需要放在keil源码的哪个位置吗,刚接触硬件不太懂
回复

使用道具 举报

35

主题

1053

帖子

4531

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4531
地板
发表于 2023-5-14 09:42:49 | 只看该作者
ABC 发表于 2023-5-13 13:40
可以问一下这段代码需要放在keil源码的哪个位置吗,刚接触硬件不太懂

看上面描述,一个是声明定义,一个是在uwb接收完成后调用。
先把之前的代码做简单流程分析吧
回复

使用道具 举报

1

主题

5

帖子

21

积分

新手上路

Rank: 1

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

好的,谢谢
回复

使用道具 举报

1

主题

5

帖子

21

积分

新手上路

Rank: 1

积分
21
6#
 楼主| 发表于 2023-5-23 10:22:25 | 只看该作者
本帖最后由 ABC 于 2023-5-23 11:02 编辑

请问代码中的printf是输出到了哪里?我将代码烧录到uwb后,如何在电脑上看到它采集的cir的波形,需要使用其它软件吗?
回复

使用道具 举报

35

主题

1053

帖子

4531

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4531
7#
发表于 2023-5-25 08:46:25 | 只看该作者
ABC 发表于 2023-5-23 10:22
请问代码中的printf是输出到了哪里?我将代码烧录到uwb后,如何在电脑上看到它采集的cir的波形,需要使用其 ...

是原始数据,printf是打印的串口。 你收到原始数据后再用工具生成波形,matlab or Excel 等等
回复

使用道具 举报

0

主题

2

帖子

6

积分

新手上路

Rank: 1

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

为何打印出来一堆0,只有各别的有数值啊

屏幕截图 2023-06-06 221005.png (17.1 KB, 下载次数: 7567)

屏幕截图 2023-06-06 221005.png
回复

使用道具 举报

35

主题

1053

帖子

4531

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4531
9#
发表于 2023-6-14 23:15:22 | 只看该作者
ABC 发表于 2023-6-11 17:01
请问可以提供一下matlab上这部分的代码吗,谢谢

我们测试过程没有用matlab,是所有数据拷贝到excel后,分列,然后提取相关数据,用Excel绘制图形
回复

使用道具 举报

1

主题

5

帖子

21

积分

新手上路

Rank: 1

积分
21
10#
 楼主| 发表于 2023-6-15 14:40:38 | 只看该作者
蓝点无限 发表于 2023-6-14 23:15
我们测试过程没有用matlab,是所有数据拷贝到excel后,分列,然后提取相关数据,用Excel绘制图形

请问多基站和1标签之间同时获取通信CIR数据,并通过串口打印出来,应该如何操作?
代码需要如何修改,是否需要和定位场景一样用基站1连接串口?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

bphero Inc.  

GMT+8, 2024-11-23 12:13 , Processed in 0.029227 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表