WIKI TECHNIQUE

Positionnement GNSS : principes et implémentation de la simulation de signaux

GPS, BeiDou, Galileo, GLONASS — les quatre systèmes mondiaux de navigation par satellite permettent à une puce de quelques dollars de déterminer sa position partout sur Terre. Ce guide explique, en langage clair, comment le positionnement fonctionne réellement, les « pertes » que subit un signal en cours de route, et comment notre simulateur de signaux GNSS « rejoue » fidèlement tout cela dans un environnement fermé et légal.

≈ 12 min de lecture· 6 chapitres
01 · PRINCIPE FONDAMENTAL · PRINCIPE

Le positionnement, au cœur, c'est la mesure précise de distance

Le positionnement par satellite se résume en une phrase : si vous connaissez votre distance par rapport à plusieurs points dont les positions sont connues, vous pouvez déterminer où vous vous trouvez. Les satellites sont ces points de référence connus — à 20 000 km d'altitude, diffusant en permanence leur propre position et l'heure.

Mesurer la distance avec le temps

Les signaux satellites voyagent à la vitesse de la lumière. Chaque signal est « horodaté » avec une heure d'émission précise ; le récepteur note l'heure d'arrivée, et la différence Δt multipliée par la vitesse de la lumière c donne la distance satellite-récepteur. L'échelle est frappante : une erreur de synchronisation d'1 nanoseconde ≈ 0,3 m d'erreur de distance. C'est pourquoi chaque satellite embarque une horloge atomique, gardant le temps à la nanoseconde près.

Mais pour rester abordables, les récepteurs utilisent une simple horloge à quartz qui introduit un « biais d'horloge » inconnu. Ainsi, ce que nous mesurons réellement n'est pas la distance vraie mais une « pseudo-distance » entachée de ce biais — un terme qui est la clé de tout ce qui suit.

Trois sphères se croisent, quatre satellites pour un point

Connaître votre distance à un satellite vous place sur une sphère autour de lui ; deux satellites, deux sphères se croisent en un cercle ; trois satellites, trois sphères se croisent en un point — c'est la « trilatération ». Alors pourquoi les téléphones disent-ils toujours « au moins 4 satellites nécessaires » ? Parce qu'en plus des coordonnées x, y, z, il y a une quatrième inconnue : le biais d'horloge du récepteur. Quatre inconnues nécessitent au moins quatre satellites, résolus ensemble comme un seul système. Plus il y a de satellites en vue, plus la solution est stable et précise.

