Трилатерация сигнала с использованием разницы во времени прибытия - PullRequest
8 голосов
/ 08 мая 2011

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

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

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

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

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

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

Ответы [ 2 ]

3 голосов
/ 08 мая 2011

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

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

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

2 голосов
/ 04 декабря 2016

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

В принципе, если вам нужно решение в 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-го эталона. точка. Чтобы решить эту проблему, мой совет НЕ использовать методы Ньютона / Гаусса или Ньютона. Вам нужна первая и вторая производные вышеупомянутой функции - и они имеют конечное прекращение в некоторых точках пространства - следовательно, это не гладкая функция, и эти методы не будут работать. Что будет работать, так это семейство алгоритмов прямого поиска для оптимизации функций (поиск минимумов и максимумов. В нашем случае - вам нужен минимум функции error / cost).

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

...