ABC 发表于 2023-5-12 16:03:48

BP400如何获取CIR

如题,想要获取CIR数据应该怎么操作,需要修改源码的哪部分?

蓝点无限 发表于 2023-5-13 08:56:37

代码参考如下:主要定义声明:

static dwt_rxdiag_t rx_diag;
#define ACCUM_DATA_LEN 50
static uint8 accum_data;
int max(int a, int b)
{
        if(a>b)
                return a;
        else
                return b;
}

int min(int a, int b)
{
        if(a < b)
                return a;
        else
                return b;
}

void dwNLOS_ExtractAndPrintCIR()
{
        uint8 cir={0};
        for(int i = 0;i<1016;i++)
        {
                dwt_readaccdata(cir, 5, 4*i);
                int16 real =0;
                int16 imag =0;
                double amp=0;
                real =(int16)cir << 8 | (int16)cir;/*printf("%i,",real);*/
                imag =(int16)cir << 8 | (int16)cir; /*printf("%u\n",imag);*/
                printf("index:%d,real:%i,imag:%i\r\n",i, real,imag);
        }
}
在UWB接收完信号执行如下代码

      /* Read diagnostics data. */
                                                                dwt_readdiagnostics(&rx_diag);
                                                               /* Read accumulator */
                                                                dwNLOS_ExtractAndPrintCIR();
                                                                printf("Count of preamble symbols accumulated: %d \r\n",rx_diag.rxPreamCount);
                                                                printf("Index of first path is %d \r\n", rx_diag.firstPath / 64);
                                                                printf("CIR max growth CIR: % d \r\n",rx_diag.maxGrowthCIR);
                                                                printf("LDE max value of noise: %d \r\n", rx_diag.maxNoise);
                                                                printf("Std of noise is %d \r\n",rx_diag.stdNoise);
                                                                printf("First Path AMP2: %d \r\n",rx_diag.firstPathAmp2);
                                                                printf("First Path AMP3: %d \r\n",rx_diag.firstPathAmp3);
                                                                printf("First Path AMP1: %d \r\n",rx_diag.firstPathAmp1);

ABC 发表于 2023-5-13 13:40:17

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

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

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

蓝点无限 发表于 2023-5-14 09:42:49

ABC 发表于 2023-5-13 13:40
可以问一下这段代码需要放在keil源码的哪个位置吗,刚接触硬件不太懂

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

ABC 发表于 2023-5-15 15:01:12

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

好的,谢谢

ABC 发表于 2023-5-23 10:22:25

本帖最后由 ABC 于 2023-5-23 11:02 编辑

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

蓝点无限 发表于 2023-5-25 08:46:25

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

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

qweqwewc 发表于 2023-6-6 22:09:16

本帖最后由 qweqwewc 于 2023-6-6 22:10 编辑

蓝点无限 发表于 2023-5-25 08:46
是原始数据,printf是打印的串口。 你收到原始数据后再用工具生成波形,matlab or Excel 等等
为何打印出来一堆0,只有各别的有数值啊

蓝点无限 发表于 2023-6-14 23:15:22

ABC 发表于 2023-6-11 17:01
请问可以提供一下matlab上这部分的代码吗,谢谢

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

ABC 发表于 2023-6-15 14:40:38

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

请问多基站和1标签之间同时获取通信CIR数据,并通过串口打印出来,应该如何操作?
代码需要如何修改,是否需要和定位场景一样用基站1连接串口?
页: [1] 2
查看完整版本: BP400如何获取CIR