COM105 Communications Numériques et Théorie de l Information. Jean-Claude Belfiore, Philippe Ciblat, Michèle Wigger



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

Transmission d informations sur le réseau électrique

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

Théorie et codage de l information

Introduction à l étude des Corps Finis

Systèmes de communications numériques 2

Chapitre 2 : communications numériques.

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

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

Fonctions de plusieurs variables

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Communications numériques

3 Approximation de solutions d équations

Représentation des Nombres

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

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

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

Programmation linéaire

3. Conditionnement P (B)

Chapitre 2 Le problème de l unicité des solutions

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.

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

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

Chapitre I La fonction transmission

Systèmes de communications numériques 2

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

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

Représentation d un entier en base b

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

Cours d Analyse. Fonctions de plusieurs variables

Programmation linéaire et Optimisation. Didier Smets

Le produit semi-direct

TD1 Signaux, énergie et puissance, signaux aléatoires

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

LES CARACTERISTIQUES DES SUPPORTS DE TRANSMISSION

Quantification Scalaire et Prédictive

Texte Agrégation limitée par diffusion interne

Cours de mathématiques

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

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

LA COUCHE PHYSIQUE EST LA COUCHE par laquelle l information est effectivemnt transmise.

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Probabilités sur un univers fini

Expérience 3 Formats de signalisation binaire

BTS Groupement A. Mathématiques Session Spécialités CIRA, IRIS, Systèmes électroniques, TPIL

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

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Université de La Rochelle. Réseaux TD n 6

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Programmes des classes préparatoires aux Grandes Ecoles

Objets Combinatoires élementaires

Transmission des signaux numériques

module Introduction aux réseaux DHCP et codage Polytech / 5

Les indices à surplus constant

Systèmes de transmission

Licence Sciences et Technologies Examen janvier 2010

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Calcul différentiel sur R n Première partie

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

Simulation de variables aléatoires

Probabilités sur un univers fini

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

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Structures algébriques

La couche physique de l ADSL (voie descendante)

TP: Représentation des signaux binaires. 1 Simulation d un message binaire - Codage en ligne

Précision d un résultat et calculs d incertitudes

Université Paris-Dauphine DUMI2E 1ère année, Applications

ISO/CEI NORME INTERNATIONALE

M1107 : Initiation à la mesure du signal. T_MesSig

ADSL. Étude d une LiveBox. 1. Environnement de la LiveBox TMRIM 2 EME TRIMESTRE LP CHATEAU BLANC CHALETTE/LOING NIVEAU :

I. Polynômes de Tchebychev

ÉPREUVE COMMUNE DE TIPE Partie D

Conversion d un entier. Méthode par soustraction

Problèmes de Mathématiques Filtres et ultrafiltres

Exercices - Polynômes : corrigé. Opérations sur les polynômes

PRIME D UNE OPTION D ACHAT OU DE VENTE

Algorithme. Table des matières

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

La fonction exponentielle

La mesure de Lebesgue sur la droite réelle

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

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Interception des signaux issus de communications MIMO

Un K-espace vectoriel est un ensemble non vide E muni : d une loi de composition interne, c est-à-dire d une application de E E dans E : E E E

Développement décimal d un réel

108y= 1 où x et y sont des entiers

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

TD n o 8 - Domain Name System (DNS)

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

Chapitre 7. Statistique des échantillons gaussiens. 7.1 Projection de vecteurs gaussiens

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

Intérêt du découpage en sous-bandes pour l analyse spectrale

F411 - Courbes Paramétrées, Polaires

Une introduction aux codes correcteurs quantiques

Chapitre 13 Numérisation de l information

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Projet de Traitement du Signal Segmentation d images SAR

Transcription:

COM105 Communications Numériques et Théorie de l Information Jean-Claude Belfiore, Philippe Ciblat, Michèle Wigger 15 mai 24

Table des matières Introduction générale 1 1 Codage correcteur d erreur 3 11 Introduction 3 12 Modèle de canaux 4 121 Le canal binaire symétrique 4 122 Le canal binaire à effacement 5 123 Le canal gaussien à entrées binaires 5 13 Généralités sur les codes en bloc 5 14 Généralités sur les décodeurs 6 141 Le maximum de vraisemblance 6 142 Correction d erreur 7 143 Détection d erreur 8 15 Codes linéaires en bloc 8 151 Rappel sur les corps finis 9 152 Structure algébrique des codes linéaires 9 153 Paramètres des codes linéaires 10 154 Description du codeur : notion de matrices génératrices 11 16 Décodeur des codes linéaires 13 161 Notion d orthogonalité et de code dual 14 162 Matrice de contrôle de parité 14 163 Notion de syndrome 15 164 Borne de Singleton 15 165 Décodage par syndrome : exemple avec le code de Hamming (7, 4, 3) 16 17 Performances 17 18 Bilan 18 2 Théorie de l information 19 21 Introduction 19 22 Entropie et Information mutuelle 20 221 Entropie 20 222 Entropie conjointe 22 223 Entropie conditionnelle 24 224 Information mutuelle 25 23 Modèle des canaux discrets sans mémoire (DMC) 26 24 Définition et théorème de la capacité pour le DMC 27 25 Expressions analytiques de la capacité de quelques canaux 29 251 Cas du canal binaire symétrique 29 252 Cas du canal binaire à effacement 30 253 Cas du canal gaussien 31 26 Bilan 33 i

3 Modulations numériques 35 31 Introduction 35 32 Canal de propagation 36 33 Description de l émetteur 39 331 Un exemple-jouet (mais réel!) 39 332 Des bits aux symboles d information 40 333 Du signal à temps discret au signal à temps continu 42 34 Description de récepteur 45 341 Du signal à temps continu au signal à temps discret : le filtre adapté 45 342 De l interférence entre symboles : le filtre de Nyquist 48 343 Détecteur optimal 51 35 Performances 55 351 Probabilité d erreur bit pour la M-PAM 55 352 Lien avec le codage correcteur d erreur du chapitre 1 58 353 Lien avec la théorie de l information du chapitre 2 60 354 Lien entre les paramètres de dimensionnement d un système 62 36 Bilan 64 A Quelques preuves relatives au chapitre 3 65 A1 Preuve du résultat 32 65 A2 Preuve du résultat 33 65 A3 Preuve du résultat 312 66

