Problématique du codage : Codes & chiffres. Plan du cours. Définition des codes

Documents pareils
Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Programmation linéaire

Théorie et codage de l information

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Probabilités sur un univers fini

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Objets Combinatoires élementaires

Continuité et dérivabilité d une fonction

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Coefficients binomiaux

Transmission d informations sur le réseau électrique

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Fonctions de plusieurs variables

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Compression et Transmission des Signaux. Samson LASAULCE Laboratoire des Signaux et Systèmes, Gif/Yvette

Une introduction aux codes correcteurs quantiques

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Probabilités sur un univers fini

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Résolution de systèmes linéaires par des méthodes directes

Résolution d équations non linéaires

Introduction à l étude des Corps Finis

Conversion d un entier. Méthode par soustraction

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Définitions. Numéro à préciser. (Durée : )

Exercices Corrigés Premières notions sur les espaces vectoriels

Plus courts chemins, programmation dynamique

Introduction à la théorie des graphes. Solutions des exercices

Cryptographie et fonctions à sens unique

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Quantification Scalaire et Prédictive

Correction du Baccalauréat S Amérique du Nord mai 2007

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

1 Introduction au codage

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Probabilités et Statistiques. Feuille 2 : variables aléatoires discrètes

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Compression Compression par dictionnaires

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

1.1 Codage de source et test d hypothèse

Journées Télécom-UPS «Le numérique pour tous» David A. Madore. 29 mai 2015

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Activité 4. Tour de cartes Détection et correction des erreurs. Résumé. Liens pédagogiques. Compétences. Âge. Matériels

La classification automatique de données quantitatives

Intégration et probabilités TD1 Espaces mesurés Corrigé

Pour l épreuve d algèbre, les calculatrices sont interdites.

Cours d analyse numérique SMI-S4

Programmation linéaire

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

CHAPITRE 5. Stratégies Mixtes

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

1 Recherche en table par balayage

Programmation linéaire et Optimisation. Didier Smets

Carl-Louis-Ferdinand von Lindemann ( )

ISO/CEI NORME INTERNATIONALE

Travaux dirigés d introduction aux Probabilités

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

V- Manipulations de nombres en binaire

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Optimisation Discrète

Probabilités. C. Charignon. I Cours 3

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

3 Approximation de solutions d équations

Espérance conditionnelle

Principe de symétrisation pour la construction d un test adaptatif

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Chapitre 5 : Flot maximal dans un graphe

Programmes des classes préparatoires aux Grandes Ecoles

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

1 Complément sur la projection du nuage des individus

Polynômes à plusieurs variables. Résultant

Représentation des Nombres

Filtrage stochastique non linéaire par la théorie de représentation des martingales

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Cours 02 : Problème général de la programmation linéaire

Amphi 3: Espaces complets - Applications linéaires continues

UNE EXPERIENCE, EN COURS PREPARATOIRE, POUR FAIRE ORGANISER DE L INFORMATION EN TABLEAU

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

CCP PSI Mathématiques 1 : un corrigé

Chapitre 3. Mesures stationnaires. et théorèmes de convergence

Les travaux doivent être remis sous forme papier.

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Cours d Analyse. Fonctions de plusieurs variables

Structures algébriques

Cours de Probabilités et de Statistique

Méthodes de quadrature. Polytech Paris-UPMC. - p. 1/48

Corrigé du baccalauréat S Asie 21 juin 2010

Moments des variables aléatoires réelles

Chapitre VI - Méthodes de factorisation

I. Polynômes de Tchebychev

Transcription:

