Chapitre 2 : Introduction au Codage Canal Mostafa Belkasmi 2015-2016 ENSIAS Plan • Introduction • Codage et décodage • Capacité de détection et de correction d’un code 1 Introduction • Applications des Codes Correcteurs d’erreurs photos Satellite Réseaux radio mobile Compact Disks Modèle du système de communication K‘ source Réduction de donnée/ k protection de données compression n Canal K‘ Destination Construction du Message k décodeur 2 Codage • Remplacer un message de k bits d’information par un unique mot de n bits, dit mot de code message k bits mot à n bits • L’ensemble de tous les mots de code est appelé un CODE Paramètres d’un code • Code C est dit en bloc si Tous ses mots sont de même longueur. • Si tous les mots d’un code C sont de longueur n alors le code lui-même est dit de longueur n • Les paramètres d’un code en bloc C(n,k) • Taux de codage est défini par R=k/n 3 Codage/Décodage: Code en bloc C(n,k) Code C Mot de Code message 2k Séquence reçue Canal estimation Décodeur Code C n Il y a en totalité 2k mots de code de longueur n Une vue d’ensemble Espace Ambiant 2n vecteurs 2k mots de code 4 Décodage • Comparer la séquence reçue avec tous les mots de code possibles mots de code séquence reçue • Choisir le mot de code avec nb minimum de différences ( ‘Plus Probable’) Exemple • Mots de code : 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 • Reçu : 00011 • Différence : 0 0 0 1 1 0 1 0 0 0 10110 11101 • Meilleure supposition : 0 1 0 1 1 une seule différence 5 Quelques problèmes se posent • Mapping entre messages et mots de code —génération des mots de code (assez différent les uns les autres) Construction de codes —Emmagasinage du code book (2k mots de code, longueur n) Codage • Décodage —Comparer une séquence reçue avec tous les mots de code Définitions • Distance de Hamming entre x et y est dH := d(x, y) = nb de positions où xi yi • La distance minimale d’un code C est dmin = min { d(x, y) | x C, y C, x y} • Poids de Hamming d‘un vecteur x est - w(x) := d(x, 0 )= nb de positions où xi 0 6 Exemple • distance de Hamming • Poids de Hamming d( 1001, 0111) = 3 w(0110101) = 4 Hamming (Bell-lab,1950) les codes de Hamming. Les paramètres d’un code en bloc • Les paramètres d’un code en bloc C(n,k, dmin) • dmin est calculée en comparant les mots de code deux à deux (op. complexe) • Exemple : distance minimale de C(000 , 101, 011, 110) = 2 7 Capacité de détection/Correction d’un code Un code avec une distance minimale dmin (avec dmin 2 t + 1) Alors ce code est capable : - de corriger t erreurs - ou de détecter 2t erreurs Exemples : dmin=11 alors t=5 dmin=12 alors t=5 aussi Illustration A B 2t+1 différences t différences avec A t différences avec B 8 Codes Linéaires Code binaire est dit linéaire ssi · La somme modulo-2 composante à composante de deux mots de code est aussi un mot de code. Exemples : le code de parité et celui de Hamming Codes Cycliques CRC (Rappel) Soit a = (a0 a1,..., ak-1) k bits d’information il peut être représenté par A(X) = a0+a1X +...+ak-1 Xk-1 soit g(X) le polynôme générateur g(X) = g0+g1X +...+gn-k Xn-k. le mot de code (le polynôme) à transmettre est ( procédure de codage) : C(X) = [ Xn-k A(X) mod g(X) ] + Xn-k A(X) Noter que C(X) mod g(X) 0, ainsi C(X) est un multiple de g(X). 9 Procédure de détection Supposons que nous recevons le polynôme R(X) = C(X) + E(X) où E(X) est un polynôme d’erreur binaire i.e. un vecteur erreur ( 0,0,0,1,0) E(X) = X3 Le décodeur calcule S(X)=R(X) mod g(X) - si S(X) = 0 ‘pas d‘erreur détectée’ - si S(X) <> 0, alors une erreur est détectée. Le polynôme R(X) mod g(X) = 0 ssi E(X) est un multiple de g(X). Codes cycliques- Correction • Codes BCH (Bose-Chaudhuri-Hocquenghem) • Codes de Reed –Solomon • Codes cycliques permettant de corriger au moins t erreurs dans un bloc de n symboles. • Les symboles sont dans un alphabet non binaire (un corps finis GF(q)) • Algorithme de Berlekamp pour le décodage. • Usage : CD, DVB-S2 (Digital Video Broadcasting), Réseaux mobiles… 10 Mise en œuvre des codes • Codes détecteurs d’erreurs ARQ (Automatic Repeat reQuest) • Codes Correcteurs d’erreurs FEC ( Forward Error Correction) • Systèmes hybrides HARQ : Hybrid ARQ Codes correcteurs Codes linéaires Codes en bloc Codes cycliques Codes à longueur variable Codes convolutionnels 11 Travaux d’actualité • Turbo codes (Berrou et al, Brest) • Décodage itératif : Belief Propagation, Message Passing,… • Codes LDPC ( Gallager,MIT, Mackay, UK) • Turbo Product Codes ( Pyndiah, Brest) • Fountain codes (DVB IPTV, 3GPP MBMS) • Network Coding (Routage +Codage) 12