PROCEDE ET DISPOSITIF DE RECEPTION D'UN SIGNAL DE RADIONAVIGATION DEGRADE
L'invention concerne la réception d'un signal de radionavigation provenant d'un système de positionnement par satellites tel que le système GPS (acronyme de l'expression anglo-saxonne « Global Positioning System »).
Pour bien fonctionner, les récepteurs actuels nécessitent généralement une réception à vue directe des satellites. Le positionnement se détériore rapidement notamment en termes de précision et de durée d'acquisition, lorsque la réception est perturbée comme c'est le cas à l'intérieur d'un bâtiment ou plus généralement en milieu dégradé.
On rappelle succinctement le fonctionnement du système GPS. Il est constitué d'une constellation de 28 satellites et d'un réseau terrestre de stations de référence à terre. Chaque satellite gravite à 20 000 km de la terre avec une période de révolution de 12h. Ils émettent deux signaux, l'un à 1575.452 MHz pour les applications civiles et l'autre à 1227.6 MHz pour les applications à accès réservés. Dans la suite, on ne considère que la fréquence civile. Le signal émis par un satellite est constitué d'une porteuse de fréquence 1575.452 MHz, modulée par un code d'étalement connu et éventuellement par des données inconnues aussi désignées databits. Les satellites émettent tous sur la même fréquence et les signaux émis se différencient par leur code.
Ces codes présentent une période T, par exemple 1 ms et sont typiquement constitués de 1023 chips.
Le positionnement du récepteur est obtenu en mesurant la distance entre un satellite et le récepteur à partir de la durée de propagation du signal entre ce satellite et le récepteur. Dans le récepteur, une réplique du code émis est générée localement ; le décalage entre le signal reçu et le signal local (c'est-à-dire la réplique) correspond à la durée de propagation recherchée. Ce décalage est mesuré en mettant en phase le signal reçu et le signal local ; le critère de mise en phase correspond à la maximisation de la fonction de corrélation des deux signaux, c'est-à-dire à la recherche d'un pic de corrélation. Les calculs de corrélation sont effectués à partir des composantes réelle et imaginaire du signal reçu.
Lorsque la réception est dégradée, le calcul d'un pic de corrélation sur une seule période de code T n'est pas possible : ce calcul est effectué en intégrant sur plusieurs périodes de code, les corrélations de même composante (réelle ou imaginaire) et de même décalage entre le signal et le code.
Ce calcul de corrélation est généralement effectué de demi-chip de code en demi-chip de code sur un intervalle d'intégration que l'on peut faire varier. Pour un intervalle d'intégration de 1 ms, on obtient une durée de calcul de corrélation d'environ 2s. (2 x1023 x 1 ms = 2s). Ce calcul est multiplié par un facteur P fonction de la dérive de l'horloge locale (ou pilote) du récepteur et du nombre d'hypothèses sur la fréquence du signal à considérer pour compenser l'effet Doppler. Pour une incertitude d'horloge d'environ ±10 kHz, P=21 ; on obtient alors de calcul d'environ 2s x 21 , soit 42s par code c'est-à-dire par satellite. En prenant un intervalle de 10ms (c'est-à-dire 10 périodes de code), on gagne environ 10 dB, mais le calcul dure alors environ 20s multiplié par un facteur P ≡201 , soit environ 4020 s par satellite. On n'a finalement gagné que 10 dB pour une durée de positionnement qui a considérablement augmenté. Une solution pour réduire cette durée de calcul est d'effectuer les
2 x 1023 multiplications en parallèle au lieu de les calculer en série comme précédemment. On obtient alors une durée de calcul sur un intervalle d'intégration de 10 ms d'environ 2s (201 x 10 ms=2s).
Dans la suite on se place dans le cadre de cette solution. Les intégrations sont effectuées à partir des composantes réelle et imaginaire du signal échantillonné. On peut effectuer une intégration dite cohérente sur une durée cohérente Tc éventuellement supérieure à T.
Une durée cohérente important permet d'avoir une bande passante étroite et de faire ressortir le signal du bruit. Par contre, il n'est pas possible d'augmenter fortement la durée cohérente. Celle-ci se trouve très vite limitée par : le nombre d'hypothèses de fréquences à considérer pour compenser l'effet Doppler, l'accélération potentielle du mobile,
les caractéristiques et le prix de l'oscillateur pilote dans le récepteur.
En raison de ces limitations, la durée de l'intégration cohérente est inférieure à 100ms et plus généralement fixée à 20ms, c'est-à-dire à la période des databits. La sensibilité de réception pour une durée cohérente de 20ms est située autour de -144dBm suivant les probabilités d'absence et de fausses détections du signal de radionavigation.
Pour repousser ces limites, on effectue aussi en général une intégration dite non cohérente réalisée sur une durée non cohérente Tnc, à partir des intégrations cohérentes pour les deux composantes I et Q calculées sur une seule période de code T.
L'intégration non cohérente peut être réalisée au moyen d'un circuit intégré dédié ou d'un microprocesseur.
L'intégration non cohérente réalisée au moyen d'un circuit intégré dédié, ne permet d'additionner que des intégrations cohérentes calculées sur une seule période de code T.
En utilisant un microprocesseur, l'intégration non cohérente d'intégrations cohérentes calculées sur une durée supérieure à la période de code T ne peut être effectuée que par des lectures successives des intégrations cohérentes et une addition ; le signal est alors mémorisé sur 1 à 20 ms selon le nombre de lectures nécessaires, ce qui nécessite beaucoup de ressources du microprocesseur.
Un but important de l'invention est donc de pouvoir accroître la durée d'intégration et par conséquent la sensibilité du récepteur, notamment lorsque la réception est dégradée.
Pour atteindre ce but, l'invention propose un procédé de réception d'un signal de radionavigation, qui comprend sur une première durée déterminée une étape de calculs de corrélation du signal reçu échantillonné avec un code de période T généré localement, le signal et le code étant décalés de n l'un par rapport à l'autre d'une corrélation à la corrélation suivante.
Il est principalement caractérisé en ce que
préalablement à l'étape de calculs de corrélation, il comporte une étape de mémorisation du signal dans une mémoire pendant une deuxième durée déterminée et en ce que le signal est écrit en mémoire selon une fréquence d'écriture fe et lu selon une fréquence de lecture fl telle que fl>fe en vue de l'étape de calculs de corrélation, le signal échantillonné comportant une composante réelle I et une composante imaginaire Q, il comprend les étapes consistant à additionner les résultats des calculs de corrélation de même composante et de même décalage n, et obtenus sur une durée Tc égale à kc périodes de code, kc étant un entier supérieur à 1 , de manière à obtenir pour chaque composante, une intégration cohérente respectivement désignée
Iτc(n) et Qτc(n), calculer la somme Sτc(n)=lτc(n)2 + Qτc(n)2 , et additionner les sommes Sτc(n) ou sJSτc (n) de même décalage n, obtenues sur une durée Tnc, Tnc = K x Tc, K étant un entier supérieur à 1 , de manière à obtenir pour chaque décalage n, une intégration non cohérente C(n).
Ainsi, on mixe une intégration cohérente sur une durée cohérente Tc égale à kc périodes de code T, kc étant un entier supérieur à 1 et une intégration non cohérente sur une durée Tnc, avec Tnc = K x Tc .
L'intégration cohérente est calculée en intégrant sur plusieurs périodes de code, les corrélations de même composante (réelle ou imaginaire) et de même décalage n entre le signal et le code. L'intégration non cohérente est calculée en effectuant la somme sur une durée Tnc égale à un multiple de Tc (Tnc = K x Tc), des amplitudes ou puissances sur les deux composantes des intégrations cohérentes ayant le même décalage n.
Selon une caractéristique de l'invention, l'étape de calculs de corrélation est réalisée pour plusieurs codes et le signal mémorisé est lu pour chaque code. De même, l'étape de calculs de corrélation est réalisée pour plusieurs hypothèses de fréquence considérées pour compenser l'effet Doppler et le signal mémorisé est lu en mémoire pour chacune de ces hypothèses.
L'invention a aussi pour objet, un récepteur d'un signal de radionavigation, caractérisé en ce qu'il comprend un microprocesseur apte à mettre en œuvre le procédé tel que décrit.
Enfin, l'invention concerne également un récepteur d'un signal de radionavigation pourvu d'un corrélateur apte à corréler le signal reçu qui comporte une composante réelle et une composante imaginaire, avec un code de longueur N et de période T généré localement, caractérisé en ce qu'il comporte relié au corrélateur, une première mémoire et un premier additionneur aptes à mémoriser 2N résultats issus du corrélateur pour les deux composantes et à les incrémenter respectivement au fur et à mesure des résultats fournis par le corrélateur, pendant une durée Tc égale à kc périodes de code, kc étant un entier supérieur à 1 ,pour réaliser 2N intégrations cohérentes respectivement désignées pour chaque composante lτc et QTC , des moyens pour obtenir N amplitudes ou puissances de sommes Sτc(n)=lτc(n)2 + Qτc(n)2, une deuxième mémoire et un deuxième additionneur aptes à mémoriser les N amplitudes ou puissances des sommes STc(n), et à les incrémenter respectivement pendant une durée Tnc, Tnc = K x Tc, K étant un entier supérieur à 1 , au fur et à mesure que les amplitudes ou les puissances des sommes Sτc(n) sont obtenues, pour réaliser N intégrations non cohérentes.
Un tel récepteur permet de mixer des intégrations non cohérentes et cohérentes, ces dernières étant calculées sur une durée supérieure à la période du code T et de réaliser ce mixage rapidement. Avec Tc = 10 ms, on gagne plus de 30% en durée de traitement du signal. La souplesse de configuration entre la durée cohérente et le nombre d'intégrations cohérentes permet d'optimiser le pouvoir de détection des faibles signaux.
Avantageusement, il comprend relié au corrélateur une troisième mémoire apte à mémoriser le signal reçu selon une fréquence d'écriture fe et à le restituer vers le corrélateur selon une fréquence de lecture fl telle que fl>fe.
Selon une caractéristique de l'invention, le corrélateur comprend un registre à décalages non tournant pour le code et au moins un registre à décalages non tournant pour le signal.
D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit, faite à titre d'exemple non limitatif et en référence aux dessins annexés dans lesquels : la figure 1 représente schématiquement un exemple de corrélateur connu avec un registre à décalages tournant pour le code, et un registre à décalages non tournant pour le signal, la figure 2 représente schématiquement un exemple de corrélateur avec un registre à décalages non tournant pour le code, et un registre à décalages glissant pour le signal, la figure 3 représente schématiquement un exemple de perfectionnement du corrélateur de la figure 2, la figure 4 représente schématiquement un exemple de récepteur selon l'invention apte à mettre en œuvre un mixage d'intégrations cohérentes et non cohérentes avec post-traitement.
Selon un mode de réalisation de l'invention, on mixe une intégration cohérente sur une durée cohérente Tc une durée Tc égale à kc périodes de code T, kc étant un entier supérieur à 1 , et une intégration non cohérente sur une durée Tnc, avec Tnc = K x Tc . L'intégration cohérente est calculée en intégrant sur plusieurs périodes de code, les corrélations de même composante (réelle ou imaginaire) et de même décalage n entre le signal et le code.
On va dans un premier temps détailler ces corrélations sur un exemple en prenant N = 2046 = 2 x 1023 car le calcul de corrélation est effectué de demi-chip de code en demi-chip de code. Les chips de code peuvent être divisés par 2 comme dans cet exemple ou par 3, 4, ..., voire même 3.3, etc.
Selon un premier mode de réalisation, d'une corrélation à l'autre, la modification du décalage n est obtenue en décalant le code, le signal restant fixe. Cette technique procède en 2 phases en utilisant pour chaque composante du signal, une structure comme par exemple celle de la figure 1.
Le signal reçu dont la fréquence est compensée pour prendre en compte l'effet Doppler, est chargé dans un registre à décalages non tournant
1 et le code est chargé dans un registre à décalages tournant 2. La longueur N du registre à décalages représente le nombre de chips du code considérés
sur la période du code, soit 1 ms par exemple pour le GPS. Puis le signal reste fixe dans son registre à décalages 1 et le code effectue N rotations sur lui-même dans le registre à décalages tournant 2. Une nouvelle corrélation est calculée pour chaque rotation, au moyen de N multiplieurs 3 et d'un additionneur 4 à N entrées.
La première phase charge le signal sur une période du code. La seconde phase calcule une corrélation à chaque rotation du code sur lui- même.
Les 2 composantes réelle et imaginaire du signal sont traitées à l'aide d'un registre à décalages et peuvent être par exemple exprimées de la façon suivante :
SRr(i, tk) sont les échantillons de la composante réelle du signal à l'instant i x 1 ms / 2046 + tk,
SRi(i, tk) sont les échantillons de la composante imaginaire du signal à l'instant i x 1 ms / 2046 + tk, i l'indice du registre à décalages variant de 0 à 2045, tk = to + k x 1 ms. tk représente la (k+1 )ième période de code. Code(i, n) est le code à l'indice (i + n) modulo 2046, i l'indice du registre à décalages variant de 0 à 2045, n l'indice de retard entre le signal et le code, variant de 0 à 2045.
A la k+1 ième période de code, le résultat de la corrélation sur la composante réelle, fourni par l'additionneur pour un décalage n, est :
2045
V [Code(i,n) * SRr(i, tk )] = Code(0, n) * SRr(O, tk ) + Code(l , n) * SRr(I , tk ) + ...
1=0
+ Code(2044, n) * SRr(2044, tk ) + Code(2045, n) * SRr(2045, tk )
De même, à la k+1 ième période de code, le résultat de la corrélation sur la composante imaginaire, fourni par l'additionneur pour un décalage n, est :
2045
V [Code(i, n) * SRi(i, tk )] = Code(0, n) * SRi(O, tk ) + Code(l , n) * SRi(I, tk ) + ...
1=0
+ Code(2044, n) * SRi(2044, tk ) + Code(2045, n) * SRi(2045, tk )
Selon un autre mode de réalisation, d'une corrélation à l'autre, le code est maintenant fixe et seul le signal est décalé : il glisse dans son registre à décalages à chaque cycle d'horloge. La tranche de signal est toujours égale à une période de code mais cette tranche est glissante.
Ce mode de réalisation est mis en œuvre en utilisant pour chaque composante du signal, une structure comme par exemple celle de la figure 2.
Le code est entré dans un registre à décalage non tournant 2' et la composante du signal compensé de son Doppler est rentrée en continu dans un registre à décalages glissant 1. La longueur N du registre à décalages représente le nombre de chips du code considérés sur la période du code, soit 1 ms par exemple pour le GPS.
L'un des avantages de ce corrélateur réside dans la mise en parallèle des deux phases des solutions conventionnelles (chargement du signal dans le registre à décalages et calcul des corrélations). La durée de traitement du signal, donc de recherche des satellites est ainsi divisée par 2. Selon un autre mode de réalisation, les deux structures pour les composantes réelle et imaginaire sont combinées comme représenté sur l'exemple de corrélateur de la figure 3. Ce corrélateur 20 est pourvu d'un registre à décalages non tournant 2' pour le code, commun aux deux composantes, de longueur N. Les autres éléments étaient déjà présents dans l'exemple de la figure 3, à savoir un registre à décalage 1 de longueur N pour chaque composante réelle et imaginaire du signal (respectivement désignées signal I et signal Q sur la figure), 2N multiplieurs 3 (N pour chaque composante) et 2 additionneurs 4 à N entrées chacun (1 additionneur pour chaque composante).
Les 2 composantes réelle et imaginaire du signal peuvent être par exemple exprimées de la façon suivante : SRr(i, tk,n) sont les échantillons de la composante réelle du signal à l'instant i x 1 ms / 2046 + tk,n ,
SRi(i, tk,n) sont les échantillons de la composante imaginaire du signal à l'instant i x 1 ms / 2046 + tk,n, i l'indice du registre à décalages varie de 0 à 2045,
tk,n = to + k x 1ms + n x 1ms / 2046. tk,n représente la (k+1 )ième période de code, n variant de 0 à 2045 et représente l'indice de retard entre le signal et le code.
A la k+1 ième période de code, le résultat de la corrélation sur la composante réelle, fourni par l'additionneur pour un décalage n, est :
2045 y [Code(i) * SRr(i, tk n )] = Code(0) * SRr(O, tk n ) + Code(l ) * SRr(I , tk n )
L^ L + ...
I=O
+ Code(2044) * SRr(2044, tk n ) + Code(2045) * SRr(2045, tk n )
De même, à la k+1 ième période de code, le résultat de la corrélation sur la composante imaginaire, fourni par l'additionneur pour un décalage n, est :
2045
V [Code(i) * SRi(i, tk n )] = Code(0) * SRi(O, tk n ) + Code(l) * SRi(I, tk n ) + ...
1=0
+ Code(2044) * SRi(2044, tk n ) + Code(2045) * SRi(2045, tk n )
Le procédé selon l'invention procède en 3 étapes. La première étape calcule une intégration cohérente sur une durée Tc avec ses 2 composantes réelle et imaginaire. La deuxième étape calcule une amplitude ou une puissance à partir des intégrations cohérentes sur les 2 composantes. La troisième étape calcule sur une durée Tnc la somme des amplitudes ou des puissances ayant le même décalage. Les 3 étapes sont répétées N fois. Dans notre exemple N = 2046. Ce mixage est mis en œuvre par exemple par des moyens représentés figure 4.
L'intégration cohérente (1ere étape) est réalisée pendant une durée Tc, multiple de la période du code, en l'occurrence multiple de 1 ms ; elle est réalisée de manière séparée sur les deux composantes réelle et imaginaire.
Lorsque les corrélations ont été calculées à partir d'un code tournant et d'un signal fixe, on obtient les résultats suivants. Pour un décalage n entre le signal et le code, il résulte de l'intégration cohérente, l(n, Tc) (ou Iτc(n)) pour la composante réelle et Q(n, Tc) (ou Qτc(n)) pour la composante imaginaire :
e
o 5(n,Tc) (Code(i,n) * SRr(Mk))
avec SRr(i, t
k) et SRi(i, t
k) à l'instant i x 1 ms / 2046 + t
k, t
k = t
0 + k x 1 ms.
Code(i, n) est le code à l'indice (i + n) modulo 2046 comme indiqué précédemment.
Lorsque les corrélations ont été calculées à partir d'un code fixe et d'un signal glissant, on obtient les résultats suivants. Pour un décalage n entre le signal et le code, il résulte de l'intégration cohérente, l(n, Tc) (ou Iτc(n)) pour la composante réelle et Q(n, Tc) (ou Qτc(n)) pour la composante imaginaire :
QS'(n,Tc) (Code(i)* SRi(M
kij)
avec SRr(i, t
k,
n) et SRi(i, t
k,
n) à l'instant i x 1 ms / 2046 + t
k,
n, t
k,
n = t
o + k x 1 ms + n x 1 ms/2046.
Cette intégration cohérente peut être obtenue au moyen d'un microprocesseur apte à mettre en œuvre les calculs précédents ou au moyen d'un additionneur 6 associé à une mémoire 7 à 2N cases apte à être lue puis écrite telle qu'une mémoire RAM. De manière connue, la mémoire 7 est lue et écrite au fur et à mesure des résultats fournis par le corrélateur 20.
Si une inversion de phase due à une modification de data bit intervient durant la durée cohérente, il peut être difficile voir impossible de détecter le pic de corrélation. L'intégration cohérente nécessite la prise en compte de la phase des data bits au moyen d'un dispositif connu 5 : le résultat de chaque corrélation est multiplié par ±1 selon la valeur du databit sur la période de code pendant laquelle les corrélations sont effectuées.
Une amplitude ou une puissance est ensuite calculée à partir des 2 composantes des intégrations cohérentes (2è étape) :
ou S(n,Tc) =[l(n, Tc)
2 + Q(n, Tc)
2 ]
On désigne aussi S(n,Tc) par STc(n).
Cette 2ème étape est obtenue de manière connue par un microprocesseur ou un circuit intégré 8.
Dans l'art antérieur, l'intégration non cohérente consiste à calculer sur la période du code, l'amplitude ou la puissance des corrélations sur les deux composantes, puis à les sommer. Selon l'invention, l'intégration non cohérente (3è étape) est calculée en effectuant la somme sur une durée Tnc multiple d'un nombe entier de durée cohérente Tc (Tnc = K x Tc), des amplitudes ou puissances d'intégrations cohérentes ayant le même décalage n. On obtient :
[l(n, kTc)
2 + Q(n, kTc)
2]
Cette intégration non cohérente peut être obtenue au moyen d'un microprocesseur apte à mettre en œuvre les calculs précédents ou au moyen d'un additionneur 9 associé à une mémoire 10 à N cases apte à être lue et écrite telle qu'une mémoire RAM. De manière connue, la mémoire 10 est lue puis écrite au fur et à mesure des résultats fournis par la mémoire 7.
Ces trois étapes sont répétées pour chaque décalage n, c'est-à- dire N fois. Dans notre exemple N = 2046.
Selon un mode de réalisation de l'invention, désigné mode temps réel, le signal est échantillonné et traité pour un satellite et une hypothèse de fréquence (considérée pour compenser l'effet Doppler) à la fois. Il n'y a pas de mémorisation du signal : les échantillons sont directement utilisés pour le traitement du signal qui dure Tnc.
Selon un mode préférentiel désigné mode post-traitement, le signal est échantillonné et sauvegardé en mémoire 11 de préférence pendant la durée non cohérente Tnc qui peut atteindre 16 s. Puis les échantillons sont lus en mémoire pour chaque satellite et chaque hypothèse de fréquence Doppler ; c'est-à-dire que les signaux I et Q issus de la mémoire 11 sont convertis en bande de base et compensés d'une fréquence
Doppler par l'élément 12 avant d'être insérés dans le registre à décalages du corrélateur 20. Les échantillons sont lus à une fréquence fl bien supérieure à leur fréquence fe d'écriture en mémoire. Ce mode post¬ traitement permet de réduire la durée de recherche globale des satellites comme il apparaît sur le comparatif suivant.
On désigne :
NBSAT : le nombre de satellites
BPDOPPLER : la bande de fréquences à considérer pour compenser l'effet Doppler pour la recherche des satellites Tnc : la durée d'intégration non cohérente
Tc : la durée d'intégration cohérente
K : le rapport des fréquences d'écriture et de lecture en post traitement T tr : la durée de traitement global temps réel Tpt : la durée de traitement globale post-traitement
On a :
Ttr = NBSAT x BPDOPPLER x Tc x Tnc Tpt = NBSAT x BPDOPPLER x Tc x Tnc / K + Tnc ,
Tpt = Ttr / K + Tnc
Tnc est négligeable devant Ttr / K ; on a typiquement K = 25 ou plus.
Dans l'exemple décrit, on a considéré des signaux à deux états ( ±1 ) ; bien sûr, l'invention s'applique de la même façon à des signaux à plus de deux états.
Jusqu'à présent on a considéré qu'un seul code était généré localement. Lorsque l'on souhaite considérer d'autres codes, ceux-ci peuvent être considérés en série en reprogrammant le code local et les fréquences Doppler associées, au fur et à mesure que l'on change de code. Ils peuvent être considérés en parallèle : il suffit alors, selon une méthode connue de l'homme du métier, de pourvoir le récepteur de structures parallèles, c'est-à-dire de multiplier la structure comportant le corrélateur (ainsi que la mémoire pour le post-traitement si nécessaire, et/ou les intégrateurs si nécessaire), par le nombre de codes locaux à considérer.
Le signal reçu peut être un signal de radionavigation par satellites et/ou par pseudolites.
Il s'agit par exemple d'un signal de positionnement de type GPS (acronyme de l'expression anglo-saxonne « Global Positioning System »), ou GALILEO ou tout autre système de positionnement.