Notations Outils mathématiques : Nombre imaginaire pur : i = 1 Transformée de Fourier : X(f) = FT(x(t)) = t= x(t)e 2πift d t Transformée de Fourier Inverse : x(t) = IFT(X(f)) = f= X(f)e2πift d f Alphabet d une variable aléatoire X : X Loi de probabilité d une variable aléatoire discrète X (prob mass func -pmf-) : x P X (x) Loi de probabilité conjointe d une paire de variables aléatoires discrètes (X, Y ) : (x, y) P XY (x, y) Loi de probabilité conditionnelle d une variable aléatoire discrète X par rapport Ãă une deuxième variable Y = y : x P X Y (x y) Densité de probabilité d une variable aléatoire continue X (prob density func -pdf-) : x p X (x) Densité de probabilité conditionelle d une variable aléatoire continue X par rapport Ãă une deuxième variable Y : x p X Y (x y) Probabilité de l événement ω : Pr(ω) Signaux et suites : Autocorrélation d un signal aléatoire x(t) : r xx (t, τ) = E[x(t + τ)x(t)] Densité spectrale de puissance d un signal aléatoire x(t) : f S xx (f) Variance d une suite aléatoire {s k } k : σ 2 s = E[(s k m s ) 2 ] avec m s = E [ s k ] Puissance moyenne du signal x(t) : P x Codage et modulation : Bits de la source ou Données : {d m } m (typiquement iid Bernouilli de probabilité 1/2) Bits codés : {c m } m Longueur d un mot de code : n (attention, n sera parfois une variable muette de sommation mais cela ne devrait créer aucune ambiguïté) Nombre de bits d information dans un mot de code : k (idem, k sera parfois une variable muette de sommation mais cela ne devrait créer aucune ambiguïté) Rendement d un code correcteur d erreur : R = k/n Symboles émis : {s k } k Signal émis : x(t) = k s kg(t kt s ) Filtre de mise en forme : g(t) Durée d un symbole : T s Temps-bit : T b Débit (bit utile) : D b = R/T b Signal reçu : y(t) = x(t) + b(t) Bruit blanc gaussien de moyenne nulle et de niveau spectral N 0 /2 : b(t) Filtre de réception : g r (t) Signal après filtrage de réception : z(t) = (y g r )(t) Signal après échantillonnage : z k = (y g r )(kt s ) (quand g g r satisfait le critère de Nyquist, z k = s k +w k avec w k une gaussienne iid de moyenne nulle et de variance N 0 /2) Théorie de l information Entropie d une variable aléatoire X : H(X) Entropie conditionelle d une variable aléatoire X sachant Y : H(X Y ) Entropie jointe d une paire de variable aléatoires (X, Y ) : H(X, Y ) Fonction d entropie binaire : H b ( ) Information mutuelle de X et Y : I(X; Y )

Capacité de canal : C Paramètres du système : Largeur de bande : B Facteur d excès de bande : ρ Energie par symbole : E s Energie par bit utile : E b Probabilité d erreur symbole : P e Probabilité d erreur bit : P b Rapport Signal-à-Bruit (RSB) : RSB = 2E s /N 0

Abréviations BEC : Binary Erasure Channel Canal Binaire à Effacement BER : Bit Error Rate Taux d Erreur Bit BSC : Binary Symmetric Channel Canal Binaire Symétrique DMC : Discrete Memoryless Channel Canal Discret sans Mémoire FEC : Forward Error Correction Code Correcteur d Erreur FT : Fourier Transform Transformée de Fourier IFT : Inverse Fourier Transform Transformée de Fourier Inverse iid : Independent and identically distributed indépendant et identiquement distribué ISI : Intersymbol Interference Interférence Entre Symboles MIMO : Multi-Input Multi-Output Antenna Multi entrées- Multi sorties OOK : On-Off Keying Marche-Arrêt PAM : Pulse Amplitude Modulation Modulation d Amplitude QoS : Quality of Service Qualité de Service SIMO : Single-Input Multi-Output Antenna Une entrée - Plusieurs sorties SNR : Signal-to-Noise Ratio Rapport Signal-à-Bruit

Introduction générale Sur la figure 1, nous avons représenté sur un même schéma un ensemble de réseaux de communication ayant des supports très différents (DVD, câble de cuivre, fibre optique, sans fil) et offrant des fonctionnalités très différentes : téléphone, transfert de données, flux vidéo (video streaming, en anglais), télévision, stockage dans des centres de données (data centers, en anglais) D autres supports de communication, non dessinés sur la figure 1, existent tels que la clef USB, les molécules (via les communications moléculaires), le système cérébral (que certains chercheurs tentent d expliquer via les principes et outils de communications numériques), etc Satellite Wifi DVD Téléphone 2G/3G/4G Fibre optique Paire de cuivre/câble Figure 1 Un ensemble de réseaux de communication Néanmoins tous ces éléments ont un point commun : les données sont numérisées et doivent être transmises à travers un canal de propagation Le domaine des communications numériques regroupe de ce fait les problématiques suivantes comprimer transmettre sauvegarder l information de manière fiable avec un coût faible (par coût, on peut entendre, consommation énergétique, occupation spectrale, complexité raisonnable, etc) Dans ce polycopié, afin de simplifier, nous allons nous intéresser uniquement à des communications dites point-à-point, c est-à-dire, entre un seul émetteur et un seul récepteur Nous passerons donc sous silence la dimension multipoints-à-multipoints de tout réseau de communication, c est-à-dire, quand plusieurs utilisateurs sont présents dans le système ou bien que le réseau a plusieurs flux de données à gérer de manière simultanée Cette dimension «réseau» des communications numériques est évidemment abordée dans les cours du cycle Master (COM223, COM224, COMMDI225, COM344 et COM345) et la recherche académique ainsi qu industrielle est actuellement très active sur cette dimension En effet, les outils et techniques développés en communications numériques point-à-point offrent des perspectives très prometteuses pour optimiser les réseaux dans leur entier Historiquement, la stratification OSI a découplée les deux domaines : la science des communications numériques développe les technologies pour bien transmettre UN paquet ; la science des

2 Introduction générale réseaux apprend à manipuler efficacement LES paquets Ce découplage est en fait clairement sous-optimal et tend à s estomper dans les systèmes en voie de standardisation La conséquence en est l insertion de plus en plus forte des techniques de communications numériques dans le cœur des réseaux Comme déjà dit, ce polycopié offre seulement quelques prolégomènes à l étude des communications numériques Classiquement, les communications sont subdivisées en trois sous-domaines que nous retrouvons dans notre découpage en trois chapitres : Dans le chapitre 1, vous apprendrez comment protéger les données contre des erreurs éventuelles via l outil du codage correcteur d erreur Dans le chapitre 2, vous apprendrez que les communications numériques ont des performanceslimites (par exemple, en terme de débit) via l outil de la théorie de l information Vous définirez en autre la notion (de quantité) d information Dans le chapitre 3, vous apprendrez à envoyer et recevoir les données protégées sur les supports de communication (qui peuvent être de tout type : fibre, câble, atmosphère, etc) via l outil des modulations numériques Tout chapitre se termine par une section, dite «Bilan», dans laquelle nous synthétisons dans deux boîtes les concepts de base à retenir et les savoir-faire à acquérir (qui sont en lien avec les TDs) De plus quelques perspectives seront données afin de vous donner quelques idées sur les cours associés du cycle Master et les thématiques de recherche actives sur le sujet

Chapitre 1 Codage correcteur d erreur 11 Introduction Qu est-ce-que le codage dit correcteur d erreur? A quoi cela sert-il? Avant de commencer à détailler les principes du codage correcteur d erreur, il faut fixer la terminologie Pour cela, examinons d un peu plus près le contexte d utilisation du codage correcteur d erreur En fait, ce qualificatif «correcteur d erreur» renvoie uniquement au cas où on l associe à une application générant des erreurs qu il faut réduire ou même éliminer Mais corriger des erreurs représente un scénario qui est devenu, avec le temps, bien minoritaire par rapport à tout ce qu un code correcteur d erreur peut faire Car il peut aussi remplir des effacements (décider si un bit effacé est égal à 0 ou à 1) Il peut aussi éventuellement réduire les effets du bruit et tant d autres choses C est pour cela qu il vaut mieux l appeler «codage de canal» en lieu et place de «codage correcteur d erreur» car il est fondamentalement utile et même nécessaire pour limiter les effets néfastes du canal de transmission Il est temps maintenant de donner une terminologie détaillée liée au codage Pour cela, on se sert de la figure 11 qui donne une idée simple de l architecture d un système de communication lorsqu on s intéresse de plus près au codage Source Codeur Canal Décodeur Destinataire Figure 11 Schéma général d un système de communication codé 1 Un code est l ensemble des mots qui sont susceptibles d être émis et donc de passer à travers le canal 2 Un codeur est une bijection entre un ensemble de bits qui représente les données que l on veut transmettre et les mots de code effectivement transmis 3 Un décodeur retrouve, à partir de la sortie du canal, les données transmises avec une grande probabilité Exemple 11 Considérons un code à répétition C = {(000), (111)} Il contient deux mots de code La table 11 donne la correspondance entre les données que l on veut transmettre et les mots de code qui seront effectivement transmis à travers le canal Le code ne comportant que deux mots, il suffit de log 2 (2) = 1 bit d information pour les étiqueter Données Mot de code 0 000 1 111 Table 11 Codeur du code à répétition de longueur 3 Ce chapitre sera organisé de la manière suivante : en section 12, nous introduisons quelques modélisations de canaux, c est-à-dire, des distorsions qui peuvent intervenir sur les données transmises Ces modèles ont une justification pratique qui sera donnée dans le chapitre 3

4 Codage correcteur d erreur en section 13, nous introduisons la notion de code correcteur d erreur avec notamment la notion essentielle de distance minimale (de Hamming) en section 14, nous présentons de manière très générale quelques résultats fort utiles de la théorie de la détection et les appliquons à la problématique de décodage de codes correcteur d erreur en section 15, nous nous intéressons aux codes en bloc linéaires qui sont une classe très répandue de codes car offrant des facilités de manipulations tant pratique que théorique en section 16, nous présentons une technique de décodage de codes en bloc linéaires qui s appelle l algorithme du syndrome en section 17, nous analysons théoriquement les performances des codes Les résultats obtenus dans cette sectino prendront tout leur sens avec leurs applications à des systèmes pratiques données à la sous-section 352 du chapitre 3 En section 18, nous faisons un bilan de ce chapitre en rappellant les éléments essentiels à retenir et les outils à maîtriser 12 Modèle de canaux Il existe plusieurs modèles de canaux Chaque modèle correspond à une vision simplifiée de systèmes de communication pratiques Nous présentons ici trois de ces modèles de canaux parmi les plus emblématiques Chacun de ces modèles représente une version simplifiée de ce qui est rencontré en pratique La variable aléatoire (notée X) que l on trouve à l entrée du canal représente seulement un bit transmis 121 Le canal binaire symétrique Ce canal introduit des erreurs sur les bits transmis La probabilité qu il y ait une erreur est une constante notée p et ne dépend ni du bit émis ni du passé Sur la figure 12 on peut voir un schéma d un tel canal que 1 p 0 0 p p 1 1 p 1 Figure 12 Canal binaire symétrique l on note aussi BSC (acronyme venant de l anglais Binary Symmetric Channel ) La variable d entrée X est une variable aléatoire binaire, de même que la variable aléatoire de sortie Les paramètres qui étiquettent les transitions du canal sont appelés «probabilités de transition» Elles correspondent respectivement aux définitions suivantes : Pr {Y = 0 X = 0} = Pr {Y = 1 X = 1} = 1 p Pr {Y = 0 X = 1} = Pr {Y = 1 X = 0} = p où on remarque que les probabilités d erreur ne dépendent pas des symboles transmis Notez qu on peut toujours supposer que p 1/2 Si ce n est pas le cas, il suffit de changer, à la sortie du canal, tous les 0 en 1 et les 1 en 0

Généralités sur les codes en bloc 5 122 Le canal binaire à effacement Ce canal n introduit aucune erreur Par contre, il efface certains bits avec une certaine probabilité La figure 13 donne un schéma de ce canal 0 1 ǫ 0 ǫ ǫ 1 1 1 ǫ Figure 13 Canal binaire à effacement On remarquera que la variable aléatoire de sortie du canal Y prend ses valeurs dans un alphabet ternaire {0, 1, } où représente l effacement Ce canal est souvent utilisé comme modèle pour pour les réseaux L effacement modélise alors les pertes de paquets 123 Le canal gaussien à entrées binaires Ce canal enfin modélise la couche physique lorsqu une modulation binaire est utilisée De plus amples justifications ne pourront en fait être données qu au chapitre 3 La variable d entrée X est supposée binaire à valeurs dans {0, 1} Quant à la variable de sortie Y, elle est à valeurs continues dans R Elle est reliée à X par l équation suivante : Y = ( 1) X A + W où A est l amplitude utilisée pour transmettre le bit et W est une variable aléatoire gaussienne centrée Ce canal modélise la couche physique d un système de communication utilisant la modulation 2-PAM (Pulse Amplitude Modulation) décrite dans le chapitre 3 13 Généralités sur les codes en bloc Dans ce polycopié, nous allons nous intéresser uniquement aux codes en bloc Ces codes sont utilisés (parfois couplés avec d autres types de codes) dans tous les systèmes actuels (2G, 3G, 4G, ADSL, TNT, etc) Pour définir un tel code, il faut d abord se donner un alphabet Dans les cas pratiques, cet alphabet sera principalement (mais pas toujours) l alphabet binaire X = {0, 1} En effet, ayant adopté depuis longtemps la logique binaire, il nous faut transmettre en binaire Définition 11 (Rendement) Le rendement (binaire) d un code en bloc de longueur n, aussi appelé taux de codage, est R = log 2( C ) (11) n où C désigne le nombre de mots du code C Nous remarquons que log 2 ( C ) est le nombre de bits à utiliser pour étiqueter tous les mots de C La distance minimale d un code en bloc est un paramètre très important qui mesure, entre autres, si un code est «bon» ou pas Avant de donner la définition de la distance minimale, nous introduisons la distance de Hamming Elle mesure le nombre de symboles par lesquels deux mots diffèrent On définit tout d abord la distance de Hamming entre deux symboles comme étant égale à 0 si les deux symboles sont identiques et égale à 1 sinon Soient alors les mots x = (x 1, x 2,, x n ) et y = (y 1, y 2,, y n ) La distance de Hamming entre ces deux mots est d H (x, y) = n d H (x i, y i ) i=1

