Трилатерация сигнала с использованием разницы во времени (TDOA)

У меня возникли проблемы с поиском или реализацией алгоритма поиска источника сигнала. Цель моей работы - найти положение излучателя звука.

Для этого я использую три датчика вибрации. Я использую метод мультилатерации, основанный на разнице во времени прибытия.

Разница во времени прибытия между каждым датчиком определяется с помощью кросс-корреляции полученных сигналов.

Я уже реализовал алгоритм, чтобы найти разницу во времени прибытия, но моя проблема больше связана с тем, как работает мультилатерация, для меня это неясно на основе моей ссылки, и я не смог найти другую хорошую ссылку для этого, которая свободна/открыта.

Я видел этот пост Трилатерация с использованием TDOA Но я не могу понять, как решить набор уравнений (7) на странице мультилатерации в Википедии, поскольку у меня есть только три TDOA.

Любая помощь в этом будет высоко оценена


person Youssef Kamoun    schedule 23.03.2016    source источник


Ответы (2)


У вас есть три координаты датчика A,B,C, неизвестная координата источника сигнала P, неизвестное время начала сигнала t0 и три времени регистрации сигнала ta, tb, tc.

Пример: Допустим датчик А поймал сигнал в 12:00:05, датчик Б - в 12:00:00, датчик С - в 12:00:07. Итак, назначьте разницу во времени: ta=5, tb=0, tc=7

Квадраты расстояний от датчиков до источника соответствуют времени прохождения сигнала со скоростью v (скорость звука в воздуха или другой среды)

(Ax-Px)^2 + (Ay-Py)^2 = (v*(ta-t0))^2   {1}
(Bx-Px)^2 + (By-Py)^2 = (v*(tb-t0))^2   {2}
(Cx-Px)^2 + (Cy-Py)^2 = (v*(tc-t0))^2   {3}

