In an attempt to model the range bias experienced at different received signal levels, I modified the example double-sided two way ranging code to be able to adjust the tx level and log the received signal level.
However, when collecting data with an initiator and responder at 1m separation, the received signal levels I see are in the range of -58.5dBm to -34.5dBm.
This seems way off when compared to the diagram in the “Sources of error in TWR schemes” doc (shown below).
Are the ranges I’m experiencing acceptable? If so, why are they so dissimilar to the graph below and what can I do to log a received signal level in this range?
Not a direct answer to your question but it may help.
I found that the signal level measurements were relatively noisy. When sitting stationary the measured level was not particularly stable and applying corrections based on them ended up increasing the range noise.
You may get better results if you make the following assumptions:
- The signal has line of sight.
- your antenna is reasonably omni-directional
- that the transmitter is set to a known power level
If you make those assumptions then received signal level becomes a function of distance. You are already measuring distance. So if you apply a distance related correction you can correct for the signal level effects.
Using this method I can get a the mean measurement error down to just under +/- 2cm for ranges from 1m to 50m.