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

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

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

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

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

Если у вас есть ссылки на то, как я могу реализовать алгоритм мультилатерации или какой-либо другой алгоритм трилатерации, который я могу использовать на основе разницы во времени прибытия это было бы большим подспорьем.

Заранее спасибо.


person JeanK    schedule 08.05.2011    source источник
comment
Триангуляция? Вы имеете в виду трилатерацию?   -  person Josh Lee    schedule 08.05.2011
comment
Да, спасибо за поправку, я отредактировал.   -  person JeanK    schedule 08.05.2011


Ответы (2)


Точка, которую вы ищете, является пересечением трех гипербол. Я предполагаю, что здесь используется 2D, поскольку вы используете только 3 рецептора. Технически вы можете найти уникальное 3D-решение, но, поскольку у вас, вероятно, есть шум, я предполагаю, что если бы вы хотели получить 3D-результат, вы бы взяли 4 микрофона (или больше).

страница википедии выполняет некоторые вычисления за вас. Они делают это в 3D, вам просто нужно установить z = 0 и решить систему уравнений (7).

Система переопределена, поэтому вам нужно решить ее методом наименьших квадратов (на самом деле в этом смысл использования 3 рецепторов).

person Alexandre C.    schedule 08.05.2011
comment
Есть ли способ показать, как это сделать в 3D? Большое спасибо!! - person Erik Andershed; 31.08.2018

Я могу помочь вам с мультилатерацией в целом.

По сути, если вы хотите получить решение в 3D - у вас должно быть как минимум 4 точки и 4 расстояния от них (2 - это круг, в котором находится решение - потому что это пересечение между 2 сферами, 3 точки дают вам 2 возможные решения (пересечение между 3-мя сферами) - значит, чтобы было одно решение - нужно 4 сферы). Итак, когда у вас есть несколько точек (4+) и расстояние между ними (есть простой способ преобразовать TDOA в набор уравнений только для расстояний типа длины /не времени/), вам нужен способ решить задачу. набор уравнений. Во-первых, вам нужна функция стоимости (или функция ошибки решения, как я ее называю), которая будет выглядеть примерно так:

err(x,y,z) = sum(i=1..n){sqrt[(x-xi)^2 + (y-yi)^2 + (z-zi)^2] - di} 

где x, y, z — координаты текущей точки в численном решении, а xi, yi, zi и di — координаты и расстояние до i-й опорной точки. Чтобы решить эту проблему, мой совет НЕ использовать методы Ньютона/Гаусса или Ньютона. Вам нужна первая и вторая производная вышеупомянутой функции - и они имеют конечный разрыв в некоторых точках пространства - следовательно, это не гладкая функция, и эти методы не будут работать. Что будет работать, так это семейство алгоритмов прямого поиска для оптимизации функций (нахождение минимумов и максимумов. В нашем случае - вам нужен минимум функции ошибки/стоимости).

Это должно помочь любому, кто хочет найти решение для подобной проблемы.

person Александар Божић    schedule 04.12.2016
comment
Не могли бы вы помочь мне с аналогичным вопросом: stackoverflow.com/questions/52192584/ - person Erik Andershed; 06.09.2018