2011-05-08 10 views
7

Tengo problemas para encontrar o implementar un algoritmo para encontrar una fuente de señal. El objetivo de mi trabajo es encontrar la posición del emisor de sonido.Trilateración de una señal que usa la diferencia de tiempo de llegada

Para lograr esto estoy usando tres microfones. La técnica que estoy usando es multilateration que se basa en el diferencia de tiempo de llegada.

La diferencia hora de llegada entre cada microfones se encuentran utilizando Correlación Cruzada de las señales recibidas.

ya que implementa el algoritmo para encontrar la diferencia hora de llegada, pero mi problema es más de lo obras de multilateración, no está claro para mí basado en mi referencia, y no pude encontrar ninguna otra buena referencia para esto que son libres/abiertos.

Si usted tiene algunas referencias sobre cómo puedo implementar un algoritmo multilateración, o algún otro algoritmo de trilateración que puedo utilizar en función de diferencia de tiempo de llegada que sería una gran ayuda.

Gracias de antemano.

+1

Triangulación? ¿Te refieres a la trilateración? –

+0

Sí, gracias por su corrección, lo edité. – JeanK

+0

Creo que el artículo [Un nuevo algoritmo de trilateración para la localización de una estación transmisora ​​/ receptora en un plano 2D usando geometría analítica] (https://www.researchgate.net/publication/265336167_A_Novel_Trilateration_Algorithm_for_Localization_of_a_TransmitterReceiver_Station_in_a_2D_Plane_Using_Analytical_Geometry) lo ayudará. Literalmente se casa los dos conceptos de trilateración y multilateración en uno. –

Respuesta

2

El punto que está buscando es la intersección de tres hipérbolas. Estoy asumiendo 2D aquí ya que solo usas 3 receptores. Técnicamente, puedes encontrar una solución 3D única, pero como probablemente tengas ruido, supongo que si quisieras obtener un resultado en 3D, habrás tomado 4 micrófonos (o más).

El wikipedia page hace algunos cálculos para usted. Lo hacen en 3D, solo tienes que establecer z = 0 y resolver el sistema de ecuaciones (7).

El sistema está sobredeterminado, por lo que querrá resolverlo en el sentido de mínimos cuadrados (este es el punto en el uso de 3 receptores en realidad).

2

Te puedo ayudar con la multi-tardanza en general.

Básicamente, si quiere una solución en 3D, debe tener al menos 4 puntos y 4 distancias (2-le dan el círculo en el que está la solución) porque esa es la intersección entre 2 esferas, 3 los puntos te dan 2 posibles soluciones (intersección entre 3 esferas) - entonces, para tener una solución, necesitas 4 esferas). Entonces, cuando tienes algunos puntos (4+) y la distancia entre ellos (hay una manera fácil de transformar el TDOA en el conjunto de ecuaciones para simplemente tener el tipo de longitud distancias/no tiempo /) necesitas una forma de resolver el problema conjunto de ecuaciones En primer lugar - que necesita una función de costo (o función de error solución, como yo lo llamo), que sería algo así como

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

donde x, y, z son las coordenadas del punto actual en la solución numérica y xi, yi , zi y di son las coordenadas y la distancia hacia el i-ésimo punto de referencia. Para resolver esto, mi consejo es NO usar los métodos de Newton/Gauss o Newton. Necesita primera y segunda derivada de la función antes mencionada, y esas tienen una interrupción finita en algunos puntos del espacio, por lo tanto, esa no es una función suave y estos métodos no funcionarán.Lo que funcionará es la familia de algoritmos de búsqueda directa para la optimización de funciones (encontrar mínimos y máximos. En nuestro caso, necesita un mínimo de la función error/costo).

Eso debería ayudar a cualquiera que quiera encontrar una solución para un problema similar.

Cuestiones relacionadas