Why my CIR data similarity in Los / NLOS environment

As we all know, CIR data under the NLOS environment should be more difficult to identify the first path. Why do I stack CIR data measured in the Los environment and cir data measured in the NLOS environment have little difference? Is the data I read true or processed by dacwave?

Hardware: mdek1001


Blue:nlos
Red:los

Is the CIR data I read not the real channel impulse response, but the data processed by some kind of filtering
Best regards
yzdll

What is your environment? For both of them you have a very strong signal and virtually no reflections so my guess would be fairly short range and in an open field.
It looks like your NLOS signal is very slightly weaker and has a few more reflections but not a lot. What did you use to block the line of sight?

Blue:Open space,playground,3m
Red:Messy office with partition, 3m
Maybe my NLOS environment is not bad enough?

It depends what your partition is made of. Cloth, plastic, plasterboard or even thin sheets of wood have very little impact while a thin layer of metal will have a huge effect.
Water is also a very effective at blocking the signal so standing in between the antennas is a rude but effective way to block the direct signal.

Also your CIR data has negative values which implies you are only looking at one part of it. The output gives both real and imaginary data, looking at the magnitude of the two combined (sqrt(real^2 + imag^2)) will give you a better view of total signal power.

thank you!
I’ll try it~

Why does someone use MAX(Q, I) + 1/4 MIN (Q, I) to calculate the amplitude?

The SQRT approx = MAX(Q, I) + 1/4 MIN (Q, I), where Q and I are absolute values of real and imaginary parts of complex sample.

It’s an approximation in order to run on lower end hardware.
Few embedded microcontrollers have hardware support for floating point maths, this means that it will take several hundred clock cycles to perform an accurate square root calculation.
In this situation the exact number isn’t too critical and so the speed / accuracy trade off of the approximation is worth it.
If you are running on a PC or something with a hardware FPU (or don’t care about speed) then ignore this approximation and use the true square root.

It completely answers my doubts
Thank you and Have a nice day!
Best regards
yzdll

Hi yzdll,

I noticed that you’re using mdek1001 to capture the CIR data. I wish to do the same thing using DWM1001 Dev Boards. But I came across with a post saying that the PANS came together with DWM1001 Dev doesn’t allow access to CIR data.

I’m new to Decawave and really appreciate if you could give me some hint how you did that. Are you using a customized firmware other than PANS? Is there any open-source code? How to get started?

Thank you!

Hello @jleng,
Yes you have to make your own firmware to capture the CIR data. The “original” firmware do not have that funcionality (as i remenber). There are some examples on the decawave site where you can obain a zip file thats shows how you could implement a different type of things, i dont know if there is one there for the CIR. There is another document(something like API guide decawave) that shows as describes all the API on the Decawave C library and i belive there exists one api to load the CIR data on a variable. Keep in mind that the real part and imaginary comes seprated and you have to determine the mod.
Hope i could help.
Cheers

Hi ruigomez,

Thank you so much!

Just want to double check — could the zip file you mentioned serve as a starting point to developing custom firmware for dwm1001-dev? Another thing is that I keep seeing people talking about this which also include some examples, but not sure if this is also relevant to customizing the firmware. Are you by any chance familiar with it?

Lot of thanks,
jleng

Hello @jleng,
Yes that’s the exacly the starting code you have to use of you really want to build your owm firmware. Keep in mind that in that examples is used the ss-twr (single-side TWR). The other api document fallows a number of examples of code “how to use” on various situations. Find something like source code on Decawave site platform.
I need to refer one thing that can make you confused. The actual PANS 2.0 offers the possibility to actual write simple code inside their firmware but you cannot control the ranging process. It depends in what you want to use or developed. Ther documentation shows how all the “stack” is arranged.
Hope I could help.
Cheers

1 Like

Hi @ruigomes,

Got it. Thank you so much for the help!

-jleng