• Aucun résultat trouvé

Implémentation de la mesure de fréquence du signal fort

4 Réduction de plage dynamique avec une architecture à deux antennes

Chapitre 4. Réduction de plage dynamique avec une architecture à deux antennes

4.3. Implémentation de l’architecture

4.3.3 Implémentation de la mesure de fréquence du signal fort

Avant de reconfigurer les oscillateurs sur la BNF, une mesure de la fréquence du signal fort doit être effectuée sur la BNG. On rappelle que sur cette branche, les signaux sont numérisés sur la BNG avec une fréquence d’échantillonnage de 16 MHz. Sur cette mesure, il existe une contrainte de précision et une contrainte de rapidité. En effet, une mauvaise précision faussera la transposition du signal fort sur le filtre à encoche (dégradant ainsi son atténuation), et une mesure trop lente peut entraîner la perte temporaire des autres signaux. Cette mesure est faite à l’aide d’une FFT, que l’on doit dimensionner afin d’obtenir une mesure à la fois rapide et précise de la fréquence du signal fort.

La FFT est caractérisée par son ordre, ou par le nombre de points NF F Tqu’elle prend en entrée et qu’elle retourne. Ce nombre de points est égal à la puissance de 2 de l’ordre. Comme elle retourne une bande fréquentielle B fixe de 8 MHz (bande numérisée par le CAN), ce nombre de points est essentiel dans la précision de la mesure : plus il est élevé, et plus précise est la mesure. En effet, le pas fréquentiel de la FFT∆F F T est donné par :

F F T = 2B NF F T

(4.9) La précision de la mesure ne peut pas être inférieure à∆F F T/2. On peut ici minorer NF F T : si l’on cherche à détecter un signal de 50 kHz de largeur de bande, le pas fréquentiel doit être inférieur à 25 kHz (on suppose qu’il faut au moins deux points pour représenter le canal). Sachant que la bande numérisée est de 8 MHz, on peut déduire de (4.9) que :

NF F T> 640 (4.10) Le nombre de points de la FFT est généralement une puissance de deux. On considère

4.3. Implémentation de l’architecture

donc ici que NF F T doit être supérieur à 1024 (pour un ordre de 10).

La rapidité de la mesure dépend principalement du nombre d’échantillons du signal traité. En effet, dans le temps de mesure interviennent le temps d’acquisition des signaux et le temps de traitement de la FFT. On s’intéresse dans un premier temps au temps d’acquisition des échantillons : quelle que soit la puissance de calcul mise en œuvre pour le traitement de la FFT, celui-ci constitue une limite que l’on ne pourra pas dépasser.

Avec une fréquence d’échantillonnage fsde 16 MHz, le temps d’acquisition tac q_F F T de NF F T points est donné par :

tac q_F F T=NF F T fs

(4.11) Le temps d’exécution de la FFT dépend de l’algorithme utilisé. Les algorithmes les plus courants sont le Radix-2 ou le Radix-4, qui est légèrement plus rapide [Soni 11]. Le nombre d’opérations nécessaires pour effectuer une FFT est généralement donné en FLoating point OPerations, ou opérations à virgule flottante (FLOP). En utilisant l’algorithme Radix-4, on a besoin de 3NF F T/8 · log2(NF F T) multiplications et de NF F Tlog 2(NF F T) additions [Jones 06]. Ces opérations étant complexes, on a besoin de 6 FLOP par multiplication et de 2 FLOP par addition. On a donc besoin de 4, 25NF F T· log2(NF F T) FLOP pour effectuer la FFT. Le temps d’exécution de la FFT dépend de la puissance de calculFDSP du DSP, donnée en FLOP par seconde :

texe_F F T =4, 25NF F T· log 2(NF F T)

FDSP (4.12)

On peut comparer les temps d’acquisition et d’exécution de la FFT à l’aide de (4.11) et (4.12) :

tac q_F F T

texe_F F T =FDSP

fs · 1

4.25 · log2(NF F T) (4.13)