Problématique du codage : Bruno MARTIN, Université de Nice - Sophia Antipolis canal non bruité : pour transmettre un message sous la forme de signal, il faut le coder. Le codage dépend du canal de transmission (écriture, parole, code Morse, code ASCII sont autant de modes de codage différents). Le plus souvent, par des codes binaires i.e. sur l alphabet {0, }. canal bruité : le signal peut être bruité entre l émetteur et le récepteur (ie. perturbé par un signal aléatoire). Pour retrouver le message source à partir du signal reçu, l émetteur ajoute des bits de redondance qui vont permettre au récepteur soit de détecter soit de corriger une ou plusieurs erreurs. Dans le premier cas, il s agit de codes détecteurs d erreurs et dans le second de codes correcteurs d erreurs. Le but de la théorie des codes est de transmettre rapidement et correctement des messages. Plan du cours Définition des codes 2 3 Soit Σ un alphabet et Σ l ensemble des mots finis sur cet alphabet. Un code C = {c,...,c k } Σ. Les c i C sont les mots du code. Si tous les mots du code sont de même longueur, on dit que C est un code à longueur fixe ou en bloc. Sinon, C est un code à longueur variable. C est préfixe si aucun mot du code n est le préfixe d un autre. Ce dernier cas ne peut se produire qu avec des codes à longueur variable. Exemple : Pour Σ = {0, }, l ensemble de tous les mots sur Σ est Σ = {, 0,, 00, 0, 0,, 000,...}. C = {0, 0, } code préfixe à longueur variable C = {, 0, } code non préfixe à longueur variable C = {000, 0} code à longueur fixe ou code en bloc

Codes de source optimaux Le code Morse En associant des codes courts aux messages les plus fréquents et des codes longs pour les autres, on peut construire un code optimal, au sens où le nombre moyen de bits par symbole correspond précisément à l entropie de l ensemble des messages possibles. A.- B -... C -.-. D -.. E. F..-. G - -. H... I.. J.- - - K -.- L.-.. M -- N -. O --- P.- -. Q - -.- R.-. S... T - U..- V...- W.- - X -..- Y -.- - Z - -.. Comment décoder...? Sans espaces, le décodage n est plus unique. D où l intérêt des codes préfixes (cas des codes de Huffman). Code de Huffman Principe de réduction But : construire un code préfixe optimal pour une source S r comprenant r messages sur un alphabet binaire basé sur : une réduction transformant S r en une source à r symboles S r pour obtenir une source à deux symboles de code préfixe optimal {0, } la propriété : sur {0, } si C = {c,...,c r } code préfixe optimal pour une source S r, alors C = {c,...,c r, c r+ } : c i = c i i r c r = c r.0 c r+ = c r. lister les symboles de source dans l ordre des proba. décroissantes 2 remplacer les 2 derniers symboles par un seul, affecté d une probabilité = somme des probabilités des 2 derniers symboles 3 réordonner la liste et répèter le processus 4 arrêt quand le nombre d éléments de la liste est 2 ensuite, appliquer successivement la propriété en remontant de la source à 2 symboles codés par 0 et vers S r pour avoir un code préfixe optimal pour S r. est un code préfixe optimal pour la source S r+.

Exemple de code optimal Plan du cours A, B et C t.q. P(A) = /2, P(B) =P(C) =/4. après l étape (4) de l algorithme, on obtient : C(/4) CB(/2) B(/4)0 0 A(/2)0 2 A /2 /2 0 B /4 /2 C /4 A 0, B 0 C. ABAACABC 000000. 0 3 Canal de transmission Quantité d information transmise On considère le canal binaire symétrique : 0 p p p p Distance entre deux mots est le nombre de symboles où ils diffèrent. Probabilité de recevoir un mot de longueur k qui diffère sur d positions du mot envoyé : d ( p) k d p d k 0 La quantité d information qui est effectivement transmise par le canal est la capacité qui vaut C(p) = p log 2 p + ( p) log 2 p = +plog 2 p + ( p) log 2 ( p) Exemple : Avec une probabilité d erreur de %, la capacité du canal binaire symétrique est C(0, 0) = (0, 07 + 0, 0) = 0, 92