Откройте скобки, затем вычтите уравнения ({2}–{1}, {3}–{2},{1}–{3}), чтобы отбросить квадраты неизвестных членов.

 Ax^2-2*Ax*Px + Px^2 + Ay^2-2*Ay*Py + Py^2 = v^2*(ta^2 - 2*ta*t0 + t0^2)
 Bx^2-2*Bx*Px + Px^2 + By^2-2*By*Py + Py^2 = v^2*(tb^2 - 2*tb*t0 + t0^2)
 Cx^2-2*Cx*Px + Px^2 + Cy^2-2*Cy*Py + Py^2 = v^2*(tc^2 - 2*tc*t0 + t0^2)

 Bx^2-Ax^2 -2*(Bx-Ax)*Px + By^2-Ay^2 -2*(By-Ay)*Py = v^2*(tb^2-ta^2 -2*(tb-ta)*t0)    {1'}
 Cx^2-Bx^2 -2*(Cx-Bx)*Px + Cy^2-By^2 -2*(Cy-By)*Py = v^2*(tc^2-tb^2 -2*(tc-tb)*t0)    {2'}
 Ax^2-Cx^2 -2*(Ax-Cx)*Px + Ay^2-Cy^2 -2*(Ay-Cy)*Py = v^2*(ta^2-tc^2 -2*(ta-tc)*t0)    {3'}

Теперь у вас есть система из трех линейных уравнений с тремя неизвестными. Это может быть решено с помощью некоторых распространенных алгоритмов - исключение Гаусса, разложение LU и т. д.

Отметим, что точность решения сильно зависит от небольших ошибок в координатах и ​​измерениях времени (этот метод не очень робастный).

person MBo    schedule 23.03.2016
comment
Скорость v = пиковое значение? , а для t0 как мне его получить? и Ta= TDOA AB и Tb BC и TC AC ? - person Youssef Kamoun; 23.03.2016
comment
v — скорость звука. t0 - неизвестное значение, вы найдете его как побочный эффект. ta,tb,tc – моменты регистрации сигнала. Вы можете присвоить ноль самому раннему времени, а различия этому моменту другим. Пример добавлен. - person MBo; 23.03.2016
comment
Хорошо, тогда у меня Tbc = 88 мс, Tab = 44 мс и Tac = 44 мс. Это правильно? я нашел их путем взаимной корреляции между сигналами a, b, c, поэтому t0 и x, y из P, я должен найти три из них, или t0 будет удален после вычитания различных уравнений? тогда у меня есть датчик вибрации, есть ли у него скорость, как скорость звука? и если это действительно так, то в обычной среде, то есть в воздухе, похоже ли это на что-то однородное? Спасибо и извините за беспокойство :) - person Youssef Kamoun; 23.03.2016
comment
Если и датчик вибрации, и источник звука установлены на твердом грунте (например, детектор землетрясений), необходимо учитывать скорость звука в этом грунте. И мне непонятно - какой датчик был первым? - person MBo; 23.03.2016
comment
это похоже на то, как они оба лежат на столе, а источник вибрации похож на постукивание по столу. первым был B, поэтому должно ли быть tb = 0, ta = 44 и tc = 44? - person Youssef Kamoun; 23.03.2016
comment
Да, здесь вы должны использовать скорость звука в твердом материале пластины стола. Интересно - если tb =0 ,ta = 44,tc =44 - почему Tbc = 88? Может быть tb=0, ta=44, tc=88? - person MBo; 23.03.2016
comment
Ах, да, как вы сказали, tb = 0, ta = 44 и tc = 88, тогда для t0, что вы имеете в виду, я найду это как эффект Die? и скорость звука в твердом материале пластины стола универсальна, или мне придется рассчитать это? - person Youssef Kamoun; 23.03.2016
comment
Я нашел здесь engineeringtoolbox.com/sound-speed-solids-d_713.html что скорость звука Вуд 3300 - 3600 (м/с), так как стол в дереве, это v, который я должен использовать? - person Youssef Kamoun; 23.03.2016
comment
t0 можно вычислить при решении системы, но вам это, скорее всего, не нужно. Да, вы можете использовать эту скорость - person MBo; 23.03.2016
comment
Спасибо! Попробую, отпишусь, что получилось ;) - person Youssef Kamoun; 23.03.2016
comment
Для Tac = 308 мс, Tab = 44, Tbc = 132, зная, что он прибыл первым в B, я попробовал Tb = 0, Ta = 44, Tc = 132, и я нашел t0 = 0, и давайте не будем говорить о x или y, что Я нашел нелепые значения, это правильно для T? - person Youssef Kamoun; 24.03.2016
comment
Странно - для Ta=44,Tc=132 - Tac должно быть 88? - person MBo; 24.03.2016
comment
Вы правы, теперь я сделал много тестов, у меня есть Ta=0,Tb=129 и Tc=86. Три уравнения после некоторой модификации будут такими: -2*(BX-AX),-2*( BY-AY), 2*VV*(Tb-Ta)= VV*((TbTb)-(TaTa))-(BX BX)+(AXAX)-(BYBY)+(AYAY)-2*(CX-BX),-2*(CY-BY),2*V< i>V*(Tc-Tb)=VV*((TcTc)-(TaTa))-(CXCX)+(BX BX)-(CYCY)+(BYBY)-2*(AX-CX),-2*(AY-CY),2*VV*(Ta-Tc) =VV*((TaTa)-(TcTc))-(AXAX)+(CXCX)-(AYAY )+(CYCY) Но когда я выполняю такие вычисления, я получаю сингулярную матрицу, где det=0 , уравнения хороши, верно? - person Youssef Kamoun; 30.03.2016
comment
Из-за разницы во времени эта матрица является сингулярной или в уравнениях есть ошибка? - person Youssef Kamoun; 31.03.2016
comment
Любая помощь будет оценена по достоинству. - person Youssef Kamoun; 04.04.2016
comment
Извините, я разработал всю математику для этой задачи с нуля. Я считаю, что это реальная помощь. Но у меня не так много времени, чтобы сделать всю работу за вас. Рекомендую провести симуляцию - взять какую-то позицию, рассчитать для нее теоретическое время, использовать это время в уравнениях - увидеть возможные ошибки. - person MBo; 04.04.2016
comment
Я пробовал все, но все еще не дает решения. я хочу получить по крайней мере 10 или 20 см рядом с точкой, это дает мне действительно плохие решения, такие как 20 км возле точки ^^ - person Youssef Kamoun; 04.04.2016
comment
Короткий пример с реальными размерами стола и прибл. скорость звука: А=(0,0),В=(0,5,0),С=(0,0,4) (в метрах). Р=(0,3,0). distPB=0,2м, tb=0,2/2000=10^-4с=100 микросекунд (не милли!), ta=150мкс, tb-ta=50мкс. Вы уверены, что ваши задержки в миллисекундах? - person MBo; 04.04.2016
comment
Да, из скрипта python функция millis, которая возвращает ms - person Youssef Kamoun; 04.04.2016
comment
обычно мы ищем P, верно? и только с X и Y, поэтому P (X, Y), сколько 2000, чтобы найти Tb? я не понимаю вашего примера.. - person Youssef Kamoun; 04.04.2016
comment
Время до подачи сигнала о переходе от P к B равно t=d/v = 0,2 метра / 2000 метров в секунду = 100 микросекунд - person MBo; 04.04.2016
comment
Но у меня нет distPB, у меня есть Ta,Tb,Tc, так что Tp = d/v, что здесь путается? - person Youssef Kamoun; 04.04.2016
comment
это простое моделирование модели. д это расстояние - person MBo; 04.04.2016
comment
Как бы это выглядело в трех измерениях? - person KeithMadison; 15.11.2020
comment
@KeithMadison Думаю, похоже. Еще один датчик, добавлена ​​координата z, 4 уравнения. - person MBo; 15.11.2020

Геометрически гипербола представляет собой облако точек с постоянной разницей в расстоянии между двумя точками. У вас есть 3 очка, но попарно разница во времени между 3 возможными парами позволит вам нарисовать 3 гиперболы. Ищите точку на пересечении гипербол или между ними на графике. Или решить эквивалентную алгебру (наименьшие квадраты).

person hotpaw2    schedule 25.03.2016
comment
как я могу построить 3 гиперблоаса с 3 временными интервалами? - person Youssef Kamoun; 25.03.2016
comment
Любая помощь будет оценена по достоинству. - person Youssef Kamoun; 04.04.2016
comment
Звучит здорово!! Пожалуйста, помогите нам показать, что вы имеете в виду. - person Erik Andershed; 30.08.2018