On remarque que plus le nombre de point de la FFT est grand, et plus le temps d’exécution est grand devant le temps d’acquisition. En évaluant NF F T à 1024, on peut évaluer FDSP dans le cas où le temps d’exécution de la FFT est égal au temps d’acquisition. Avec une fréquence d’échantillonnage de 16 MHz, on a alors FDSP = 680 MFLOP/s. La puissance de calcul du DSP devra être bien supérieure à cette valeur pour que le temps d’exécution soit négligeable devant le temps d’acquisition. Sur [FFTW ], on peut trouver des valeurs de référence de vitesse d’exécution de FFT sur différents processeurs. Les performances obtenues avec le processeur d’Intel Core Duo 3 GHz en 64 bits sont reproduites en Figure 4.15 pour l’implémentation Integrated Performance Primitives, Signal Processing (IPPS) d’Intel, qui donne les meilleures performances. La vitesse d’exécution est donnée avec des signaux codés en précision simple et précision double. On y voit qu’une vitesse de 6,7 GFLOP/s peut être atteinte avec 1024 points en précision double, et de 10,9 GFLOP/s en précision simple. Ces vitesses sont acceptables, puisque le temps d’exécution serait alors de l’ordre d’au moins dix fois plus petit que le temps d’acquisition.

Cependant, on peut implémenter la FFT de manière plus rapide, en considérant la préci-sion des différents points. En effet, le signal en entrée de la FFT est ici codé sur 5 bits, alors qu’un nombre à virgule flottante est codé sur 64 bits, ou sur 32 bits en précision simple. La Figure 4.15 montre que l’on peut gagner en rapidité d’exécution en passant d’une précision de

Chapitre 4. Réduction de plage dynamique avec une architecture à deux antennes 1 3 5 7 9 11 13 15 17 19 21 23 25 0 2000 4000 6000 8000 10000 12000 Ordre de la FFT

Vitesse d’exécution (MFLOP)

Implémentation Intel IPPS

Précision double précision simple

FIGURE4.15 – Vitesse d’exécution d’une FFT selon le nombre de points utilisé sur un Intel Core Duo 3,0 GHz 64 bits. Les différentes courbes correspondent à différentes routines utilisées pour effectuer la FFT. Figure tracée d’après les données disponibles sur [FFTW ]

64 bits à 32 bits. On peut encore améliorer cette vitesse d’exécution en utilisant une précision de 5 bits. C’est ce qui est fait par exemple dans [de Dinechin 10] : les auteurs parviennent, en implémentant la FFT sur FPGA, à mettre en œuvre une FFT d’ordre 7 sur un signal de 20 GHz, ce FPGA fonctionnant à 156 MHz. La précision plus faible permet de paralléliser les opéra-tions, et donc d’exécuter la FFT de manière plus rapide. Le temps d’exécution est également réduit en utilisant certaines fonctionnalités du FPGA, comme la Look-Up Table (LUT) pour implémenter les multiplications. En utilisant cette méthode, on sera capable d’implémenter la FFT de manière suffisamment rapide.

Le spectre retourné par la FFT comporte de nombreux maximums locaux, qui peuvent gêner la mesure du signal fort : à cause de ces pics, le maximum du spectre tombe généra-lement sur une fréquence voisine, mais non égale à la fréquence du signal fort. De plus, le signal en bande de base ayant une composante DC nulle, la fréquence centrale du signal en bande RF est théoriquement nulle, ce qui signifie que sa fréquence centrale ne peut pas être directement déterminée par la mesure du maximum du spectre. Ce spectre doit être lissé avant d’effectuer cette mesure. Pour cela, nous utilisons la méthode du moyennage glissant : elle consiste à remplacer la valeur de chaque composante du spectre par la valeur moyenne de ses composantes voisines.

Ce lissage peut s’implémenter de manière très simple, à l’aide d’un filtre à Finite Impulse Response, ou réponse impulsionnelle finie (FIR) avec des coefficients égaux. Si le moyennage est effectué sur NM Apoints, les coefficients du filtre ont pour valeur 1/NM A, afin de conserver l’amplitude de chaque composante spectrale.

La Figure 4.16 montre l’intérêt de ce lissage, en donnant le spectre de deux signaux (un fort et un faible) obtenu avec une FFT simple sur 2048 points et avec la même FFT suivie d’un moyennage glissant sur 5 points. On y constate que les irrégularités présentes sur le spectre après la FFT sont très atténuées après moyennage, facilitant la détection du maximum du spectre comme valeur fréquentielle du signal fort. Le spectre donné ici est donné sur 4 MHz