Codes à longueur fixe Codage optimal Cas des codes binaires à longueur fixe : on code des messages de longueur k avec des mots du code de longueur n. On ajoute n k symboles de redondance. Si le code a w mots, la quantité d information véhiculée est log 2 w et le rendement du (n, k)-code est log 2 w n On définit le taux du code comme k/n Le codage optimal en présence de bruit a été résolu dans le second théorème de Shannon qui présente un résultat inattendu. Il affirme en effet qu il existe des codes de rendement log 2 w n aussi proche que l on veut de la capacité du canal et qui permettent de rendre la probabilité d erreur de transmission inférieure à tout nombre fixé. Théorème existentiel! Aucune indication sur comment construire un tel code. A l heure actuelle, pour tous les codes connus, la vitesse de transmission tend plus ou moins vite vers zéro en même temps que la probabilité d erreur de transmission. Théorèmes de Shannon Plan du cours Sans perturbation, il est possible, à partir d un alphabet quelconque, de coder les messages émis de telle sorte que le rendement soit aussi proche qu on veut de la valeur maximale, i.e. l entropie. 2 théorème fondamental avec perturbation, il est possible, grâce à un codage adéquat, d assurer un rendement aussi proche qu on le souhaite de la valeur maximale, i.e. la capacité du canal, avec une probabilité d erreur arbitrairement petite. En revanche, la probabilité d erreur ne peut être inférieure à une valeur finie si le rendement est supérieur à la capacité. 2 3

Définition d une distance Distance sur les mots B =, alphabet. La distance de Hamming h sur B est : Une distance d doit satisfaire : d(x, y) > 0 d(x, y) =0 x = y d(x, y) =d(y, x) d(x, y) d(x, z)+d(z, y) si x = y h(x, y) = 0 si x = y pour x, y B. Soit n N et B n = {x =(x, x 2,...,x n ): i n, x i B}. La distance de Hamming sur B n est : h (x, y) = n h(x i, y i ) pour x, y B n. Si h (x, y) =e, les mots x et y de B n diffèrent en exactement e positions. i= Poids et boules Problème du codage à longueur fixe Le poids de x B n, w(x) est la distance de x à 0 =(0, 0,...,0) w(x) =h (0, x) On définit la boule de centre x et de rayon e pour e N et x B n B e (x) ={z : z B n, h (x, z) e} Le nombre d éléments de ces boules est : Lemme Soit B = q et x B n, alors pour 0 e n, B e (x) = e i=0 n (q ) i i Coder un mot x de k lettres sur un alphabet fini A revient à le transformer en un mot de n lettres y sur l alphabet fini B. Ainsi, c : A k B n injective est un A B code et {y : y = c(x)} sont les mots du code. Au travers du canal, y peut être modifié sur e positions. Définition Un code C de longueur n sur l alphabet B vérifie la condition de décodage d ordre e si x B n, il existe au plus un mot x C tel que h (x, x ) e. Cette condition est équivalente à ce que les boules fermées (pour la distance de Hamming) de rayon e et centrées sur les mots du code C soient deux à deux disjointes.

Détection ou correction? Exemple On définit quand un code peut détecter ou corriger e erreurs : Un code C B n détecte jusqu à e erreurs si x, y C, x = y h (x, y) 2e ; 2 Un code C B n corrige jusqu à e erreurs si x, y C, x = y h (x, y) 2e + (les boules centrées sur les mots du code sont disjointes) ; On pourrait également considérer h (x, y) e + mais, en ce cas, on ne saurait dire combien d erreurs il y a eu. A = {x, y} et B = {0, }, n = 3 et e =. On définit C par : x 000 y 0 Les boules centrées sur x et y sont alors : B (x) = {000, 00, 00, 00} B (y) = {0, 00,, 00} Les deux boules ne sont pas disjointes car B (x) B (y) ={00, 00}. Si on reçoit les messages 00 ou 00, on ne peut savoir si le message émis était x ou bien y. En revanche, on peut affirmer qu il y a eu une erreur de transmission. C est un code détectant une erreur. Nombre de mots d un code Correction d erreurs au plus proche voisin Proposition Soit B =2,n, e N et C B n un code qui corrige jusqu à e erreurs. Alors, C 2 n e i=0 La preuve de la proposition précédente est immédiate à partir du lemme et en observant que B n =2 n. n i Correcteur orthographique corrige cae en car plutôt qu en val. Le mot à corriger doit être le plus proche possible d un mot correct (ici, un mot du code). Exemple du code de répétition : Soit C = {00, 0, 0, }. Chaque mot reçu est un mot du code. C ne peut donc servir à détecter des erreurs. C ne corrige pas d erreurs non plus. On modifie C en répétant trois fois chaque mot du code : C 2 = {000000, 000, 000, } Ce code s appelle code à répétition. Que se passe-t-il si on reçoit 00?

Exemple du bit de parité Distance et poids minimum On modifie C en ajoutant un troisième bit à chaque mot de façon à ce que le nombre de des mots soit pair : C 3 = {000, 0, 0, 0} Le bit ajouté s appelle bit de parité. Supposons avoir reçu le message 00. Comme 00 n est pas un mot du code, on est certain qu il y a eu une erreur de transmission. Le message peut être décodé en 0, 000 ou 0 en ne changeant qu un seul bit du message. On appelle distance minimum d un code C la quantité ; h (C) = min{h (x, y) :x, y C, x = y} et poids minimum d un code la quantité : w(c) = min{w(x) :x C, x = 0} Permet de réécrire la condition de détection ou de correction du code. Exemple Plan du cours Pour le code C : A B avec A = {x, y, z} et B = {0, }, n =5 et e =. {x 00; y 00; z 0} on a : h (x, y) =h (00, 00) = 4 h (x, z) =h (00, 0) = 3 h (y, z) =h (00, 0) = 3 La distance min est h (C) = 3 et le poids minimum est w(c) = 3. 2 3

Définitions Matrice génératrice Un code linéaire binaire C de longueur n est un sous-espace linéaire de l espace vectoriel (Z 2 ) n. Autrement dit, C vérifie : u, v C, u + v C Si C a pour dimension k, C est un (n, k)-code linéaire Si sa distance minimum est d, C est un un (n, k, d)-code linéaire. Le taux d information du (n, k)-code linéaire C est le rapport R = log C = k/n n C est défini au moyen d une k n matrice G, dite génératrice. Les lignes de G forment une base de C. Si {v, v 2,...,v k } sont les vecteurs lignes de G, tout x C peut s exprimer comme unique combinaison linéaire des lignes : x = k a i.v i pour des a i Z 2, i k. G application linéaire de (Z 2 ) k (Z 2 ) n qui associe à tout mot binaire de longueur k un mot binaire de longueur n. On ajoute n k symboles de redondance aux mots binaires à k lettres. i= Codage d un message et mots du code Exemple Un message est un mot a de longueur k. Pour le coder, calculer a.g A partir des vecteurs lignes de (Z 2 ) k et de la matrice G, on peut énumérer les éléments de C : C = {a.g : a (Z 2 ) k } Soit G = 0 00 la matrice génératrice d un code C. Les mots du code sont : 0 00 00 000 0 00 0 0 Le code est de dimension 2, possède 4 mots {000, 00, 0, }. Il est de distance minimum et son taux d information est 3 log 2 4= 2 3.

Forme normale Codes équivalents La matrice génératrice G est sous forme normale si G est de la forme (Id k P); 0... 0 0 p, p,2... p,n k G = 0 0... 0 p 2, p 2,2... p 2,n k... 0 0 0... p k, p k,2... p k,n k où Id k représente la k k matrice identité. k premiers symboles d un mot de C sont les symboles d information et les n k autres les symboles de redondance. Deux (n, k)-codes C et C sont équivalents si C est obtenu à partir de C en appliquant une permutation donnée des lettres de tous les mots de C. Théorème (mise sous forme normale [2]) Deux k n matrices G et G engendrent des (n, k)-codes linéaires équivalents si on peut obtenir G à partir G par une suite d opérations à choisir parmi : permutation des lignes ; addition de deux lignes remplaçant l une d elles ; permutation des colonnes. Exemple Relation entre poids minimum et distance minimum pour un code linéaire Soit G = 0 00 la matrice génératrice d un code C. C admet comme matrice génératrice sous forme normale G = 0 00 obtenue en échangeant les deux premières colonnes. Théorème La distance minimum d un code linéaire est égale à son poids minimum. En effet, h (x, y) =h (x y, 0) = w(x y). Si x, y C, alors par la linéarité du code, x y C. Relation entre poids minimum et correction Condition pour qu un code linéaire détecte ou corrige e erreurs : C B n détecte jusqu à e erreurs si x C, x = 0 w(x) e + 2 C B n corrige jusqu à e erreurs si x C, x = 0 w(x) 2e +

