Summary: | Le codage convolutionnel avec le décodage par l'algorithme de Viterbi est couramment utilisé dans les systèmes de communication numérique actuels pour améliorer leurs performances. L'objectif de ce mémoire de maîtrise est de concevoir et de mettre en oeuvre un modèle VHDL synthétisable, ("core"), du décodeur de Viterbi ciblant la technologie FPGA. La disponibilité d'un modèle synthétisable donne plus de flexibilité quant à la mise en oeuvre des systèmes. En plus, un modèle paramétrable facilite le prototypage du décodeur de Viterbi selon différentes spécifications et permet l'exploitation des performances des différentes implémentations afin de choisir celle qui se trouve à être la plus convenable pour un système de communication donné.
L'évolution récente de la technologie VLSI, notamment pour les circuits FPGA, a permis de faire des réalisations performantes du décodeur de Viterbi sur ce type de circuits. L'architecture du décodeur de Viterbi présentée ici se base sur l'utilisation du treillis radix-4 qui permet de faire deux itérations du treillis ordinaire, radix-2, en une seule. L'utilisation de ce treillis a l'avantage de doubler le débit du décodeur tout en conservant un rapport d'efficacité en surface de 1.
Le modèle VHDL du décodeur de Viterbi, conçu dans le cadre de ce mémoire de maîtrise, décode les codes convolutionnels dont les paramètres sont définis par l'utilisateur. Parmi ces paramètres, il y a la mémoire du code, le nombre de symboles d'entrée, le nombre de niveaux de quantification douce par symbole d'entrée, la largeur des mots des métriques de branche et des métriques d'état et la longueur du "Trace Back". Le calcul des métriques de branche est implémenté sous forme de table de conversion configurable afin d pouvoir adapter le décodeur de Viterbi au type de modulation utilisée et améliorer ainsi les performances d'erreur. Les polynômes générateurs du code sont aussi configurables permettant ainsi de commpléter la flexibilité du décodeur. Par exemple, un décodeur compilé pour une mémoire de code donnée, m, peut réaliser le décodage des codes convolutionnels de mémoire de code mc tel que mc≤ m avec les polynômes générateurs appropriés. Ce décodeur peut réaliser le décodage pour deux groupes de taux de codage pour la même compilaton: 1/S et 2/S, où S est le nombre de symboles d'entrée.
|