Trading range for accuracy

I only need to measure the distance between two objects that will be within a 1 or 2 meter cube of each other. Is it possible to increase the accuracy of the distance measurement when a much smaller range is expected. For example, can I design a smaller antenna since it does not have to transmit as far and then the location has a tighter location?

A smaller range does not naturally help increase accuracy.

What does help is taking multiple measurements and combining them into a more precise answer. This requires two things: a slow enough output data rate that multiple raw measurements can be made during that time, and enough electrical power (battery?) so the extra energy used in multiple measurements is acceptable. Would your system meet those requirements?

For example, if you took 100 measurements, you would get a 10 fold improvement in precision. That could occur in 100 ms for a tightly coded system, yielding 10 Hz answers with a precision of sub 1 cm.

A smaller antenna might help a bit, but the effect is small. More important is the antenna needs to have very uniform group delay variation over its pattern. That will often dominate errors in the system if the antennas can vary in orientation to each other.

Mike Ciholas, President, Ciholas, Inc
3700 Bell Road, Newburgh, IN 47630 USA
mikec@ciholas.com
+1 812 962 9408

1 Like

Thanks for the response Mike.

Multiple measurements would be too slow for what I have in mind.

You can make things go pretty fast. For two nodes, we could probably get to 5000 ranges per second. With a 2.5 cm std dev single measurement (what we typically get with our hardware), 50 samples would reduce this to about 4 mm std dev. That’s basically 1 cm precision at 100 Hz. How accurate and fast do you need to go?

I suspect a system based on phased array anchor array could possibly get down to 1 mm precision and support 3000 measurements per second per device for 2 devices. This would be a research project, but I believe it is possible and would represent the peak performance one could possibly get using UWB. The small size of your service volume enables solutions not otherwise possible in general deployments, namely putting an anchor array on a common electrical time base.

If you want better help, you need to provide more details on your objectives.

Mike Ciholas, President, Ciholas, Inc
3700 Bell Road, Newburgh, IN 47630 USA
mikec@ciholas.com
+1 812 962 9408

I’d be interested to know how you would go about doing that.

I make it the minimum packet time is ~104 us.
For a two way range you need 3 packets = 312 us = ~3200 ranges per second.
If you used a single sided two way range that would increase to ~4800 ranges, close to but still just short of 5000.

That’s assuming zero turn around time at each end of the link which is clearly not possible in a two way range system.

You could get a better rate by interleaving messages but then each measurement isn’t truly independent and so I don’t think the maths for the rate at which the noise reduces still holds true. And I don’t think that could gain you enough by doing that to get up to 5000 anyway, all that does is allow you to run a two way range in the time of a single sided range and so it would still max out at ~4800.

Or were you talking about an infrastructure based TDOA system what got locations from two devices at 5000 Hz and then calculated the distance? That I could see working at close to 5000, the zero idle time assumption would be easier to obtain in that environment making it possible to get closer to the theoretical max. However I think the 4800 number would still work out as the upper limit unless you assumed one of the two points was static and so measured the two points at different rates.

Am I missing some trick to get the rate up? Or were you just rounding up a little from 4800?

Some hints:

Packet timing is at the SFD, so you don’t have to send the PHR or data portions. You do this by terminating the transmit early. The packet doesn’t need any other information since it is a closed system and assumed to be from the other node involved.

You ping pong packets for DS-TWR. This is more accurate than SS-TWR, and while you do reuse one measurement each new range computation, that still has a beneficial effect on noise reduction. This method also means both sides can update range on every packet they receive once started.

A potentially faster method is to equip each side with two DW1000 chips attached to the same antenna. One would be TX only, other would be RX only, which negates turn around time issues. Both chips are clock locked which means they have the same timing. This idea could be extended to use more DW1000 on each antenna, each one using a different channel and/or PRF, so you can get even more measurements per second that way.

We build UWB for max performance.

Mike Ciholas, President, Ciholas, Inc
3700 Bell Road, Newburgh, IN 47630 USA
mikec@ciholas.com
+1 812 962 9408

Very sneaky, I like it. Only useful if you already know the transmitter but as you said, in this situation that’s not an issue.