Erreur ajoutée décodage Classes latérales On appelle classe latérale de C : u + C = {u + x : x C} Supposons que le mot du code x = x x 2...x n est émis au travers d un canal bruité et que le mot reçu est y = y y 2...y n. On définit alors le vecteur d erreur e comme e = y x = y + x = e e 2...e n. Le décodeur doit décider quel mot du code x a été transmis, ou, quel est le vecteur d erreur. Les codes linéaires fournissent une solution au problème du décodage au plus proche voisin i.e. de manière à minimiser le poids de l erreur, au moyen des classes latérales. Lemme Soit u + C une classe latérale de C. Si v u + C, alors v + C = u + C. Comme v u + C on a, pour un certain x C, v = u + x. Soit v + y v + C pour y C. v + y s écrit v + y =(u + x)+y = u +(x + y) u + C v + C u + C Soit u + z u + C pour z C, alors u + z =(v x)+z = v +(z x) v + C u + C v + C Donc, u + C = v + C. Partition par les classes latérales Théorème Soit C un (n, k)-code linéaire sur Z 2, alors tout vecteur de (Z 2 ) n est dans une classe latérale de C ; 2 chaque classe latérale contient exactement 2 k vecteurs ; 3 deux classes latérales sont soit disjointes soit identiques. si a (Z 2 ) n, alors a +0 a + C 2 on considère l application de C a + C définie par x a + x. x C, l application est bijective et a + C = C =2 k 3 supposons que a + C b + C =. Alors, v (Z 2 ) n tq {v} a + C b + C. Pour x, y C, v = a + x = b + y b = a +(x y) a + C et, par le lemme, b + C = a + C. On partitionne (Z 2 ) n =(0+C) (u + C)... (u s + C) avec s =2 n k ; les 0, u,...,u s sont des éléments de poids minimum appelés chefs de classe. Construction du tableau standard Le tableau standard de C a2 n k lignes et 2 k colonnes. Il contient tout (Z 2 ) n. Sa première ligne = mots de C avec le vecteur 0 à gauche ; les autres lignes sont les classes latérales u i + C obtenues par : on choisit un vecteur u de poids minimum qui n apparait pas dans 0 + C et on énumère sur la deuxième ligne u + C ; 2 on choisit un vecteur u 2 de poids minimum qui n apparait pas dans les premières lignes et on énumère sur la troisième ligne les éléments u 2 + C en inscrivant au dessous de 0 le chef de classe u 2 et au dessous de chaque élément x C l élément u 2 + x ; 3 on itère ce procédé jusqu à ce que toutes les classes latérales soient listées et que tout vecteur de (Z 2 ) n n apparaisse qu une seule fois.

Utilisation pour le décodage Quand y est reçu, on cherche sa position dans le tableau standard qui donne directement le mot du code et le vecteur d erreur. Les vecteurs d erreurs qui pourront être corrigés sont les chefs de classe, quelque soit le mot du code transmis. En choisissant des vecteurs d erreur de poids minimum comme chefs de classe, le tableau standard assure un décodage au plus proche voisin. Complexité Si le nombre d éléments de la table est 2 n k.2 k =2 n et comme la recherche d un élément dans une table de dimension N est O(N), la complexité de cet algorithme est en O(2 n ) ; exponentiel en temps et en espace. On veut transmettre des messages binaires α de longueur 2 au moyen du (4, 2)-code linéaire défini par la matrice : G = 0 0 0 G n est pas sous forme standard. On transforme alors G en ajoutant à la ligne la ligne 2 et on obtient la matrice génératrice G d un code équivalent sous forme standard : G = 0 0 0 L ensemble des messages non codés correspond aux différents couples possibles sur {0, } qui sont : A = {(0, 0), (0, ), (, 0), (, )} On énumére les différents mots du code C en effectuant le produit à gauche des éléments α A par la matrice G : mots de A (0, 0) (0, ) (, 0) (, ) 0 0 0 0 0 0 0 0 0 0 0 mots du code Le code C est donc composé des mots : poids C = {0000, 00, 0, 0} le poids minimal des mots de C donne la distance minimale de C qui est 2. Le code C est donc un (4, 2, 2)-code linéaire. 2 3 3 Si on veut transmettre le message (, 0), il suffit d effectuer le produit 0 ( 0). = ( 0 0 0 ) symboles bits de d information redondance Afin de corriger une erreur, le décodeur construit le tableau standard suivant : 0000 00 0 0 mots de C 000 0 00 00 000 000 00 000 0 00 00 chef de classe

