TDOA application

@shao ,
My second LimeSDR is on its way. As someone mentioned above, distance between 2 LimeSDR may larger than 1km. that’s what i am going to try.
For now I’ve read some theories about TDOA. And I found that we can apply some of them in this application for precision improvement. Papers about RSSI for distance measurement will also work well.

2 Likes

OK, here I am going to update my work report these days.
i’ve found that the topic of phase coherence for MIMO applications is getting hot and many guys are doing the test. but few people are lucky enough to reach the solution.
since TDOA is quite a phase-coherence related application, we are trying the plan B to make it works.
We use TWO limeSDR.
because my 2nd limesdr is still not available for the moment, i am going to present my plan and preparation work to all of you. and please point it out if i get something mistaken or left out.

  • Exp1: Locate Controllable Target
    this experiment will try to locate a target with a undercontroll receiver&transmitter.
    the figure below illustrates the structure of the system.
    image

    • SDR_A and SDR_B are two LimeSDRs that will be running at a sample rate of 40~60Msps(depend on the computer performence, but higher sps requires less distance between two SDRs) to record the signal from S_t and S_x.
    • S_t is a transmitter that can send a signal to trigger the whole system and generate a time-marker for synchronization between two SDRs. a normal data transmitter will do.
    • S_x will send another signal ( should be after a short delay to make sure SDR_A&B start the record process) when receives the start signal from S_t. SDR_A&B will soon stop the record process after this signal are applied, 'cause 60Msps brings up massive I/O for PC, especially for harddisk.

    here is the timeline figure for a better understanding.
    image

  • Exp2: Locate Uncontrollable Target
    This experiment will try to locate a target that is not under our control but has a stable working center frequency and should not always be transmitting i.e. a short pause for us to send match-marker.
    The difference between exp1: we will need a signal generator that can work on the frequency as the same of the target, a HacrkOne can make it('cause i have on :slight_smile: ).

  • what we have now?
    We are able to record the signal with limeSDR and signal source S_t & S_x are working well. We also have codes to find the match-marker and toda-signal in off-line processing.

hope it works and anyone who has two limesdr can give it a try & who likes this app may ping me :grinning:

1 Like

Here you can see similar approach ->

yes, yes thank you for the link.:grinning:
read some similar papers before. i found with the help of LimeSDR higher sample rate can be applied, which means we can do the measurement in a smaller scale :wink:. that’s what i am going to do now.

I don’t agree. You don’t care about the phase of received signals here, all you care about is time delay of your signal.

Few things to conside as for Exp1:

  • even for sampling rate about 40-60 Msps, distance which corresponds to 1 sample is about few meters, so you probably need to know the distances between reference transmitter (S_t) and receivers SDR_A/SDR_B, in order to compensate propagation time of this reference signal,
  • because of maximum resolution of this method, which is about few meters, target should be put at least tens of meters from both SDR_A and SDR_B. You may need some good antennas to make it work for, say, 100 m,
  • you’ll have to deal with the ambiguity of target location - e.g. as in your picture, it may be located below SDR_A and SDR_B receivers, but it may also be located above them in the same distances. Basically what you get from each receiver is the distance between this receiver and target, so you actually have a whole circle of possible target locations. The same applies for other receiver, so final target position, determined on the basis of data received from both receivers may be one of two possible circle crossings.

Resolution can be enhanced way beyond one sample resolution. Read about MUSIC and superresolution TDOA.

As such superresolution TDOA variants weren’t actually mentioned in this topic, I have assumed that we are talking about simplest TDOA case here and just wanted to point out some of its limitations, exactly because author may want to move into one of more advanced modifications, as you have mentioned :wink:

I actually want to replace the correlation algorithm with MUSIC or ESPIRIT, once the phase coherence problem is solved. But for 2 or 4 channel devices, to what extent the superesolution algorithm would improve?

Many thanks to all of you.
And here please let me tell you the background of this application first.
This TDOA application is a part of our rocket recovery system. Our little rocket is just like this:

The size of it is about 140cm*11cm(a cylinder). After the ignition it can finally reach the target about 5km away and our next plan will make it to 10/15km. We need a system to find it after the launch and the best result is that we can record flight trajectory. But for recovery system a tens of meters error is just ok for the moment. And we have a GPS(signal can be lost if the landing place is not perfect or the parachute failed) on it and Yagi antenna already in use. But we still want to have a better way to locate it. Furthermore if TDOA works, the heavy GPS module+ant can be removed. And a data transmitter will have two roles.

So the problem as ccsh mentioned, we may move the SDRs to another place as if we have 3 or more receivers when tracking the fixed target at first(okay, no rocket this time :stuck_out_tongue_closed_eyes: ). Just make it work will be enough at first. Even for this situation, move to another place will be ok. :smile:
untitled

Thanks for modimo I will read more about superresolution TDOA and others.

Oh, and does anyone have idea about roccket(but not a SpaceX Falcon like :stuck_out_tongue_closed_eyes: ) recovery system hahaha

Since the channel alignment problem seemed to be solved recently. I will look into AOA using single LimeSDR. The algorithm is still correlation, but the hardware set up should be easier, since I won’t need 2 computers/LimeSDRs to be placed apart.

This is a demonstration of 2 channel microphone measuring the angle of arrival of sound wave, the range is 0 degree to 180 degree. I am expecting LimeSDR to do the same for electromagnetic wave.

Here’s the code:

I think I will call the LimeSDR API directly to avoid the problem with UHD/gr-osmocom.

2 Likes

This is what shincky did recently of DOA using LimeSDR, I uploaded on behalf of him.

4 Likes

dear Shao ,
Congrats on your beautiful work, but at the end I wondered If you have uploaded the code to git. since I have a similar project and wanted to poke around the code a little bit if it is possible.
by the way, you mentioned that you finally used only one limesdr and the alignment problem has been solved? so there is no need to buy two limesdr to overcome the issue?

thanks alot;)

