2011-05-08 1 views
7

J'ai quelques difficultés à trouver ou à implémenter un algorithme pour trouver une source de signal. L'objectif de mon travail est de trouver la position de l'émetteur sonore.Trilatération d'un signal à l'aide de la différence d'heure d'arrivée

Pour ce faire, j'utilise trois microfones. La technique que j'utilise est multilatération qui est basé sur le différence d'heure d'arrivée.

La différence de temps d'arrivée entre chaque Microfones sont trouvés en utilisant une corrélation croisée des signaux reçus.

je l'ai déjà mis en œuvre l'algorithme pour trouver le décalage horaire d'arrivée, mais mon problème est plus sur la façon dont multilatération œuvres, on ne sait pas pour moi en fonction de ma référence, et je ne pouvais pas trouver tout autre référence pour cela qui sont libres/ouverts.

Si vous avez des références sur la façon dont je peux mettre en œuvre un algorithme multilatération, ou un autre algorithme de trilatération que je peux utiliser en fonction décalage horaire d'arrivée ce serait une grande aide.

Merci d'avance.

+1

Triangulation? Voulez-vous dire la trilatération? –

+0

Oui, merci pour votre correction, je l'ai édité. – JeanK

+0

Je pense que l'article [Un nouvel algorithme de trilatération pour la localisation d'un émetteur/récepteur dans un plan 2D utilisant la géométrie analytique] (https://www.researchgate.net/publication/265336167_A_Novel_Trilateration_Algorithm_for_Localization_of_a_TransmitterReceiver_Station_in_a_2D_Plane_Using_Analytical_Geometry) vous aidera. Il marie littéralement les deux concepts de trilatération et de multilatération en un. –

Répondre

2

Le point que vous cherchez est l'intersection de trois hyperboles. Je suppose 2D ici puisque vous utilisez seulement 3 récepteurs. Techniquement, vous pouvez trouver une solution 3D unique mais comme vous avez probablement du bruit, je suppose que si vous vouliez un résultat 3D, vous auriez pris 4 micros (ou plus). Le wikipedia page fait des calculs pour vous. Ils le font en 3D, il suffit de mettre z = 0 et de résoudre pour le système d'équations (7). Le système est surdéterminé, donc vous voudrez le résoudre dans le sens des moindres carrés (c'est le point en utilisant réellement 3 récepteurs).

2

Je peux vous aider avec la multi-latéralisation en général. Fondamentalement, si vous voulez une solution en 3D - vous devez avoir au moins 4 points et 4 distances d'eux (2 - vous donner le cercle dans lequel est la solution - parce que c'est l'intersection entre 2 sphères, 3 les points vous donnent 2 solutions possibles (intersection entre 3 sphères) - donc, pour avoir une solution - vous avez besoin de 4 sphères). Ainsi, quand vous avez quelques points (4+) et la distance entre eux (il y a un moyen facile de transformer le TDOA en l'ensemble des équations pour avoir juste le type de longueur distances/pas le temps /) vous avez besoin d'un moyen de résoudre ensemble d'équations. Tout d'abord - vous avez besoin d'une fonction de coût (ou fonction d'erreur de solution, comme je l'appelle) qui serait quelque chose comme

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

x, y, z sont coordonnées du point courant dans la solution numérique et xi, yi , zi et di sont les coordonnées et la distance vers le ième point de référence. Afin de résoudre ce problème - mon conseil est de ne pas utiliser les méthodes Newton/Gauss ou Newton. Vous avez besoin de la dérivée première et seconde de la fonction susmentionnée - et ceux-ci ont un arrêt fini dans certains points dans l'espace - donc ce n'est pas une fonction lisse et ces méthodes ne fonctionneront pas.Ce qui fonctionnera est la famille d'algorithmes de recherche directe pour l'optimisation des fonctions (trouver des minimums et des maximums dans notre cas - vous avez besoin du minimum de la fonction erreur/coût).

Cela devrait aider toute personne souhaitant trouver une solution à un problème similaire.

Questions connexes