6 Codage correcteur d erreur avec d H (x i, y i ) la distance de Hamming entre les symboles x i et y i La distance minimale d un code en bloc C est la plus petite distance de Hamming entre deux mots distincts de C Définition 12 (Distance minimale) La distance minimale d min du code en bloc C est d min (C) = 14 Généralités sur les décodeurs min d H (x, y) (12) x,y C,x y Le rôle de n importe quel décodeur est de retrouver, à partir de la sortie du canal, les bits qui ont été transmis Le décodage se fait en deux étapes : 1 A partir du mot reçu (qui correspond à celui à la sortie du canal), trouver un mot de code qui paraît être le plus probable (nous verrons que cela a un sens très précis) 2 A partir du mot de code trouvé à l étape 1, en déduire les bits d information qui ont été transmis Commençons par un exemple, celui du code à répétition de longueur 3 sur le canal binaire symétrique Nous supposons que le codeur utilisé est celui du tableau 11 Le canal introduit des erreurs aléatoires indépendantes avec une probabilité p 1/2 Donc la probabilité qu il y ait deux erreurs est p 2, etc Supposons que le décodeur décide en faveur du mot de code le plus proche (au sens de la distance de Hamming) du mot reçu Ce critère est en fait celui qui minimise la probabilité d erreur par mot après décodage comme nous le verrons en sous-section 141 car il favorise le scénario correspondant au moins d erreurs possible Si le mot de code émis est (0 0 0) et que le canal introduit une erreur en position 2, alors le décodeur recevra le mot (0 1 0) Les deux seuls mots de code étant (0 0 0) et (1 1 1), le mot de code choisi par le décodeur sera (0 0 0) car la distance entre ce mot et le mot reçu est égale à 1 alors qu elle est égale à 2 pour le second mot de code Donc, l erreur est décodée Par contre, on peut vérifier que si le nombre d erreurs était égal à 2, alors le décodeur choisirait l autre mot de code et ne parviendrait pas à corriger ces deux erreurs 141 Le maximum de vraisemblance Le critère de décodage le plus utilisé est le critère du maximum de vraisemblance, qui peut être évalué sur tous les modèles de canaux donnés ci-dessus C est un critère très important qui peut être utilisé dans d autres applications que le codage, en fait, dans tout problème de détection (détection d un visage dans une image, détection de symboles au chapitre 3, reconnaissance du locuteur, détection d anomalie, détection de présence, etc) On suppose, dans la suite, que le mot de longueur n émis est le mot x Le mot reçu, après passage dans le canal, est le mot y Xn Canal Y n Décodeur ˆXn Figure 14 Décodage La variable aléatoire qui désigne l entrée du canal est la variable X Le vecteur aléatoire composé de n copies de la variable X sera noté X n De même, la variable aléatoire qui désigne l entrée du canal est la variable Y et le vecteur aléatoire composé de n copies de la variable Y sera noté Y n La figure 14 représente de façon schématique le décodeur avec toutes les variables aléatoires On suppose que la règle de décodage vérifie les propriétés suivantes : L ensemble de tous les vecteurs y pour lesquels le décodeur choisit le mot de code x sera noté Ω x La règle de décodage est une règle déterministe La règle de décodage est celle qui minimise la probabilité d erreur par mot après décodage (ce qui semble raisonnable)

Généralités sur les décodeurs 7 La probabilité d erreur s écrit P e = 1 P c où P c désigne la probabilité de décision correcte par mot après décodage Soit ˆx le mot choisi par le décodeur Il y a décision correcte lorsque ˆx = c où c est le mot de code transmis Nous pouvons à présent calculer P c, P c = Pr {ˆx = c} = x C Pr {ˆx = x c = x} Pr {c = x} Or, le décodeur choisit c si et seulement si y Ω c Nous en déduisons P c = x C Pr {y Ω c c = x} Pr {c = x} = x C p Y n Xn (y, x) Pr {c = x} dy (13) Ω c On voit donc, d après l équation (13), que pour maximiser la probabilité de décision correcte P c, il faut maximiser P Y n Xn (y, x) Pr {c = x} (14) ce qui est, en général, une opération complexe lorsque le nombre de mots de code est élevé La complexité de cette opération est principalement due à la probabilité a priori Pr {c = x} Pour contourner ce problème, on suppose que les mots de code sont tous émis avec la même probabilité Donc, la maximisation de l expression (14) revient à la maximisation de P Y n Xn (y, x) que l on nomme vraisemblance Pour résumer, si les mots de code sont tous émis avec la même probabilité, minimiser la probabilité d erreur par mot après décodage, revient à maximiser la vraisemblance Donc, le décodeur va choisir le mot de code ˆx = arg max P Y x C n Xn (y, x) (15) où arg signifie que le mot décodé est égal au mot de code qui maximise la vraisemblance Cette règle est nommée règle du maximum de vraisemblance Nous développons cette règle ci-dessous dans le cas du canal binaire symétrique illustré dans la figure 12 Dans ce cas, puisque le canal est sans mémoire, la vraisemblance s écrit n P Y n X n (y, x) = P Y X (y i, x i ) Or, P Y X (y i, x i ) = p si y i x i et P Y X (y i, x i ) = 1 p dans le cas contraire Donc on peut écrire, i=1 n P Y n X n (y, x) = P Y X (y i, x i ) i=1 = p dh(y,x) (1 p) n d H(y,x) ( ) dh (y,x) p = (1 p) n 1 p Si p < 1/2, alors on a p/(1 p) < 1 ce qui nous permet de déduire le résultat suivant Résultat 11 Si p < 1/2, le décodeur minimisant la probabilité d erreur par mot pour un canal binaire symétrique revient, en maximisant la vraisemblance, à trouver le mot de code x qui minimise d H (y, x), la distance de Hamming entre le mot reçu et x 142 Correction d erreur Nous nous intéressons ici au nombre d erreur qu un code peut corriger Tout d abord, nous donnons une définition de la capacité de correction d erreur d un code

