• Aucun résultat trouvé

Étape de la synchronisation en fréquence : le canal FCCH

5.3 Les performances du récepteur

5.3.1 Étape de la synchronisation en fréquence : le canal FCCH

Avant l’étape d’échantillonnage, le signal n’est pas transposé parfaitement en bande de base, à cause de l’imprécision des oscillateurs locaux. Ce décalage en fréquence affecte les échantillons transmis à l’ordinateur et il doit être corrigé. De plus, ce décalage n’est pas constant, les fréquences des oscillateurs ayant tendance à évoluer dans le temps. Il est donc nécessaire de mesurer et de corriger régulièrement le décalage en fréquence.

5.3.1.1 Détection du FCCH

Dans notre implémentation, un canal FCCH est présent toutes les 10 trames TDMA. Dans un premier temps, nous allons considérer un total de 11 trames TDMA, assurant ainsi la présence d’au moins un canal FCCH complet (non tronqué). Pour améliorer la détection et la mesure du décalage en fréquence, nous appliquons un filtre passe-bande aux 11 trames TDMA ainsi considérées. Le filtre utilisé est un filtre de Butterworth de second ordre, avec 20 kHz de bande à −3 dB autour de la fréquence centrale de 67.5 kHz. La bande à −3 dB du filtre a été choisie suffisamment large pour assurer la présence du signal FCCH dans cette bande, lorsqu’un décalage en fréquence est présent. Une fois le signal filtré, on considère sa version sur-échantillonnée, qui sera utilisée pour mesurer le décalage en fréquence, et sa version échantillonnée au débit symbole SDS, utilisée pour la détection du canal FCCH. Pour réaliser cette détection, on calcule la somme suivante,

Ak=

k+141

X

i=k

angle(SDS(i) × (SDS(i + 1))), (5.1) avec angle(.) la fonction MATLAB donnant l’argument en radian de la variable complexe en entrée, et k l’index du symbole au sein de SDS. Or, on sait que chaque symbole décrivant

2. Nous avons séparé l’ensemble des 100000 trames TDMA en blocs de 10000 trames pour des raisons pratiques de débogage, mais aussi à cause de limitations matérielles dues à la quantité de mémoire vive à gérer.

le canal FCCH a une différence de phase de −π

2 par rapport au symbole suivant. Dans le cas du canal FCCH, et sans bruit, cette valeur de −π

2 doit se retrouver dans chaque élément de la somme Ak, ce qui n’est pas le cas pour d’autres canaux, où la différence de phase vaut ±π2. La somme Ak sera donc minimale lorsque l’index k sera situé approximativement au début du burst de synchronisation fréquentielle. À l’inverse, la somme Ak aura tendance à s’annuler pour les autres bursts. On peut observer ce phénomène sur la Fig. 5.10, obtenue en simulation sur un canal AWGN et pour un SNR de 0 dB.

Figure 5.10 – Valeurs de Ak obtenues pour un canal AWGN à un SNR de 0 dB en simulation.

On peut constater que la présence de bruit vient perturber la détection du canal FCCH. Ainsi, pour considérer qu’un canal FCCH est correctement détecté, il est nécessaire de fixer un seuil, sachant qu’en l’absence de bruit, la valeur minimale atteinte par le terme Ak est égale à environ −220. Nous avons choisi un seuil d’une valeur de −150, nous permettant d’assurer un bon taux de détection aux SNR d’intérêt, tout en limitant le nombre de fausses alarmes. La Fig. 5.11 présente le taux de détection obtenu en simulation, en fonction de la valeur du SNR. Le canal de propagation considéré est toujours de type AWGN, et un décalage en fréquence constant de 1 kHz est appliqué. Une étude plus approfondie du choix de la valeur du seuil, de même que l’implémentation d’un algorithme permettant d’adapter la valeur de ce seuil en fonction du SNR constituent des axes de développement futurs.

