Implémentation analogique de décodeurs correcteurs d’erreurs Hamid Meghdadi Superviseur: Prof. Jean Pierre Cances Juillet 2007
Sommaire Introduction Logiciel CADENCE Décodage analogique Travaux réalisés Hamming (8,4) Tail biting Convolutif (7,5) LDPC Quasi-cyclique Conclusion
Les informations reçues peuvent être différentes de celles envoyées Introduction Bruit Erreur Bruit Émetteur Récepteur Canal Bruit Les informations reçues peuvent être différentes de celles envoyées
Envoyer deux fois la même séquence d’information Introduction Bruit Erreur Parité Détection d’erreur Correction d’erreur Bruit Erreur Parité Utiliser parité paire Envoyer deux fois la même séquence d’information Avec les codages plus efficaces on peut détecter ou éventuellement corriger les erreurs Codage
Introduction Bruit Erreur Parité Codage: Détection d’erreur Correction d’erreur Codage: Rate: R = k / n Distance Hamming (d) Pouvoir de détection : d – 1 Pouvoir de correction : Coût Protection Distance de Hamming: Le minimum du nombre de positions où deux mots de codes sont différents Rate
Introduction Codes convolutifs Message à coder: 1 1 101 1 1 1 1 1 1 1 101 1 1 1 1 1 1 1 (111)8 (101)8 1 Code convolutif Code convolutif (7,5) 1 1 1 Séquence codée: 111000
Espace vectoriel n dimensionnel Espace vectoriel k dimensionnel Introduction Code en blocs Couper la séquence de l’information en blocs de taille k Coder chaque bloc de taille k en un bloc de taille n Espace vectoriel n dimensionnel (2n vecteurs) Espace de code Espace vectoriel k dimensionnel (2k vecteurs) Espace de message
Matrice de vérification de parité Introduction Code en blocs (suite) Code matrice génératrice message Matrice de vérification de parité
Chaque ligne de matrice H: Introduction Code en blocs (suite) Chaque ligne de matrice H: Une équation de parité
Logiciel CADENCE Simulateur spectre Le logiciel le plus répandu pour la conception des circuits intégrés Démarche: Schematic Symbol Simulation Optimisation
Décodage analogique (Factor graph) Une méthode pour présenter la matrice H. Pour chaque ligne de H on a un nœud de vérification de parité Pour chaque colonne de H on a un nœud de variable Un nœud de variable (VNj) est connecté à un nœud de vérification(FNi) si et seulement si hi,j est 1. Un nœud de vérification vaut 1 si la somme des valeurs de tous les nœuds de variable connectés à celui-ci est égale à 0
Décodage analogique (Factor graph) Exemple: Hamming (8,4)
Décodage analogique (Notion de LLR) Projection 0 ↔ 1 1 ↔ -1 LLR (Log-Likelihood Ratio) Bit soft LLR Bit soft Bit hard L(X) λ(X) x Symbole [-∞,+∞] [-1,+1] -1,1 Domaine
Décodage analogique (Soft XOR- Boxplus)
Décodage analogique (Soft XOR- Boxplus) Boxplus à trois entrées:
Décodage analogique (Algorithme de Sum-Product) j≠i
Décodage analogique (Circuits de base)
Décodage analogique (Réalisation de Boxplus)
Décodage analogique (Réalisation de Boxplus) MOS: Saturation: Parabolique Subthreshold: Exponentiel VGS≈ VTh IDS ≈ qq nA Avantage: Consommation Inconvénient: Rapidité Courant Rapidité
Décodage analogique (Réalisation de Boxplus) Product: Multiplicateur Vx et Vy :Niveaux differents Norm: Normaliser la sortie de Product pour être utilisable par les étages suivants
Décodage analogique (Simulation de Boxplus) 1 3 2 1 Boxplus – théorique Boxplus – pratique Boxplus – 3D (pratique) 2 3
Décodage analogique (Entrée de circuit) Émetteur Canal x Bruit Résultat: Bonne linéarité Peu d’offset V=34 mV * LLR
Hamming (8,4)
Hamming (8,4) Simulation DC +233 +74.7 0.9 1 +181 -74.7 0.1 2 -218 3 Décision hard Tension de sortie (mV) Tension d’entrée (mV) P(ui=0) (a priori) Mot de code erroné Mot de code sélectionné Bit +233 +74.7 0.9 1 +181 -74.7 0.1 2 -218 3 -115 4 +226 5 -190 6 -138 7 +194 8
Hamming (8,4) Simulation du mode transitoire
Tail biting (7,5) convolutif ci: Informations du canal ui: Message décodé (Pas de probabilité à priori)
Tail biting (7,5) convolutif
Tail biting (7,5) convolutif Réponse transitoire Mesure de rapidité (600 Kbit/sec)
Tail biting (7,5) convolutif Simulation très lente ≈ 20 heures par point
LDPC Quasi-cyclique LDPC Génération Low Density Parity Check Codes très puissants Proposé par Gallager en 1963 Génération Aléatoire Matrices circulantes ….
Nœuds de vérification de parité LDPC Quasi-cyclique Ix est la matrice d’identité 7x7 dont les lignes sont permutées à gauche de x-1 positions. Nœuds de vérification de parité Nœuds de variable
LDPC Quasi-cyclique Période = 1
LDPC Quasi-cyclique Rate = 8/21 Chaque bloc: 8 bits 7 éléments de base 21 nœuds de variable 14 nœuds de vérification
LDPC Quasi-cyclique Code modulaire 1 2 Code modulaire On peut choisir le nombre de bits de l’information Connectique simple
Conclusion Perspectives: Bilan: Analyse de TEB Autonomie Optimisation des paramètres de circuit Fabrication des circuit conçus Utiliser plus d’un décodeur à la fois afin d’augmenter la rapidité Étudier des décodeur plus efficaces Bilan: Autonomie Approfondir ses connaissances de théorie de l’information Prise en main du logiciel CADENCE Se familiariser avec les décodeurs analogique
Merci de votre attention Hamid Meghdadi Master Recherche 2 - CHFO ENSIL 3 – ELT 5 Juillet 2007