obtenu à l aide des classes latérales : 0000 + C = C lui même 000 + C = {000, 0, 00, 00} 000 + C = {000, 000,, 00} 000 + C = {000, 0, 00, 00} Observons que la classe latérale 000 + C est identique à la classe latérale 000 + C puisque 000 000 + C. Si on suppose avoir reçu le message, on vérifie facilement que ce n est pas un mot du code. Pour trouver de quel mot du code il provient, on cherche sa position dans le tableau standard et on lit le mot du code qui est dans la même colonne sur la première ligne. Le vecteur d erreur se lit sur la même ligne dans la première colonne. Ainsi, le message transmis était 0 avec 000 comme vecteur d erreur. Plan du cours 2 3 Définition Matrice génératrice On définit le code dual de C noté C par C = {y (Z 2 ) n : x C, x, y =0} où x, y = n i= x iy i est le produit scalaire de x par y. Le code dual C est un (n, n k)-code linéaire. Si C et C sont équivalents, le code C sera dit autodual. Si G =(Id k P) est une matrice génératrice sous forme normale de C, on en déduit une matrice génératrice H du code dual C par : H =( t P Id n k ) où t P dénote la transposée de la matrice P. Exemple : Soit C le (5,2)-code linéaire défini par la matrice génératrice G = 00 00. La matrice génératrice du code dual est H = 000 00. Le code dual est un (5, 3)-code linéaire. 000

Lien avec les mots du code Syndrome Tout mot de C a un produit scalaire nul avec chaque colonne de H puisque G t H =0: x C x t H =0 Tout mot du code doit satisfaire n k équations linéaires. Si y est un mot du code C, l équation x, y = 0 est vérifiée pour tout mot x C. Elle est appelée équation du test de parité. La matrice H est aussi appelée matrice de contrôle du code C. On vérifie qu un mot reçu y n a pas été altéré au cours de la transmission au moyen de son syndrome S(y) S(y) =y t H En effet, puisque x C x t H = 0, le syndrome de x est nul. Relation entre syndromes et classes latérales Deux vecteurs x et y de (Z 2 ) n sont dans la même classe latérale si et seulement si ils possèdent le même syndrome : x t H = y t H x y C il y a bijection entre les syndromes et les classes latérales. On en déduit un algorithme de décodage. Décodage par le syndrome Exemple de décodage On calcule le syndrome S(e) pour chaque chef de classe e et on construit une table des syndromes en associant à chaque syndrome z le chef de classe dont il est issu f (z). On obtient alors l algorithme de décodage suivant : lorsqu un vecteur y est reçu, on effectue les opérations suivantes : on calcule z = S(y); 2 on décode y comme y f (z) au moyen de la table des syndromes. On obtient alors le mot du code x tel que y = x + f (z). Complexité La complexité du décodage par la table des syndromes est celle du produit matrice vecteur qui est en O(nk) plus la recherche dans une table comportant 2 n k éléments, i.e. en O(2 n k ). Pour la matrice génératrice G = 0 00 du (4,2)-code linéaire on calcule la matrice de contrôle H = 00 0. On calcule ensuite les syndromes S(e) des chefs de classe e par e t H = H t e : S(0000) = 00 S(000) = S(000) = 0 S(000) = 0 On construit la table des syndromes : syndrome z chef de classe f (z) 00 0000 000 0 000 0 000