8 Codage correcteur d erreur Définition 13 On dit qu un code en bloc C corrige t erreurs s il peut corriger toutes les configurations d erreurs dont le nombre est inférieur ou égal à t Supposons maintenant que le canal introduit t erreurs Ceci signifie que, si x est le mot émis et y le mot reçu, alors d H (y, x) = t Que signifie «le décodeur corrige»? Cela veut dire que le mot décodé sera le mot émis x Donc, pour pouvoir décoder x, il faut qu il n y ait aucun mot x dans le code tel que d H (y, x ) t Supposons qu un tel mot x existe La distance de Hamming entre x et x peut être bornée en utilisant l inégalité triangulaire, d H (x, x ) d H (y, x) + d H (y, x ) 2t (16) Supposons maintenant que d min (C) 2t + 1 Alors, la condition (16) ne peut plus être vérifiée, donc un tel x n existe pas, ce qui fait que les t erreurs seront toujours corrigées Nous en arrivons au résultat suivant, Résultat 12 (Capacité de correction d un code) Un code de distance minimale d min peut corriger t erreurs (au sens de la définition 13) si t vérifie où u est la partie entière de u dmin 1 t = 2 Ainsi, pour corriger une erreur simple, il faut une distance minimale au moins égale à 3 Pour 2 erreurs, il faut une distance au moins égale à 5, etc 143 Détection d erreur Les codes correcteurs d erreur sont aussi souvent utilisés pour détecter des erreurs (on les retrouve alors dans plusieurs couches OSI, de la couche MAC à la couche TCP) Lorsqu ils sont utilisés en détection d erreur, le décodage se limite alors à répondre à une seule question : le mot reçu est-il un mot de code? Définition 14 On dit qu un code en bloc détecte t erreurs si et seulement si il peut détecter toutes les configurations d erreurs dont le nombre est inférieur ou égal à t On en arrive rapidement au résultat suivant, Résultat 13 (Capacité de détection d un code) Un code en bloc de distance minimale d min est capable de détecter t erreurs si t vérifie t = d min 1 En effet, le décodeur détecte qu il y a une ou plusieurs erreurs si le mot reçu n appartient pas au code Or, le codeur transmet un mot de code Il y a non détection des erreurs lorsque le mot reçu est un autre mot de code Un autre mot de code étant à une distance de Hamming au moins égale à d min du mot émis, pour pouvoir toujours détecter les erreurs, il suffit que leur nombre reste strictement inférieur à d min 15 Codes linéaires en bloc Les codes linéaires en bloc sont des codes en bloc particuliers Pour les construire, nous avons besoin de plusieurs ingrédients : L alphabet des symboles doit être un corps fini que nous noterons F q La lettre F vient de l anglais field qui désigne la structure algébrique de «corps» q est la taille de l alphabet Un code linéaire en bloc est un espace vectoriel sur F q

Codes linéaires en bloc 9 151 Rappel sur les corps finis Un corps fini est un alphabet fini X muni d une addition et d une multiplication L élément neutre de l addition sera noté 0 et l élément neutre de la multiplication sera noté 1 (X, +) est un groupe fini commutatif et (X \ {0}, ) est un groupe fini qui est d emblée commutatif car tout corps fini est commutatif De plus, la multiplication est distributive pour l addition Le cardinal d un corps fini q est toujours une puissance d un nombre premier, q = p r Si r = 1, alors l addition et la multiplication du corps F p sont définies de la même façon que sur Z/pZ, c est-à-dire, l addition et la multiplication modulo p Les cas où r 1 ne seront pas traités ici 1 Dans toute la suite, nous ne considérerons que le cas binaire F 2, c est-à-dire, le cas où l addition et la multiplication sont celles des entiers modulo 2 Ceci donne lieu aux tables de vérité 12 + 0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 Table 12 Addition et multiplication sur F 2 152 Structure algébrique des codes linéaires Dans un code, certes il y a des symboles, mais les véritables éléments d un code en bloc de longueur n sont ses mots Un mot est un vecteur à n composantes sur son alphabet des symboles Dans le cas binaire, et en utilisant F 2 comme l alphabet des symboles, l ensemble des mots binaires de longueur n, noté F n 2 est un espace vectoriel de dimension n tout comme R n est un espace vectoriel de dimension n sur le corps des nombres réels R L addition de deux vecteurs s effectue bien sûr composante par composante Exemple 12 Supposons n = 2 Tout couple binaire peut s écrire comme combinaison linéaire d une base à 2 vecteurs de F 2 2 telle que B = {(1 1), (1 0)} par exemple Ainsi, on obtient (0 0) = 0 (1 1) + 0 (1 0) (1 0) = 0 (1 1) + 1 (1 0) (0 1) = 1 (1 1) + 1 (1 0) (1 1) = 1 (1 1) + 0 (1 0) Maintenant qu est-ce-qu un code linéaire en bloc? Nous savons qu un code en bloc sur un alphabet X est un sous-ensemble de X n, l ensemble des n-uplets dont les symboles sont dans X Un code en bloc linéaire sur F 2 est un code en bloc avec davantage de structure Définition 15 Un code en bloc linéaire binaire de longueur n est un sous-espace vectoriel de F n 2 Comment peut-on vérifier qu un code en bloc est linéaire? Tout d abord, le mot (0 0 0) doit être un mot de code Puis il suffit de vérifier que la somme binaire de deux mots de code est bien un mot de code Examinons de plus près deux exemples Exemple 13 Soit C = {(0 0 0), (1 1 1)} On reconnaît évidemment le code à répétition de longueur 3 Il est facile de vérifier que ce code est linéaire et qu une base de ce code est B = {(1 1 1)} Un autre exemple de code de longueur 3, Exemple 14 Soit C = {(0 0 0), (1 1 0), (1 0 1), (0 1 1)} Il s agit d un code de longueur 3 qui est aussi linéaire On reconnaît un code de parité Une base de ce code est B = {(1 1 0), (0 1 1)} puisque le seul mot de code non nul qui n est pas dans la base B s écrit (1 0 1) = 1 (1 1 0) + 1 (0 1 1) 1 Les codes de Reed-Solomon sont des codes très utilisés dans de nombreux systèmes Ils sont construits, dans la plupart des cas, sur le corps F 256

10 Codage correcteur d erreur 153 Paramètres des codes linéaires Dans le cadre des codes en bloc linéaires, nous allons préciser les paramètres déjà définis précédemment sur les exemples et définir également un nouveau paramètre qu est la dimension du code Définition 16 (Dimension d un code) La dimension d un code en bloc linéaire k est sa dimension en tant que sous-espace vectoriel de F n 2 Nous pouvons maintenant exprimer le rendement d un code en bloc linéaire en fonction de k et n à partir de la définition 11 En tant que sous-espace vectoriel de F n 2, tout mot de code est combinaison linéaire des vecteurs d une base de ce code C étant de dimension k, une base contient k vecteurs e 1,, e k Tout mot de code c s écrit k c = d i e i i=1 avec d i F 2 Il y a donc 2 k mots de code dans un code linéaire en bloc de dimension k En revenant à la définition du rendement donnée dans l équation (11), nous obtenons finalement que R = log 2( C ) n = k n (17) La linéarité du code C nous permet d exprimer la distance minimale du code de façon plus simple Nous revenons tout d abord à sa définition que nous pouvons trouver dans l équation (12) Définissons maintenant le poids de Hamming, Définition 17 (Poids de Hamming) Le poids de Hamming d un mot x est où le mot 0 est le vecteur dont toutes les composantes sont nulles w H (x) = d H (x, 0) (18) Si nous combinons la définition de la distance minimale avec la définition du poids de Hamming, nous obtenons d min (C) = min x,y C,x y d H (x, y) = min x,y C,x y w H (x + y) Or, le code étant linéaire, x + y est aussi un mot de code Nous obtenons finalement, d min (C) = min x C,x 0 w H (x) Ainsi, la recherche de la distance minimale d un code quelconque, en utilisant la méthode exhaustive, demanderait le calcul de C ( C 1) distances de Hamming alors qu elle ne demande plus que le calcul de ( C 1) distances de Hamming dans le cas d un code linéaire Nous verrons par la suite qu il existe une méthode de calcul de la distance minimale d un code linéaire encore moins complexe Analysons les exemples de la sous-section précédente à l aune de ces nouvelles définitions et propriétés Dans l exemple 13, il est facile de voir que d min = 3 puisqu il y a un seul mot de code non nul et il est de poids de Hamming égal à 3 Dans l exemple 14 on peut voir que d min = 2 puisque tous les mots de code non nuls sont de poids de Hamming égal à 2 Dans la suite, un code linéaire C de longueur n, de dimension k et de distance minimale d min sera noté (n, k, d min )

