Skip to content

TDOA with Iridium Signals? A first rough test shows unexpected results using iridium-extractor. #211

@RobertSwirsky

Description

@RobertSwirsky

I wanted to see if you can do TDOA with Iridium signals using iridium-extractor.

I noticed in the source code if you're using a USRP with a PPS clock, iridium-extractor will use the rx_time + samples to make the time based on a calculation from sample count. I figured this would give consistent timing of a received burst.

So I set up a quick experiment: I took two genuine Ettus B-200s, both driven off the same GPSDO 10Mhz and PPS., with the timing signals split from a proper 10 MHz distribution amp, etc. There's a Tallisman Iridium antenna on the roof of our building and we split the signals with a proper splitter to both of the USRP B200s.

I have two computers with the exact same versions of everything running iridium-extractor. I wrote a script to compare the "time" field in the third field from each of the captures in the RAW: file, only looking at "100%" decodes. I expected to see identical times on each of them. (I'm also ignoring "179" length decodes, and making sure all the bits match, too, before comparing the time.)

Here's the end of a recent run. As you can see it's not a conisitant lag, and sometimes packets are ahead and behind, ranging from 100 nanoseconds 1000 nanoseconds. The average time difference at the end of this run was 296 nanoseconds (0.000296 milliseconds).

Any ideas as to what's happening? I was hoping these would line up, and then I'd move on to doing sub-sample timing but I need to get the gross time measurements to be much closer/consistent before I can hope to get reliable results with separate receivers in separate locations.

You'll notice in the numbers below that they are a full second + change apart. This is because iridium-extractor will start on the next PPS, so if I don't start the software at the same time, they will be some integral number of seconds apart. So I subracted out the difference related to different start time of the run before comparing received burst times.

[...]

**** Matched Time difference == -0.001000, 3401 records left (record len 432) [Comparing  0633778.4164 and 0634778.4179]
**** Matched Time difference == -0.000100, 3358 records left (record len 432) [Comparing  0634858.4166 and 0635858.4172]
**** Matched Time difference == 0.000700, 3295 records left (record len 432) [Comparing  0637288.4188 and 0638288.4186]
**** Matched Time difference == 0.000500, 3247 records left (record len 432) [Comparing  0638908.4206 and 0639908.4206]
**** Matched Time difference == 0.000800, 3203 records left (record len 432) [Comparing  0642148.4255 and 0643148.4252]
**** Matched Time difference == 0.000000, 3180 records left (record len 432) [Comparing  0643768.4270 and 0644768.4275]
**** Matched Time difference == 0.000000, 3142 records left (record len 432) [Comparing  0645388.4296 and 0646388.4301]
**** Matched Time difference == -0.000300, 3115 records left (record len 432) [Comparing  0645928.4298 and 0646928.4306]
**** Matched Time difference == 0.000000, 3028 records left (record len 432) [Comparing  0648088.4344 and 0649088.4349]
**** Matched Time difference == -0.000800, 3002 records left (record len 432) [Comparing  0648898.4358 and 0649898.4371]
**** Matched Time difference == 0.000700, 2968 records left (record len 432) [Comparing  0649708.4385 and 0650708.4383]
**** Matched Time difference == 0.001000, 2919 records left (record len 432) [Comparing  0651058.4417 and 0652058.4412]
**** Matched Time difference == -0.000000, 2861 records left (record len 432) [Comparing  0653218.4463 and 0654218.4468]
**** Matched Time difference == 0.000500, 2844 records left (record len 432) [Comparing  0654028.4495 and 0655028.4495]
**** Matched Time difference == 0.000700, 2814 records left (record len 432) [Comparing  0655378.4532 and 0656378.4530]
**** Matched Time difference == 0.000500, 2785 records left (record len 432) [Comparing  0656188.4549 and 0657188.4549]
**** Matched Time difference == 0.000300, 2682 records left (record len 432) [Comparing  0658348.4616 and 0659348.4618]
**** Matched Time difference == -0.000300, 2665 records left (record len 432) [Comparing  0658888.4628 and 0659888.4636]
**** Matched Time difference == 0.000700, 2632 records left (record len 432) [Comparing  0659698.4655 and 0660698.4653]
**** Matched Time difference == -0.000300, 2519 records left (record len 432) [Comparing  0660778.4686 and 0661778.4694]
**** Matched Time difference == -0.000200, 2446 records left (record len 432) [Comparing  0661588.4726 and 0662588.4733]
**** Matched Time difference == 0.000200, 2414 records left (record len 432) [Comparing  0661858.4732 and 0662858.4735]
**** Matched Time difference == 0.000500, 2352 records left (record len 432) [Comparing  0662668.4764 and 0663668.4764]
**** Matched Time difference == 0.000200, 2233 records left (record len 432) [Comparing  0663748.4815 and 0664748.4818]
**** Matched Time difference == -0.000000, 2114 records left (record len 432) [Comparing  0664828.4844 and 0665828.4849]
**** Matched Time difference == 0.000000, 2078 records left (record len 432) [Comparing  0665368.4856 and 0666368.4861]
**** Matched Time difference == 0.001000, 2039 records left (record len 432) [Comparing  0666178.4896 and 0667178.4891]
**** Matched Time difference == 0.000800, 2001 records left (record len 432) [Comparing  0666988.4931 and 0667988.4928]
**** Matched Time difference == 0.000300, 1965 records left (record len 432) [Comparing  0667528.4959 and 0668528.4961]
**** Matched Time difference == 0.000300, 1916 records left (record len 432) [Comparing  0668338.4986 and 0669338.4988]
**** Matched Time difference == -0.000300, 1858 records left (record len 432) [Comparing  0669148.5010 and 0670148.5018]
**** Matched Time difference == -0.000000, 1739 records left (record len 432) [Comparing  0670498.5075 and 0671498.5080]
**** Matched Time difference == 0.000200, 1629 records left (record len 432) [Comparing  0671848.5140 and 0672848.5143]
**** Matched Time difference == 0.000500, 1628 records left (record len 432) [Comparing  0671848.5146 and 0672848.5146]
**** Matched Time difference == 0.000200, 1580 records left (record len 432) [Comparing  0672658.5175 and 0673658.5178]
**** Matched Time difference == 0.000300, 1527 records left (record len 432) [Comparing  0673468.5215 and 0674468.5217]
**** Matched Time difference == 0.000500, 1498 records left (record len 432) [Comparing  0674008.5248 and 0675008.5248]
**** Matched Time difference == 0.000500, 1472 records left (record len 432) [Comparing  0674818.5280 and 0675818.5280]
**** Matched Time difference == 0.000000, 1447 records left (record len 432) [Comparing  0675628.5320 and 0676628.5325]
**** Matched Time difference == 0.000500, 1431 records left (record len 432) [Comparing  0676168.5345 and 0677168.5345]
**** Matched Time difference == 0.000300, 1414 records left (record len 432) [Comparing  0676978.5388 and 0677978.5390]
**** Matched Time difference == 0.000800, 1304 records left (record len 432) [Comparing  0678328.5463 and 0679328.5460]
**** Matched Time difference == 0.000200, 1172 records left (record len 432) [Comparing  0681298.5620 and 0682298.5623]
**** Matched Time difference == 0.000000, 1111 records left (record len 432) [Comparing  0682648.5681 and 0683648.5686]
**** Matched Time difference == 0.001300, 1090 records left (record len 432) [Comparing  0683098.5728 and 0684098.5720]
**** Matched Time difference == 0.000300, 1074 records left (record len 432) [Comparing  0683458.5741 and 0684458.5743]
**** Matched Time difference == -0.000100, 1014 records left (record len 432) [Comparing  0685348.5862 and 0686348.5868]
**** Matched Time difference == -0.000300, 941 records left (record len 432) [Comparing  0686968.5947 and 0687968.5955]
**** Matched Time difference == 0.000300, 901 records left (record len 432) [Comparing  0687778.5997 and 0688778.5999]
**** Matched Time difference == 0.000000, 865 records left (record len 432) [Comparing  0689128.6080 and 0690128.6085]
**** Matched Time difference == 0.000000, 864 records left (record len 432) [Comparing  0689128.6090 and 0690128.6095]
**** Matched Time difference == 0.000500, 857 records left (record len 432) [Comparing  0689398.6102 and 0690398.6102]
**** Matched Time difference == 0.000300, 851 records left (record len 432) [Comparing  0689938.6138 and 0690938.6140]
**** Matched Time difference == 0.000000, 808 records left (record len 432) [Comparing  0691288.6226 and 0692288.6231]
**** Matched Time difference == 0.000700, 803 records left (record len 432) [Comparing  0691558.6245 and 0692558.6243]
**** Matched Time difference == -0.000300, 791 records left (record len 432) [Comparing  0692098.6273 and 0693098.6281]
**** Matched Time difference == 0.000200, 763 records left (record len 432) [Comparing  0693718.6388 and 0694718.6391]
**** Matched Time difference == 0.000500, 750 records left (record len 432) [Comparing  0694258.6422 and 0695258.6422]
**** Matched Time difference == 0.000700, 675 records left (record len 432) [Comparing  0695608.6515 and 0696608.6513]
**** Matched Time difference == 0.000500, 658 records left (record len 432) [Comparing  0695878.6532 and 0696878.6532]
**** Matched Time difference == 0.001000, 639 records left (record len 432) [Comparing  0696148.6561 and 0697148.6556]
**** Matched Time difference == 0.000300, 626 records left (record len 432) [Comparing  0696418.6573 and 0697418.6575]
**** Matched Time difference == 0.000500, 556 records left (record len 432) [Comparing  0697768.6664 and 0698768.6664]
**** Matched Time difference == 0.000500, 555 records left (record len 432) [Comparing  0697768.6674 and 0698768.6674]
**** Matched Time difference == 0.000000, 545 records left (record len 432) [Comparing  0698038.6688 and 0699038.6693]
**** Matched Time difference == -0.000200, 525 records left (record len 432) [Comparing  0698578.6719 and 0699578.6726]
**** Matched Time difference == 0.000000, 451 records left (record len 432) [Comparing  0700198.6844 and 0701198.6849]
**** Matched Time difference == 0.000500, 444 records left (record len 432) [Comparing  0700468.6874 and 0701468.6874]
**** Matched Time difference == 0.000300, 439 records left (record len 432) [Comparing  0700738.6883 and 0701738.6885]
**** Matched Time difference == 0.000200, 406 records left (record len 432) [Comparing  0702358.7000 and 0703358.7003]
**** Matched Time difference == 0.000500, 260 records left (record len 432) [Comparing  0704518.7174 and 0705518.7174]
**** Matched Time difference == 0.000300, 242 records left (record len 432) [Comparing  0704788.7194 and 0705788.7196]
**** Matched Time difference == 0.001300, 150 records left (record len 432) [Comparing  0706048.7304 and 0707048.7296]
**** Matched Time difference == 0.000000, 115 records left (record len 432) [Comparing  0706408.7319 and 0707408.7324]
**** Matched Time difference == 0.000500, 43 records left (record len 432) [Comparing  0707218.7384 and 0708218.7384]
Average time difference = 0.000296

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions