• Aucun résultat trouvé

Expliqué au chapitre précédent, le pseudo-spectre est défini par le tracé selon les angles d’arrivée résultantes de la projection des vecteurs a(θ)dans le sous-espace bruit. Cette projection est caractérisée par le produit scalaire entre les vecteurs a et les vecteurs propres du sous-espace bruit. La figure5.24

illustre le schéma bloc de l’implémentation FPGA de l’équation (4.22) pour le calcul du pseudo-spectre. Toutes les multiplications matricielles réalisées partagent une même architecture série comprenant un bloc de multiplications complexes et deux accumulateurs. Les accumulateurs 1 et 2 accumulent respectivement les résultats réels et imaginaires des multiplications partielles successives entre les éléments ligne et colonne des matrices opérandes de la multiplication. Le processus débute par le calcul de Pnexprimé à l’équation (4.23). Pour ce faire les éléments de la matrice Vsformée par les vecteurs

propres sources sont lus depuis les DPs A et B de façon à ce que les entrées Vsivéhiculent les éléments

ligne et Vsj les éléments colonne. La partie réelle de chaque résultat est augmentée de 1 après une

inversion de son signe1, puis concaténée à la partie imaginaire de signe inverse avant d’être enregistrée dans la mémoire RAM identifiée par Pnsur la figure5.24.

La seconde étape du processus est le calcul de la diagonale de la matrice résultante d’une succession de multiplications par des vecteurs allant de a(θdebut)à a(θfin)à gauche et à droite de la matrice Pn.

Premièrement le vecteur a est calculé pour l’angle de début de la plage à balayer. Une fois disponible, le vecteur a est sauvegardé dans une RAM, sa valeur est conjuguée et une première multiplication est réalisée avec la première colonne de Pn. Ensuite, la valeur obtenue est multipliée par la première

valeur du vecteur a et transmis à l’accumulateur accu3. Une seconde multiplication entre a et la

FIGURE5.24 – Le schéma bloc de l’implémentation du pseudo-spectre de MUSIC

deuxième colonne de Pnest réalisée, la résultante est multipliée par le second élément du vecteur a et

accumulée par la précédente valeur de contenu dans accu3. Le traitement précédent est réalisé jusqu’à la multiplication avec la dernière colonne de a. Ensuite, la valeur contenue dans accu3 est divisée par Net sauvegardée dans la mémoire externe au FPGA SDRAM DDR3 via le module Record développé par Nutaq. L’opération est répétée à chaque θ+0.5 jusqu’à la fin de la plage. La résolution adoptée ici sera donc de 0.5◦.

5.9

Conclusion

Dans ce chapitre, il a été question de présenter l’implémentation, basée sur l’approche MDL, de l’algo- rithme MUSIC dans un FPGA afin de déterminer les angles des sources incidentes au réseau d’antennes linéaire. Pour ce faire, plusieurs modules ont été réalisés. Tout d’abord, le module d’acquisition qui regroupe 3 sous-modules à savoir : le filtrage numérique, la normalisation, et le calcul de la matrice de covariance complexe. Les deux premiers sous-modules cités, affine le signal désiré en éliminant un signal parasite ajouté par la carte électronique effectuant la modulation, puis normalise celui-ci. Le troisième sous-module calcule la matrice de covariance complexe des signaux filtrés et normalisés. Ensuite, dans un souci de réduction de la charge de calcul et le nombre de ressources d’utilisation du FPGA, le module de la transformée unitaire a été réalisé. Ce module à une double fonction : transformer la matrice de covariance complexe en matrice réelle avant la décomposition EVD et effectuer la transformation matricielle inverse du réel au complexe, des vecteurs propres après la

décomposition EVD.

D’ailleurs, la décomposition EVD est le plus gros module réalisé dans ce projet, il implémente le calcul entièrement en réel des vecteurs et valeurs propres. Son modèle a été inspiré de la méthode de Brent [12] et [13] reposant sur l’algorithme de Jacobi. Ce module est en fait un ensemble de 3 sous-modules réalisés et effectuant de façon cyclique les 3 opérations menant à l’obtention des vecteurs et valeurs propres : le calcul des angles θ , la rotation simple et double et l’ordonnancement. Aussi, le bloc Cordic de XSG a été l’élément clé à l’implémentation des deux premiers sous-modules. Le modèle EVD implémenté est invariant à la taille de la matrice de covariance à son entrée. Ainsi, il peut être utilisé pour toutes applications désirant le calcul des valeurs et vecteurs propres réels. Puisque le module EVD n’assure pas le classement en ordre décroissant des valeurs propres et leurs vecteurs propres associés, un module tri a été développé afin de réaliser cette fonction. La méthode utilisée est celle du tri à bulles. En outre, l’algorithme MUSIC nécessitant la connaissance du nombre de sources, le module détection de sourcea été implémenté à cet effet. Il est basé sur le critère de l’erreur quadratique moyen RMSE afin de déterminer les valeurs propres les plus significatives. Le module pseudo-spectre MUSIC implémenté réalise la projection des vecteurs de balayage a(θ)dans le sous-espace source. Le résultat du module du pseudo-spectre à savoir les échantillons du graphe en fonction des angles θ est enregistré dans la mémoire SDRAM DDR3 reliée au FPGA.

D’autre part, le pseudo-spectre MUSIC donnerait des résultats inutiles et erronés sans le module de calibration élaboré. Ce module implémente la calibration par matrice G permettant de compenser certaines erreurs rencontrées dans la pratique telles que le déphasage, le déséquilibre I/Q entre les signaux incidents sur le réseau d’antennes.

Enfin, du point de vue de la précision, sachant que le système a été codé entièrement en point fixe, plusieurs réglages ont été effectués tout au long de l’implémentation, afin que les résultats expérimentaux ressemblent à ceux générés à virgule flottante. Le prochain chapitre présente justement les résultats expérimentaux du système implémenté sur FPGA. Il effectue une comparaison entre ces résultats et leur équivalent théorique à virgule flottante.

Chapitre 6

Présentation des résultats obtenus

6.1

Introduction

Ce chapitre met en avant-plan les résultats expérimentaux obtenus suite à l’exécution de MUSIC sur FPGA. Il les compare à ceux provenant d’une simulation à l’aide de code Matlab en vue d’analyser la performance du code implémenté.

La première section du chapitre énonce la méthodologie, ainsi que les dispositions à adopter pour une bonne utilisation du produit final. De plus, cette section définit l’interface utilisateur servant à paramétrer le FPGA et visualiser ses résultats.

Avant de mettre en évidence le pseudo-spectre expérimental de MUSIC, la seconde partie du chapitre présente les résultats obtenus à chaque étape du traitement sur FPGA tels que la matrice de covariance complexe, la transformée unitaire et inverse, la décomposition en valeurs et vecteurs propres, en les comparant à leurs équivalents théoriques obtenus par simulation via Matlab. Puis l’évaluation de l’angle d’arrivée en présence d’une seule source puis de deux sources corrélées et non corrélées sera commentée. Enfin, un tableau résumant l’allocation des ressources du FPGA au programme implémenté termine le chapitre.