Codes linéaires en bloc 11 Bits d information Codeur Mots du code C Figure 15 Schéma d un codeur 154 Description du codeur : notion de matrices génératrices Jusqu à présent, nous avons essentiellement discuté des codes Un code en bloc binaire de longueur n est un sous-ensemble de F n 2 et si ce code est linéaire, il est aussi un sous-espace vectoriel de F n 2 Il nous reste maintenant à savoir comment associer à une séquence de bits d information (à transmettre) un mot du code C = (n, k, d min ) Ceci est le rôle dévolu au codeur tel décrit dans la figure 15 Le codeur que l on se propose d étudier ici est un codeur linéaire, c est-à-dire, que la somme binaire de deux séquences d information va correspondre à la somme binaire de deux mots de code Pour ce faire, nous choisissons une base du code B = (e 1, e 2,, e k ) Evidemment, il y a plusieurs choix possibles de base pour un code linéaire et tout élément e i de B est aussi un mot de code Nous savons que tout mot c de C peut s écrire c = k d i e i, d i F 2 i=1 L écriture de tout mot de code comme combinaison linéaire des vecteurs de B représente en elle-même un codeur linéaire Ainsi, à chaque base B de C correspond un codeur linéaire La figure 16 représente un schéma d un tel codeur d 1, d 2,, d k B k i=1 d ie i Figure 16 Codeur linéaire Afin de faciliter l écriture d un codeur et, éventuellement, de choisir un codeur particulier bien adapté à l application visée, il est intéressant d écrire le codeur sous forme matricielle Pour ce faire, nous changeons de notation La nouvelle notation, introduite ci-dessous, restera valable jusqu à la fin de ce chapitre Tous les vecteurs vont être représentés par des matrices ligne (il s agit de la convention habituellement utilisée en codage) Nous introduisons ici quelques notations utiles par la suite : 1 Un mot d information D est une matrice ligne à k colonnes D = (d 1 d k ) 2 Un mot de code C est une matrice ligne à n colonnes C = (c 1 c n ) 3 Une matrice génératrice G est une matrice à k lignes et n colonnes Définition 18 (Matrice génératrice) Soit B = (e 1, e 2,, e k ) une base du code C On appelle matrice génératrice du code C toute matrice G à k lignes et n colonnes qui s écrit sous la forme, G = Tout mot de code C peut s écrire alors (nous rappelons, en indice, les dimensions de chaque matrice pour montrer leur cohérence) C 1 n = D 1 k G k n où D est le mot d information qui, après passage dans le codeur, donnera le mot de code C Evidemment, G est une matrice de rang k puisque la base B engendre le code C, sous-espace vectoriel de dimension k e 1 e 2 e k