Exemple de décodage Plan du cours Si on suppose avoir reçu le message y =, on calcule le syndrome 0 0 S(y) =. 0 = 0 On en déduit que le mot du code est y f (0) = 000 = 0 et que le vecteur d erreur était (0 0 0). 2 3 Définition Propriétés Les codes de Hamming se définissent par leur matrice de contrôle. On choisit un entier r et on construit H, une r 2 r matrice ; Ses colonnes sont les vecteurs non nuls de (Z 2 ) r (MSB sur la première ligne). Le code dont H est une matrice de contrôle est appelé code de Hamming que l on note Ham(r). Paramètres : Ham(r) a pour longueur n =2 r et pour dimension k = n r. Il comprend donc r = n k bits de redondance. Puisque les colonnes de H peuvent être échangées, Ham(r) est, pour une redondance r fixée, l ensemble des codes équivalents. Le code Ham(r), pour r 2 est un (2 r, 2 r r )-code linéaire ; 2 a une distance minimum de 3 et corrige donc une seule erreur ; Problème : La difficulté est de trouver la matrice génératrice qui correspond précisément à la matrice de contrôle. Ensuite c est exactement le codage des codes linéaires.

Décodage Application des codes de Hamming Le syndrome du vecteur x dont seule la j-ième composante est non nulle n est autre que la transposée de la j-ème colonne de H. Si les colonnes de la matrice H sont ordonnées dans l ordre croissant des nombres binaires, la j-ème colonne correspond à l écriture binaire de j. Algorithme : pour un message reçu y, on calcule S(y) =y t H ; 2 si S(y) = 0, y correspond au message transmis ; 3 si S(y) = 0 et en supposant qu il n y ait eu qu une seule erreur au cours de la transmission, S(y) donne directement la position de l erreur écrite en binaire sous la forme...b 3 b 2 b b 0. On peut alors corriger y = y...y n. Une généralisation simple des codes de Hamming est utilisée dans le code du minitel. Pour plus de détails et une généralisation aux codes de Hamming sur Z q, on conseille la lecture de [2] ou de [3]. Les autres codes correcteurs d erreurs Il n y a pas que des codes linéaires. On cherche en général à améliorer le rapport k/n i.e. le taux du code. On construit pour cela des codes en utilisant des polynômes, des codes sur un alphabet plus grand que {0, }, sur d autres structures algébriques... Si vous voulez en savoir plus sur la théorie des codes, vous pouvez lire [2] ou [4] ou pour apprendre plus d algèbre []. M. Demazure. Cours d algèbre, primalité, divisibilité, codes. Cassini, 997. R. Hill. A first course in coding theory. Oxford University Press, 986. J.H. van Lint. Introduction to coding theory. Graduate texts in mathematics. Springer Verlag, deuxième edition, 992. J. Wolfmann and O. Papini. Algèbre discrète et codes correcteurs. Number 20 in Mathématiques & Applications. Springer Verlag, 994.

Dies ist ein WWF-Dokument und kann nicht ausgedruckt werden! Das WWF-Format ist ein PDF, das man nicht ausdrucken kann. So einfach können unnötige Ausdrucke von Dokumenten vermieden, die Umwelt entlastet und Bäume gerettet werden. Mit Ihrer Hilfe. Bestimmen Sie selbst, was nicht ausgedruckt werden soll, und speichern Sie es im WWF-Format. saveaswwf.com This is a WWF document and cannot be printed! The WWF format is a PDF that cannot be printed. It s a simple way to avoid unnecessary printing. So here s your chance to save trees and help the environment. Decide for yourself which documents don t need printing and save them as WWF. saveaswwf.com Este documento es un WWF y no se puede imprimir. SAVE AS WWF, SAVE A TREE Un archivo WWF es un PDF que no se puede imprimir. De esta sencilla manera, se evita la impresión innecesaria de documentos, lo que beneficia al medio ambiente. Salvar árboles está en tus manos. Decide por ti mismo qué documentos no precisan ser impresos y guárdalos en formato WWF. saveaswwf.com Ceci est un document WWF qui ne peut pas être imprimé! Le format WWF est un PDF non imprimable. L idée est de prévenir très simplement le gâchis de papier afin de préserver l environnement et de sauver des arbres. Grâce à votre aide. Définissez vous-même ce qui n a pas besoin d être imprimé et sauvegardez ces documents au format WWF. saveaswwf.com WWF International World Wide Fund For Nature, Gland/Switzerland.