Currently, we don’t have a plan of publishing this code. But I can try to give you some advice as a reference.

Yes, the alignment problem has been solved, you can achieve the same result by just using a single LimeSDR-USB with the newest LimeSuiteGUI. You can modify LimeSuiteGUI’s code to achieve DOA.

There are 2 repo on github concerning DOA, they are both hardware agnostic. So you can try them with your LimeSDR. The only problem is gr-osmocom doesn’t support 2 channel receiving of LimeSDR well. Instead, gr-limesdr should be better, but currently it is still a beta version. The 2 received signals in frequency domain is quite different, not as good as in LimeSuiteGUI.


You can try with their code. But remember don’t install them both simultaneously, since they are using the same name, gr-doa, which could be conflict.

Dear Shao,

May I ask if you have been able to perfect TDOA by using a single LimeSDR?

Our requirement currently is one whereby we would like to use TDOA for location of mobile phones in mission critical installations such as power stations, and manufacturing plants.

Is there any work being done on this specific requirement?

Thanking you

What we have now realized is DOA for walkie-talkie.

If you need to track mobile phone, it would be little bit more complicated as the signal is more complex. But I think it could be done referring to smart antenna in 3G/4G.

Shao,

Thank you very much for the reply.

In essence, we would be very interested in discussing a proof of concept design based on a single LimeSDR in order for us to demonstrate the feasibility.

A development such as this in our region is of great value and can be applied at power stations to prevent cable theft, as well as intrusion detection at various installations.

Further to the above as you may know, we are facing many poaching of endangered species, farm attacks, stock theft, et al, hence the request.

May we ask if you could consider assisting us as you have done a lot of work within this environment already.

If at all possible, feel free to discuss T’s and C’s as well as commercials offline.

Thanking you

Thank you for your interest.

I am discussing with my team internally to see how we can cooperate for the best.

Shao,

Thank you very much for the kind consideration. We are looking forward

Hello @Zack,

We are trying to make our DOA application as a separated program. Previously, it was achieved by modifying and adding our own algorithms into LimeSuiteGUI.

But we have a small question. We need to replicate the procedure we have done on the gui of LimeSuiteGUI, but in lots of buttons, LMS_WriteParam is called.

For example, the Open Button. It calls LMS_LoadConfig initially, which we can understand and found the same thing on the lms7_api_quick_start_guide. But after that, there is this LMS_WriteParam is called. Should we do that in our own program? Or just using LMS_LoadConfig is enough?

Thanks,
Shao

This is what we have done till now.

2 Likes