Hello every one I was collecting some data and I was comparing the data with another dataset using Decawave DWm1001, I was comparing the results for the CIR the index between 650-950but as you can see that there is a huge difference between the magnitudes, and both are collected in the LOS condition, do you think that this is weired or normal ,I will be thankful if you please help me with that, Here I attached how I red the CIR data:
void
get_absolute_cir(int32_t *a_out,int32_t *b_out )
{
uint16_t chunk_len = 0;
uint16_t acc_len_bytes = 1016*4;
int32_t a = 0; /* Real part /
int32_t b = 0; / Imaginary part */
uint16_t cir_sample_counter = 0;
uint16_t max_bytes = ((0 + 1015) * 4 < acc_len_bytes) ? ((0 + 1015) * 4) : acc_len_bytes;
for(uint16_t j = 0 * 4; j < max_bytes; j = j + ACC_READ_STEP) {
/* Select the number of bytes to read from the accummulator */
chunk_len = ACC_READ_STEP;
if (j + ACC_READ_STEP > max_bytes) {
chunk_len = max_bytes - j;
}
//printf(“%s:%u dwt_readaccdata chunc_len %u \n”,FUNCTION,LINE,chunk_len);
dwt_readaccdata(acc, chunk_len + 1, j);
/* Store the bytes read as complex numbers */
/* Ignore dummy octet by starting with k=1 */
for(int k = 1; k < chunk_len + 1; k = k + 4) {
a = (int32_t) (int16_t) (((acc[k + 1] & 0x00FF) << 8) | (acc[k] & 0x00FF));
b = (int32_t) (int16_t) (((acc[k + 3] & 0x00FF) << 8) | (acc[k + 2] & 0x00FF));
a_out[cir_sample_counter] = a;
b_out[cir_sample_counter] = b;
// printf("CIR cnt %u val %d\n",cir_sample_counter, (int) abs_val);
cir_sample_counter++;
}
}
}