GROUND r₁r₂r₃Δt Récepteur
Fig. 1 · Intersection de trois sphères et résolution à quatre satellites (le 4e satellite résout le biais d'horloge du récepteur Δt)

Où est le satellite en ce moment ? — les éphémérides

Pour utiliser un satellite comme référence, il faut d'abord savoir précisément où il se trouve. Chaque satellite diffuse un jeu de paramètres d'éphémérides dans son message de navigation — essentiellement des éléments orbitaux képlériens assortis d'une série de corrections de perturbations. Une fois ces paramètres injectés dans les formules, le récepteur peut calculer la position 3D et la vitesse du satellite à tout instant. Les éphémérides « expirent » avec le temps et doivent donc être rafraîchies en continu.

Le temps est l'âme du système tout entier

L'ensemble du GNSS repose sur une base de temps commune (temps GPS, temps BeiDou, …). Dérive des horloges satellites, effets relativistes, délais matériels à l'émission comme à la réception — tout désalignement temporel se traduit directement par des mètres d'erreur de positionnement. En un sens très concret, le positionnement est avant tout un problème de synchronisation.

02 · LE SIGNAL · SIGNAL

Ce que les satellites diffusent réellement depuis l'espace

Le signal d'un satellite se compose en réalité de trois couches superposées. Comprenez ces trois couches et vous saurez où se cache l'information temporelle qui permet la mesure de distance.

① PorteuseCARRIER ② Code de télémétriePRN / CDMA ③ Message de navigationNAV DATA ModulerCombinerBPSK
Fig. 2 · Porteuse × code de télémétrie × message de navigation — modulation en trois couches

① La porteuse est une onde sinusoïdale de plusieurs gigahertz qui « transporte » le signal jusqu'au récepteur. ② Le code de télémétrie (PRN) est une séquence publique pseudo-aléatoire de 0/1 — comme l'« empreinte » unique de chaque satellite : elle permet au récepteur de distinguer les satellites sur une même fréquence (c'est le CDMA), et c'est précisément elle qui véhicule la référence temporelle de haute précision utilisée pour la mesure de distance. ③ Le message de navigation est la couche de données la plus lente, diffusant au récepteur les éphémérides, les paramètres d'horloge, l'état de santé du satellite, et bien plus.

Les systèmes modernes diffusent également sur plusieurs fréquences simultanément (GPS L1/L2/L5, BeiDou B1/B2/B3, …). Multi-constellation, multi-bande ne se contente pas d'augmenter le nombre de satellites visibles et d'améliorer la fiabilité en environnement obstrué — une combinaison bifréquence peut aussi annuler directement l'essentiel de l'erreur ionosphérique. C'est le fondement du positionnement de haute précision, et exactement la raison pour laquelle notre simulateur exécute 48 canaux en parallèle sur 1176–1610 MHz.

03 · ERREURS DE PROPAGATION · PROPAGATION

Ce qui arrive au signal en cours de route

Sur les 20 000 km qui séparent le satellite du récepteur, le signal subit une « décote » couche après couche. Pour simuler de manière crédible et positionner avec précision, il faut modéliser chacune de ces pertes une par une — et c'est précisément ce qui distingue un simulateur sérieux d'un jouet.

Retard ionosphériqueKlobuchar 8 paramètres Retard troposphériqueDépendant de l'élévation / altitude Relativité · retard de groupeTGD / ISC Bâtiment · réflecteur Réflexion par trajets multiples Récepteur
Fig. 3 · Principales sources d'erreur le long du trajet du signal

Les principaux « rabais » incluent : le retard ionosphérique (qui varie fortement avec l'activité solaire ; couramment corrigé par le modèle Klobuchar à 8 paramètres), le retard troposphérique (dépendant de l'élévation du satellite et de l'altitude de la station), les effets relativistes (le satellite se déplace rapidement et se trouve dans un champ gravitationnel plus faible, ce qui accélère son horloge et doit être corrigé — y compris un terme d'excentricité orbitale), le retard de groupe TGD/ISC (biais matériel de délai entre les fréquences), les trajets multiples (signaux réfléchis par les bâtiments/le sol se superposant à l'onde directe), et le biais d'horloge satellite (décrit par un polynôme a0/a1/a2).

C'est précisément pourquoi nous intégrons une chaîne complète de modèles de pertes et d'erreurs — ionosphère Klobuchar, troposphère dépendante de l'élévation, corrections relativistes et de retard de groupe, atténuation de puissance basée sur l'élévation. Ce qui en sort n'est donc pas un « signal idéal », mais un signal qui se rapproche du ciel réel ; c'est seulement à cette condition que les tests que vous effectuez avec prennent tout leur sens.

04 · NOTRE IMPLÉMENTATION · IMPLÉMENTATION

Recréer le ciel entier par logiciel

Ce que fait un simulateur de signaux GNSS, c'est exécuter le flux précédent « à l'envers » : à partir d'un scénario (heure, lieu, trajectoire de mouvement), il calcule la position, la pseudo-distance et le Doppler de chaque satellite par rapport au récepteur, synthétise le signal RF correspondant et l'injecte au récepteur. Il libère la R&D et les tests des conditions météorologiques et des trajectoires réelles — dans un environnement fermé et légal, vous pouvez reproduire n'importe quel scénario à la demande : signaux faibles, dynamiques élevées, configurations de constellations spécifiques…

Ce chemin n'est pas parti de zéro. Dans la communauté open source, des projets comme GPS-SDR-SIM et GNSS-SDR ont prouvé très tôt qu'il est possible de « générer des signaux GNSS en bande de base avec une radio logicielle (SDR) » — typiquement une seule constellation, une seule fréquence, en générant un fichier IQ hors ligne et en le rejouant. Nous nous appuyons sur ces travaux, mais les avons poussés à un niveau supérieur pour atteindre une utilisabilité de qualité ingénierie.

Moteur de signal en temps réel · continu 24h/24 et 7j/7 · sans décrochage / sans dérive Scénario & éphéméridesSCENARIO Résolution de l'orbite satellitePOS · RANGE Modulation et synthèseCODE × CARRIER Modèles d'erreur et d'atténuationPROPAGATION IQ → RF SDRRF FRONT-END Klobuchar · troposphère · relativité · délai de groupeCompatible SDR bas coût→ Vers l'antenne du récepteur
Fig. 4 · Du scénario à la RF : la chaîne de génération de signaux GNSS définie par logiciel

Premièrement, la fiabilité. L'ancienne approche par fichiers hors ligne ne permet pas de longs tests. Nous avons conçu un moteur de signal temps réel prenant en charge un fonctionnement continu 24h/24 et 7j/7 — sans décrochage ni dérive accumulée sur les longues sessions — rendant enfin possibles les tests d'endurance et la surveillance sans surveillance.

Deuxièmement, le coût. Les sources de signal haut de gamme atteignent facilement six chiffres. Nous avons lourdement optimisé au niveau algorithmique pour que le moteur soit compatible avec des périphériques SDR bas coût, ramenant une capacité de niveau laboratoire à un prix accessible aux utilisateurs ordinaires — afin que davantage d'équipes et d'individus puissent réellement l'utiliser.

Enfin, la performance. Comparé aux prototypes mono-satellite et mono-fréquence, nous offrons un parallélisme multi-constellation et multi-bande sur 48 canaux qui — combiné aux modèles d'erreur complets de la section précédente et à un taux de rafraîchissement de 1 kHz — apporte des gains réels en vitesse et en précision de positionnement, suffisants pour valider des scénarios haute dynamique et haute précision. Pour une liste plus détaillée des capacités, consultez les spécifications sur la page d'accueil.

05 · CÔTÉ RÉCEPTEUR · CÔTÉ RÉCEPTEUR

Comment un récepteur calcule un point

Les chapitres précédents ont décrit le positionnement du point de vue du système ; celui-ci adopte la perspective du récepteur. Pour un récepteur, un point passe généralement par quatre étapes — acquisition, poursuite, démodulation et résolution — exécutées en continu sur une échelle de la milliseconde à la seconde, après quoi il délivre ses résultats en continu.

Acquisition et poursuite

À la mise sous tension, le récepteur doit d'abord retrouver les signaux satellites noyés dans le bruit. Les satellites se déplacent rapidement par rapport au sol, de sorte que leur porteuse présente un décalage Doppler net et que le code de télémétrie arrive avec une phase de code inconnue. Lors de l'acquisition, le récepteur corrèle une réplique locale du code avec le signal entrant sur un espace de recherche bidimensionnel « fréquence Doppler × phase de code » ; lorsque les deux s'alignent et que la corrélation montre un pic distinct, le satellite est considéré comme acquis. Il passe ensuite en poursuite : une boucle de poursuite de code (DLL) maintient l'alignement de la phase de code et une boucle de poursuite de porteuse (PLL) assure le verrouillage de la porteuse, garantissant ensemble que le récepteur extrait les observables du signal de manière stable et continue. Si l'une des boucles décroche, une ré-acquisition est nécessaire.

Démodulation, résolution et temps jusqu'au premier point

Une fois la poursuite stabilisée, le récepteur réalise la synchronisation de bits et de trames, démodule le message de navigation et obtient des paramètres tels que les éphémérides et le biais d'horloge ; à partir de ceux-ci, il calcule la position de chaque satellite à cet instant, puis combine les pseudo-distances respectives et résout la position, la vitesse et le temps (PVT) du récepteur par moindres carrés ou filtre de Kalman. Le temps écoulé entre la mise sous tension et la première sortie de coordonnées est le temps jusqu'au premier point (TTFF) : un démarrage à froid sans information préalable prend généralement quelques dizaines de secondes, tandis qu'un démarrage à chaud avec des éphémérides en cache et une position approximative ne nécessite souvent que quelques secondes. Plus le nombre de satellites en vue est élevé et meilleure est leur géométrie (plus le PDOP est faible), plus la solution est stable et précise.

Puce GNSS + couches basses de l'OS (invisibles pour les applications) AntenneANTENNA Étage RFRF / conversion en fréquence intermédiaire Acquisition · poursuiteDLL / PLL Démodulation · résolutionPVT Couche applicative · APP Service de localisation systèmeLOCATION SVC APPLat/lon + précision Uniquement la position, rien de plus
Fig. 5 · Chaîne de traitement du signal du récepteur : la couche applicative ne reçoit que les coordonnées finales, jamais le détail du signal

Appareils grand public comme les téléphones : la couche applicative ne peut pas accéder aux détails du signal

Un point mérite d’être souligné : sur les appareils grand public tels que les téléphones, la réception du signal, la conversion en bande de base, l’acquisition, la poursuite et la démodulation des messages sont entièrement prises en charge par la puce GNSS (ou les blocs RF et bande de base intégrés au SoC) conjointement avec les couches basses du système d’exploitation. Une application ne peut généralement pas accéder aux observables bruts ni au processus de traitement du signal ; elle peut seulement obtenir une conclusion finale via le service de localisation du système — un couple latitude/longitude assorti d’une estimation de précision. (Certaines plateformes exposent une interface permettant de lire les mesures brutes, mais celle-ci n’est ni disponible sur tous les appareils ni exempte de contraintes d’autorisation système et de framework.)

Cela explique aussi pourquoi les tests de positionnement doivent agir au niveau du signal ou du système plutôt que de modifier des valeurs au niveau applicatif : le simulateur cible la puce elle-même. Il rejoue des signaux satellites suffisamment réalistes à l’étage RF d’entrée, de sorte que toute la chaîne effectue l’acquisition, la poursuite et le calcul de position avec une logique réelle, et l’appareil détermine de lui-même la position prédéfinie — seule une telle validation est crédible, et seule elle peut couvrir le comportement en conditions réelles comme les signaux faibles, les multitrajets et la dynamique élevée.

06 · CLÔTURE · CLÔTURE

Comprendre le comment, et le pourquoi

D’un faisceau ténu de signal dans l’espace jusqu’à une coordonnée stable sur votre écran, il y a entre les deux des couches successives de mesure de distance, de résolution, de synchronisation et de modélisation d’erreurs qui fonctionnent de concert. Comprenez les principes et vous verrez plus clairement où un bon simulateur doit concentrer ses efforts ; et c’est précisément selon ces trois axes — fiabilité, coût et performance — que nous avons fait évoluer un prototype open-source en un produit digne de l’ingénierie sérieuse.

Pour en savoir plus sur les fonctionnalités spécifiques et les possibilités de collaboration, retournez à la page d'accueil produit, ou contactez-nous.

↑ Retour en haut
ANNEXE · SPÉCIFICATIONS COMPLÈTES · ANNEXE

Spécifications d'AnyLocate

Un résumé des spécifications clés ci-dessous ; « ✓ » signifie pris en charge, le reste sont des valeurs concrètes. Les paramètres complets sont conformes au manuel fourni avec le logiciel et à votre version actuelle.

01 Bandes / Constellations CONSTELLATION
GPSL1CA / L1C
BeiDou (BDS)B1I / B1C
GalileoE1 / E5a
GLONASSG1 / G2
02 Canaux & RF RF / CANAUX
Canaux48
Bande RF1176 – 1610 MHz
Quantification IQ2 / 4 / 8 / 16 bits
AntenneSimple
Sortie des observables
Puissance RFRéglable
SortieStreaming temps réel SDR · Fichier IQ hors ligne
Canaux simultanésDynamique (la capacité évolue avec la puissance de calcul hôte / bande passante SDR)
03 Scénarios SCÉNARIOS
Point fixe statique
Dynamiques de base
Dynamiques personnalisées
Fonctionnement continu 24h/24, 7j/7
CouvertureTout lieu / toute heure, dans le monde entier
Systèmes de tempsUTC · GPS · BeiDou · Galileo · GLONASS
Mix multi-constellationToute combinaison de constellations / signaux
04 Dynamique DYNAMIQUE
Fréquence de mise à jour1 kHz
Vitesse≤ 100 m/s
Accélération≤ 2 G
Précision de positionnement≤ 5 m
DopplerModélisé en temps réel à partir de la vitesse relative satellite–récepteur
05 Modèles d'erreur et de propagation PROPAGATION
Modèle ionosphériqueKlobuchar 8 paramètres
Modèle troposphériqueDépendant de l'élévation / altitude
Modèle d'horloge satellitePolynôme a0/a1/a2
Correction relativisteTerme d'excentricité
Retard de groupeBiais inter-signal TGD / ISC
Atténuation en fonction de l'élévation
06 Injection & avancé AVANCÉ
Injection d'éphémérides personnalisées
Remplacement à chaud des éphémérides en directTransition fluide en cours d'exécution, verrouillage maintenu tout au long (fondu enchaîné)
Injection de messages de navigation
Pilotage / basculement de semaine
Modèle UTC
Contrôle de la sélection des satellitesMasquage d'un satellite par constellation / PRN + masque d'élévation
ConfigurationJSON / XML
Interfaces externesMCP / CLI
// Le manuel technique complet est fourni avec le logiciel · les capacités réelles dépendent de votre version