12 Codage correcteur d erreur Exemple 15 Reprenons l exemple 14 du code de parité de longueur 3 Une base B de ce code peut être B = {(1 1 0), (0 1 1)} Donc la matrice génératrice correspondante est [ ] 1 1 0 G = 0 1 1 Pour un code linéaire donné, C, et parmi toutes les matrices génératrices possibles, il en est une qui est très fréquemment (presque toujours) utilisée Il s agit de la matrice génératrice systématique Pour bien comprendre ce qu elle est, il nous faut, tout d abord, introduire la notion de codes équivalents Soient C 1 et C 2 deux codes de même longueur n On dit que C 1 est équivalent à C 2 si et seulement si il existe une permutation des composantes σ telle que, à tout mot x du code C 1 correspond un mot y du code C 2 vérifiant, (y 1, y 2,, y n ) = ( x σ(1), x σ(2),, x σ(n) ) Evidemment, C 1 et C 2 ont la même dimension, la même distance minimale,, et seront en fait considérés comme deux codes identiques Soit maintenant G une matrice génératrice du code C Donc G correspond à une certaine base B Une autre matrice génératrice G, du même code, correspond à une autre base B du même sous-espace vectoriel Les lignes de la matrice génératrice sont les vecteurs de la base choisie Puisque tout changement de base se fait en remplaçant les vecteurs de la base par des combinaisons linéaires de ces mêmes vecteurs, le changement de matrice génératrice se fait en remplaçant les lignes par des combinaisons linéaires de ces mêmes lignes De plus, on s autorise à changer de code si le nouveau code est équivalent au premier Or, passer d un code à un code équivalent à celui-ci revient à trouver une permutation des composantes des mots de code En terme de matrice génératrice, ceci est équivalent à permuter les colonnes de G Pour résumer, deux opérations sont permises sur la matrice génératrice G pour trouver une autre matrice génératrice : Combinaisons linéaires de lignes Permutations de colonnes Or, il existe un algorithme (le pivot de Gauss) qui s autorise ces manipulations sur une matrice quelconque et dont la sortie est la forme réduite de la matrice sous forme échelonnée Si le rang de la matrice initiale est k (ce qui est notre cas, puisque G engendre un sous-espace de dimension k), alors la matrice échelonnée obtenue en sortie de l algorithme sera la suivante [ Ik P k (n k) ] où I k est la matrice identité de rang k et P est une matrice dépendant du code considéré Cette forme échelon est la matrice génératrice systématique du code C (en fait il s agit bien souvent d un code équivalent à C) Définition 19 (Matrice génératrice systématique) Soit C un code linéaire de longueur n et de dimension k On appelle matrice génératrice systématique du code C toute matrice obtenue à la sortie du pivot de Gauss appliqué à une matrice génératrice G quelconque du code C La matrice génératrice systématique est sous la forme G s = [ I k P k (n k) ] où P dépend du code C Une matrice génératrice systématique permet en fait de simplifier le codeur et le décodeur de C Examinons ici le codeur (sous forme systématique) Si D est le mot d information en entrée du codeur systématique, alors le mot de code en sortie sera C = D G s = D [ ] I k P k (n k) = D }{{} information D P k (n k) } {{ } parité Ainsi si on utilise un codeur systématique, le mot de code correspondant à D comporte deux parties Les k premiers bits sont les bits d information (égaux aux bits du mot d information D) alors que les (n k) bits

Décodeur des codes linéaires 13 restants dépendent de D et du code et sont appelés bits de parité En pratique, (n k) est petit devant n Le codeur ne doit plus calculer que (n k) bits au lieu de n pour un codeur quelconque Exemple 16 (Code de parité) On appelle code de parité binaire de longueur n un code binaire de longueur n dont les mots sont tous les n-uplets binaires de poids de Hamming pair Ce code C est linéaire car 1 Le mot 0 est un mot de poids pair donc 0 C 2 La somme de deux mots de poids pair est un mot de poids pair La dimension de ce code est assez simple à calculer En effet, il y a en tout 2 n n uplets binaires La moitié de ces mots est de poids pair Il y a donc 2 n /2 = 2 n 1 mots de poids pair Donc C = 2 n 1, ce qui donne une dimension k = n 1 La distance minimale de ce code, qui est le plus petit poids non nul possible est d min = 2 Le code de parité binaire de longueur n a donc pour paramètres (n, n 1, 2) Calculons maintenant sa matrice génératrice systématique On sait qu elle est de la forme G s = I n 1 Or chaque ligne de G s est un mot de code Le nombre de 1 est pair Les x à remplir sont donc tous égaux à 1 On obtient donc, 1 0 0 1 0 1 0 1 G s = 0 0 1 1 16 Décodeur des codes linéaires Nous rappelons tout d abord le rôle d un décodeur Le décodeur reçoit des mots du code passés à travers un canal de transmission Ainsi, si le canal est un canal binaire symétrique, le décodeur recevra des mots de code entachés d erreurs aléatoires Si le canal est un canal binaire à effacement, le décodeur recevra des mots de code dont certains bits sont effacés, etc Le décodeur est une boîte noire dont l entrée est le mot de code «bruité» sortant du canal et la sortie est un mot d information qui peut être le mot d information transmis ou pas La figure 17 donne un schéma fonctionnel du décodeur x x x x Mots de code bruités Décodeur Bits d information Figure 17 Schéma de base du décodeur De façon plus détaillée, le décodage s effectue en deux étapes Tout d abord le décodeur trouve, parmi tous les mots de code, le mot qui maximise la vraisemblance car nous ne considérons ici que le décodeur optimal minimisant la probabilité d erreur Ensuite, à partir de ce mot de code, le décodeur en tire les bits d information Si le codeur est systématique, alors les bits d information sont tout simplement les k premiers bits du mot de code trouvé Ici aussi, on voit que la forme systématique permet de simplifier le passage du mot de code au mot d information Il n y a pas de matrice à inverser La figure 18 donne un schéma d un tel processus Mot de code bruité Maximum de vraisemblance Mot de code Vers l information Mot d information Figure 18 Schéma détaillé du décodeur L algorithme 1, plus détaillé, est donné en pseudo-code Cependant, la recherche de mots le plus proche

14 Codage correcteur d erreur Algorithm 1 Décodage sur canal binaire symétrique 1: procedure Décodage(y) Décodage de y sur BSC 2: if y C then 3: ĉ y 4: Goto 9 5: else 6: Goto 8 7: end if 8: ĉ arg min c C d H (c, y) Maximum de vraisemblance 9: return D = ĉ[1 : k] Les k premiers bits sont les bits d info 10: end procedure ne peut pas se faire, en pratique, de façon exhaustive Par exemple, dans les standards de TV numérique non HD, les codes utilisés sont des codes de Reed-Solomon dont le nombre de mots est 256 144 10 115 A titre de comparaison, la partie visible de notre univers contiendrait environ 10 80 atomes!! Il nous faut donc trouver des algorithmes qui effectuent cette recherche de mot de code le plus proche de y de façon la plus efficace possible Une discussion analogue sur la complexité de l approche exhaustive est menée dans d autres cas de figure dans la sous-section 343 161 Notion d orthogonalité et de code dual Nous reprenons la notation «matrice ligne» des vecteurs Deux mots X et Y de longueur n sont dits orthogonaux si et seulement si n X Y = x i y i = 0 i=1 Attention, les symboles sont dans F 2 et l orthogonalité ici est bien différente du cas de l espace euclidien Tout mot de poids de Hamming pair est orthogonal à lui-même! Soit C un code linéaire de longueur n et de dimension k Le code dual de C, que l on note C, est l ensemble des mots de longueur n orthogonaux à tous les mots de C Il s agit d un code linéaire de longueur n aussi et de dimension n k Mais contrairement au cas de l espace euclidien, le code dual peut avoir une intersection non nulle avec le code primal Ainsi, il existe aussi des codes auto-duaux, c est-à-dire, des codes qui vérifient C = C A titre d exercice, vous pouvez vérifier que le code dual d un code de parité de longueur n est tout simplement le code à répétition de longueur n 162 Matrice de contrôle de parité Définition 110 (Matrice de contrôle de parité) Soit C un code de longueur n et de dimension k Une matrice de contrôle de parité de C est toute matrice H qui est matrice génératrice de C Ainsi H est une matrice à n k lignes et n colonnes Soit G une matrice génératrice de C Toute matrice H de rang n k, à n k lignes et n colonnes, qui vérifie 2 G k n H n (n k) = 0 k (n k) (19) est une matrice de contrôle de parité de C L idée de la preuve de ce résultat est la suivante : Tout mot de C s écrit D G où D est un mot d information, c est-à-dire une matrice ligne à k colonnes Tout mot de C s écrit D H où D est un mot d information, c est-à-dire une matrice ligne à n k colonnes Tout mot de C est orthogonal à tout mot de C, On en déduit donc G H = 0 D G H D = 0, D, D 2 Les indices représentent, comme d habitude, les dimensions des matrices

Décodeur des codes linéaires 15 Il est une matrice de contrôle de parité qui se déduit facilement de la matrice génératrice systématique du code C Il s agit de la matrice de contrôle de parité systématique La matrice génératrice systématique s écrit G s = [ I k P k (n k) ] (110) Définissons la matrice de contrôle de parité systématique, [ ] H s = P(n k) k I n k (111) On constate que H s a (n k) lignes, n colonnes et qu elle est de rang n k De plus, nous avons G s H s = P + P = 0 Donc H s vérifie l équation (19) H s est bien une matrice de contrôle de parité du code C Notez bien que la matrice de contrôle de parité systématique a l identité à droite et non à gauche comme la matrice génératrice systématique 163 Notion de syndrome Nous allons maintenant donner une méthode simple qui permet d implémenter de façon efficace la condition (ligne 2) de l algorithme 1 Nous cherchons à savoir si le mot reçu est un mot de code ou pas Pour ceci, nous pouvons nous aider de la figure 19 C S R C Figure 19 Justification du syndrome : schéma de principe On voit que si le mot reçu est un mot de code, alors la projection orthogonale sur le code dual est égale à 0 Si le mot reçu n est pas dans le code, elle n est pas égale à 0 Cette projection orthogonale du mot reçu est appelée «syndrome» Pour la calculer, il suffit d évaluer les produits scalaires entre le mot reçu et les vecteurs d une base du code dual qui sont les lignes de H Le vecteur évalué sera donné comme combinaison linéaire des vecteurs de la base de C D où la définition suivante, Définition 111 (Syndrome) Soit Y un mot de longueur n quelconque On appelle syndrome la quantité suivante S = Y H où H est une matrice de contrôle de parité de C A partir de l évaluation du syndrome nous pouvons en déduire l appartenance ou non de Y au code C Résultat 14 Y C si et seulement si S Y H = 0 Nous notons que S est un vecteur-ligne à (n k) colonnes 164 Borne de Singleton Dans cette sous-section, nous donnons deux résultats : le premier permet de caractériser d min d un code à travers sa matrice de contrôle de parité Et le second est encore obtenu grâce à l aide de la matrice de contrôle de parité et exhibe une borne entre les trois paramètres définissant un code ce qui prouve que certains paramétrages ne permettent pas de construire des codes

16 Codage correcteur d erreur Résultat 15 Pour tout code linéaire en bloc, d min est égale au plus petit nombre de colonnes dépendantes de H En effet, si les colonnes sont dépendantes, cela veut dire qu il existe un vecteur-ligne non-nul de longueur n, noté X, tel que X H = 0 Or d après le résultat 14, X appartient au code et donc X admet au minimum d min composantes non nulles ce qui finit de prouver le résultat 15 Résultat 16 (Borne de Singleton) Pour tout code linéaire en bloc (n, k, d min ), on a d min n k + 1 Nous allons raisonner par l absurde D après la sous-section 162, on sait que le rang de la matrice H, noté rg, vaut (n k) Supposons que rg < d min 1 Alors on peut contruire un vecteur-ligne de longueur n ayant (rg + 1) composantes non nulles, noté X, tel que X H = 0 et donc tel que X soit un mot de code ce qui est impossible si rg + 1 < d min Donc nécessairement, on a rg + 1 d min ce qui finit de démontrer le résultat 16 165 Décodage par syndrome : exemple avec le code de Hamming (7, 4, 3) A partir de ce code particulier, nous allons montrer comment développer un algorithme de décodage et notamment de correction d erreur grâce à la notion de syndrome Nous définissons tout d abord le type de codes sur lequel nous allons travailler qu est un code de Hamming binaire Définition 112 (Code de Hamming binaire) Soit m 3 un entier Un code de Hamming binaire est un code de longueur 2 m 1 et de dimension 2 m m 1 Sa matrice de contrôle de parité contient, en tant que colonnes, tous les m uplets binaires non nuls (il y en a bien 2 m 1) Nous nous intéressons ici plus particulièrement au cas m = 3 Nous choisissons une matrice de contrôle de parité systématique, par exemple, 1 1 1 0 1 0 0 H s = 0 1 1 1 0 1 0 1 1 0 1 0 0 1 Notons que, en utilisant les équations (111) et (110), H s correspond à la matrice génératrice systématique 1 0 0 0 1 0 1 G s = 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 Intéressons-nous maintenant au décodage de ce code Pour cela, considérons que nous avons reçu un mot Y qui est une matrice ligne 1 7 Suivons la procédure de décodage donnée dans l algorithme 1 Nous voulons d abord savoir si le mot reçu Y est dans le code ou pas Calculons donc le syndrome S = Y H Puisque ce code est utilisé sur un canal binaire symétrique, alors la sortie du canal est égale au mot de code transmis, éventuellement entaché d erreurs Ceci peut s écrire de la façon suivante, Y = C + E où C est le mot de code transmis et E est le «mot d erreur» Si E s écrit E = (e 1 e 2 e 7 ) alors e i = 0 signifie qu il n y a pas d erreur en position i et e i = 1 signifie qu il y a une erreur en position i En effet, l addition d un 1 change un 0 en 1 et un 1 en 0 Donc l addition d un 1 en position i correspond exactement à une erreur en position i Recalculons donc le syndrome S = Y H = C } {{ H } +E H =0

Performances 17 avec C H = 0 car C est un mot de code (voir résultat 14) Donc, finalement, nous en arrivons à un résultat très important, le syndrome est un vecteur qui dépend linéairement du mot d erreur E, et plus du tout du mot de code transmis C S = E H (112) Poursuivons la procédure de décodage en nous inspirant de l algorithme 1 Evidemment, s il n y a pas d erreur, alors E = 0 ce qui donne un syndrome nul (S = 0) Cependant, si le mot reçu n est pas un mot de code, alors S 0 L algorithme 1 nous demande de chercher le mot de code C le plus proche du mot reçu Y au sens de la distance de Hamming Ceci revient à dire qu il s agit du mot de code C tel que d H (C, Y ) est minimisé Or d H (C, Y ) = w H (E) où w H (E) désigne le poids de Hamming de E c est-à-dire le nombre de 1 du mot E Le décodeur doit donc chercher le mot de code correspondant au plus petit nombre d erreurs Commençons donc par regarder ce que donne une erreur simple S il y a une seule erreur en position i, alors e i = 1 et e j = 0 pour j i On note h i la i ème colonne de H S il y a une erreur unique en position i, le syndrome s écrit S = E H = h i Or toutes les colonnes de H sont distinctes et aucune n est égale à 0 Donc on peut distinguer, sans ambiguïté, en ne connaissant que la valeur du syndrome, les 7 localisations possibles d une erreur simple Pour résumer, le syndrome, dans cet exemple, est un vecteur à 3 composantes binaires Il peut donc prendre 8 valeurs possibles Ces 8 valeurs possibles correspondent à 0 erreur (S = 0) ou une erreur en position i, i = 1, 2,, 7 (S = h i ) On voit que s il y a plus d une erreur, alors le syndrome va reprendre l une des 8 valeurs possibles déjà prises dans le cas où il y a 0 ou une erreur Le code de Hamming de longueur 7 ne corrige donc qu une erreur (en fait c est le cas de tous les codes de Hamming) Si on liste les 16 mots de code, on peut observer que le poids minimal d un mot de code est égal à 3 et donc d min = 3 Ce code ne pouvait de toute façon pas corriger plus d une erreur (voir résultat 12) Exemple 17 Supposons que Y = (0 1 1 0 1 1 1) Alors, S = Y H s = (1 1 0) = h 3 ce qui correspond à une erreur en position 3 Donc, on en déduit et donc le mot de code décodé sera E = (0 0 1 0 0 0 0) C = Y + E = (0 1 0 0 1 1 1) Le codeur étant sous forme systématique, ceci correspond à la séquence d information D = (0 1 0 0) 17 Performances Nous donnons à présent une borne supérieure de la probabilité d erreur d un code en bloc linéaire sur un canal binaire symétrique Nous commençons par calculer la probabilité d erreur par mot de code Probabilité d erreur par mot Supposons un code linéaire C de paramètres (n, k, d min ) Il y a une erreur «mot» lorsque le mot décodé n est pas égal au mot émis Or, on sait qu un code en bloc de distance minimale d min corrige toutes les configurations d erreurs dont le nombre est inférieur ou égal à t (voir résultat 12), mais évidemment, il peut en corriger d autres Puisque le code est linéaire, on peut supposer que le mot 0 est émis Dans ce cas, le mot reçu correspond aussi au mot d erreur On peut donc borner la probabilité d erreur par mot de la façon suivante, P e,mot n i=t+1 C i np i (1 p) n i (113) où t = (d min 1)/2 est la capacité de correction du code Dans l équation (113), le terme C i np i (1 p) n i représente la probabilité que le mot reçu soit de poids i (i bits égaux à 1, n i bits égaux à 0 et, bien sûr, C i n le nombre de ces mots) Le membre de droite de cette équation n est donc que la probabilité que le mot reçu soit de poids de Hamming strictement supérieur à t