Ce choix étant fait, la Fig. 5.12 compare les performances de détection obtenues dans le cadre de l’implémentation et de la simulation. Les positions des canaux FCCH n’étant pas connues a priori, il nous est impossible de déterminer le taux de fausses alarmes. Un offset constant a été appliqué aux valeurs de SNR dans le cadre d’implémentation. Ce décalage provient des imprécisions dans le calcul du SNR, comme la mesure de la figure du bruit de la carte réceptrice et de la puissance du signal émis, ainsi que la mesure de l’atténuation réalisée par les atténuateurs en cascades. De plus, des interférences issues de systèmes externes sont également présentes sur la bande et perturbent le signal, les expérimentations ne se déroulant pas dans un milieu isolé des signaux extérieurs et la bande de fréquence utilisée n’étant pas dédiée à notre système. Le niveau de puissance de ces interférences variant dans le temps, il est difficile de calculer une valeur précise du SNR dans le cadre de l’implémentation. Néanmoins, en appliquant un décalage constant de −1 dB aux valeurs

Figure 5.11 – Taux de détection du canal FCCH en fonction du SNR, obtenu en simulation pour un seuil de −150.

calculées du SNR, un bon niveau de concordance est obtenu pour les performances en termes de BER et BLER. Cette concordance se retrouve moins dans les comparaisons de niveaux de détection, comme on peut le constater pour la détection du canal FCCH. Le pourcentage de détection chute plus rapidement dans le cadre de l’implémentation que pour la simulation. À très bas SNR, nous considérons une puissance de signal très faible, et de faibles variations de la puissance d’interférences impactent grandement le rapport de puissances. En conséquence, la détection locale de certains canaux FCCH peut échouer, et ce phénomène peut ainsi dégrader la détection moyenne du canal. Dans le cadre d’études futures, il sera nécessaire de réaliser les expérimentations dans un milieu isolé des interférences extérieurs, à l’aide d’une cage de Faraday par exemple.

Figure 5.12 – Comparaison du taux de détection du canal FCCH en fonction du SNR, obtenu par l’implémentation et par la simulation.

5.3.1.2 Mesure et correction du décalage en fréquence

Une fois le burst FCCH détecté, le décalage en fréquence doit être mesuré et corrigé. Pour assurer une mesure optimale du décalage, nous décidons d’appliquer l’algorithme du périodogramme, décrit dans [53], à la version sur-échantillonnée du signal filtré. Cet al-gorithme a déjà été évoqué dans la section 4.1.5.1, avec d’autres alal-gorithmes permettant d’estimer la fréquence d’une sinusoïde pure bruitée. Aussi appelé MLE (Maximum Likely-hood Estimator), il se compose de deux étapes. La première étape, consiste en une recherche grossière (coarse search) de la fréquence maximisant la valeur absolue de la fonction A(ω), s’exprimant comme, A(ω) = 1 N N −1 X n=0 Znexp(−jnωT ), (5.2)

avec N le nombre d’échantillons sur lequel on applique l’algorithme, Zn le nème échantillon complexe et T la durée d’un échantillon. La recherche grossière consiste à calculer la valeur de A(ω) pour l’ensemble des fréquences ωk (k ∈ [0, 1, 2, ..., M − 1]) décrites par la relation,

ωk= 2πk

M T, (5.3)

avec M = 4N dans notre implémentation et conformément aux recommandations de [53]3. On considère que N est égal à la puissance de 2 la plus proche du nombre total d’échantillons dans un burst FCCH, réduite à l’inférieur, soit N = 512 dans notre cas, pour un sur-échantillonnage de valeur 4.

La phase de détection précédente n’étant qu’approximative, nous choisissons une fenêtre de 30 symboles autour du burst FCCH identifié, soit 30 symboles avant le début estimé du burstet 30 symboles après la fin estimée. On applique ensuite la recherche grossière à chaque ensemble de N échantillons, en avançant d’un échantillon à la fois. À chaque application, on sauvegarde la valeur maximale de |A(ω)|, ainsi que la valeur de ωk correspondante. Finalement, on cherche le plus grand de tous les maximums calculés, et la valeur de ωmax

