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 Introduction • Bruit Erreur Émetteur Canal Récepteur Bruit Les informations reçues peuvent être différentes de celles envoyées Introduction • Bruit Erreur • Parité Envoyer deuxd’erreur fois la même – Détection séquence d’information – Correction d’erreur Codage Utiliser parité paire n x i 1 i 0 Avec les codages plus efficaces on peut détecter ou éventuellement corriger les erreurs Introduction • Bruit Erreur • Parité – Détection d’erreur – Correction d’erreur • Codage: – Rate: R =Coût k / n Protection Nombre des bits de l' informatio n Rate – Distance Hamming (d) Nombre total des bits envoyés • Pouvoir de détection : d – 1 Distance de Hamming: • Pouvoir de : d 1 de positions Le correction minimum du nombre 2 où deux mots de codes sont différents Introduction Codes convolutifs Message à coder: 101 101 0 1 1 1 1 0 0 1 (111)8 (101)8 Code convolutif (7,5) 0 1 1 0 1 1 1 0 0 0 Séquence codée: 111000 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 k dimensionnel (2k vecteurs) Espace de message Espace vectoriel n dimensionnel (2n vecteurs) Espace de code Introduction Code en blocs (suite) x1n u1k Gk n Code message matrice génératrice H n k n xnT1 0 n k 1 Matrice de vérification de parité H n k n GnTk 0 n k k Introduction Code en blocs (suite) Chaque ligne de matrice H: Une équation de parité x1 x2 x3 x4 x5 x6 x7 x8 1 0 H 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 x3 x4 x6 x7 0 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) x1 x2 x3 x4 x5 x6 x7 x8 1 0 H 0 0 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 f1 f2 f3 f4 Décodage analogique (Notion de LLR) • Projection • 0↔1 • 1 ↔ -1 • LLR (Log-Likelihood Ratio) L( X ) ln • Bit soft PX ( x 0) PX ( x 1) L( X ) ( X ) E X tanh 2 Bit hard Bit soft LLR Symbole x λ(X) L(X) Domaine -1,1 [-1,+1] [-∞,+∞] Décodage analogique (Soft XOR- Boxplus) (U 3 ) (U1 ).(U 2 ) L(U1 ) L(U 2 ) LU1 LU 2 2 tanh 1 tanh tanh 2 2 Décodage analogique (Soft XOR- Boxplus) Boxplus à trois entrées: Décodage analogique (Algorithme de Sum-Product) x f i L( X j ) j i f xi L( X j ) j≠i Décodage analogique (Circuits de base) Décodage analogique (Réalisation de Boxplus) V1 VT V3 2VT tanh tanh tanh 2VT 2VT 1 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 2 Boxplus – pratique 3 Boxplus – 3D (pratique) Décodage analogique (Entrée de circuit) Émetteur Canal Bruit x LLR 2x N0 • Résultat: – Bonne linéarité – Peu d’offset – V=34 mV * LLR Hamming (8,4) Hamming (8,4) • Simulation DC Bit Mot de code sélectionné Mot de code erroné P(ui=0) (a priori) Tension d’entrée (mV) Tension de sortie (mV) Décision hard 1 0 0 0.9 +74.7 +233 0 2 0 0 0.1 -74.7 +181 0 3 1 1 0.1 -74.7 -218 1 4 1 0 0.9 +74.7 -115 1 5 0 0 0.9 +74.7 +226 0 6 1 1 0.1 -74.7 -190 1 7 1 1 0.1 -74.7 -138 1 8 0 0 0.9 +74.7 +194 0 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 – Low Density Parity Check – Codes très puissants – Proposé par Gallager en 1963 • Génération – Aléatoire – Matrices circulantes – …. 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 1 2 • Code modulaire • On peut choisir le nombre de bits de l’information • Connectique simple Conclusion • Perspectives: – Analyse de TEB – 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