correspondante est la fréquence estimée du signal FCCH à la suite de la recherche grossière. Nous pouvons désormais effectuer la seconde partie de l’algorithme, la recherche fine (fine search), nécessaire pour une correction précise du décalage en fréquence. Tout comme évoqué dans [53], nous utiliserons la méthode récursive de la sécante [61], s’énonçant comme ceci :

Soit une fonction f(x) dont on cherche une racine spécifique, sachant que f(x) peut en posséder plusieurs. Soient x0 et x1 des valeurs connues de x, proches de la racine recherchée xr. La méthode de la sécante consiste à calculer les valeurs successives xn pour n ≥ 2 et n ∈ N, définies par,

xn+2= xn+1− f (xn+1) xn+1− xn

f (xn+1) − f (xn). (5.4) Si les valeurs initiales x0et x1ne sont pas trop éloignées de xr, les valeurs xnsuccessivement calculées doivent se rapprocher progressivement de la racine recherchée. On pourra arrêter l’algorithme après un certain nombre d’itérations ou lorsque le pas |xn+1− xn| devient inférieur à un seuil.

On applique donc cet algorithme à la dérivée de la fonction |A(x)|, considérée lors de la recherche grossière précédente. On peut utiliser comme valeurs initiales x0 = ωmax et x1 = ωmax±2M T . Dans le cadre de notre implémentation, l’algorithme s’arrête après 100

itérations ou pour un seuil de 1 Hz. On obtient alors ωfine, le décalage en fréquence foffset

étant directement calculé par,

foffset = ωfine

1

4TS, (5.5)

avec TS la durée d’un symbole ( 1

4TS = 67500Hz). On pourra noter que l’algorithme MLE employé a une complexité qui peut être élevée, notamment dans le cadre de la recherche fine, et n’est donc pas forcément adapté pour des objets ayant une capacité de calcul limitée. Cet algorithme nous permet néanmoins d’obtenir, de manière générale, une bonne estimation du décalage en fréquence, et ce, même à bas SNR. La comparaison des performances obtenues en implémentant d’autres algorithmes ou techniques de synchronisation en fréquence, dont la complexité serait plus adaptée au domaine de l’IdO, constitue une étude future.

Après avoir obtenu la valeur du décalage en fréquence estimé, nous le corrigeons sur les 11 trames TDMA suivantes. Nous répétons ensuite l’ensemble du procédé sur ces 11 nouvelles trames TDMA, en commençant à partir de la fin estimée du canal FCCH. Nous parcourons ainsi l’ensemble des échantillons reçus, en mettant à jour progressivement la valeur du décalage en fréquence à corriger, comme si le système fonctionnait en temps réel. Si, au sein des 11 trames TDMA, aucun canal FCCH n’a été détecté, nous appliquons la même correction qu’aux 11 trames TDMA précédentes. À la fin de cette étape, nous disposons donc d’un ensemble d’échantillons synchronisés approximativement en fréquence. Néanmoins, avant d’appliquer chaque correction, nous mettons en place un mécanisme de protection. En effet, nous avons constaté, tout comme dans [53], que l’algorithme était ponctuellement très imprécis, pour des valeurs de SNR faibles. Pour protéger le système contre ce phénomène, compte tenu des SNR faibles qui sont considérés dans notre étude, nous appliquons une valeur plafond. Ainsi, après une courte phase de correction libre du décalage en fréquence, le plafond est mis en place, signifiant qu’une correction en fréquence ne pourra dépasser ±25 Hz suivant le signe de la correction à appliquer. La Fig. 5.13 compare l’erreur absolue moyenne obtenue en simulation en fonction du SNR, avec et sans l’utilisation du système de protection. Les résultats démontrent l’efficacité de la méthode. Des études sur le choix de la valeur du plafond, ainsi que sur la durée de la phase de correction libre pourront être menées.

Après avoir parcouru l’ensemble des échantillons disponibles et corrigé le décalage en fréquence, nous pouvons désormais effectuer une synchronisation temporelle à l’aide du canal EC-SCH. Nous appliquons au préalable un algorithme ayant pour objectif de repérer les fausses alarmes parmi les canaux FCCH détectés. Cet algorithme ne sera pas détaillé ici, mais il se base sur la périodicité d’apparition du canal FCCH.