SlideShare une entreprise Scribd logo
1  sur  48
Télécharger pour lire hors ligne
Théorie de l’information
Chap : Codage canal et codes de bloc linéaires
Rhouma Rhouma
https://sites.google.com/site/rhoouma
École Supérieure d’Économie Électronique
Avril 2015
1 / 48
Plan
1 Problématique
2 Modèle : Canal Binaire symétrique
3 Capacité du canal et role du codage
4 Métriques
5 Pouvoir de détection et Pouvoir de Correction
6 Codes de bloc Linéaires
7 Code de Hamming
8 Code de Hadamard
2 / 48
Problématique
Plan
1 Problématique
2 Modèle : Canal Binaire symétrique
3 Capacité du canal et role du codage
4 Métriques
5 Pouvoir de détection et Pouvoir de Correction
6 Codes de bloc Linéaires
7 Code de Hamming
8 Code de Hadamard
3 / 48
Problématique
Schéma général d’une communication numérique
4 / 48
Problématique
Canal de transmission : C’est l’élément physique par lequel les informations de la source
seront transmises au récepteur. La transmission de l’information a deux impératifs
contradictoires : 1) Transmettre le plus vite possible le maximum d’information et 2) Eviter
les erreurs de transmission.
Atmosphère : ondes électromagnétiques ou ondes Herteziennes.
Cable coaxial, paire torsadée : signaux électriques (tensions, courants).
Fibre optique : ondes optiques (lumière visible, infra-rouge,. . .).
Source : C’est elle qui fournit le signal. Celui-ci peut être analogique (microphone,. . ..) ou
discret (CD,....). Nous nous intéresserons aux communications dites "numériques" le
signal est donc discret et converti en binaire (numérisation). La source fourni un message
qui est une séquence de bits.
Encodeur de source : Son rôle est de représenter le message sur un minimum de bits
(compression de données). Ceci permettra de transmettre le maximum d’informations
dans le minimum de temps. Source -> encodeur de source -> message
Encodeur de canal : Il doit structurer le message pour permettre au récepteur de pallier
aux erreurs de transmission. Cette modification du message génère un mot de code qui
est une séquence de bits plus longue que celle du message. Cela peut se faire par simple
adjonction de bits redondants mais aussi par des méthodes d’encodage plus élaborées.
message -> encodeur de canal -> mot de code
5 / 48
Problématique
Modulateur : mot de code -> modulateur -> ondes Si (t)
Modulation binaire : Le mot de code généré est une succession de "0" et de "1". Afin
de transmettre l’information il est nécessaire de les transformer en un signal
physique adapté au canal de transmission. Chaque signal élémentaire est appelé
une forme d’onde. Ainsi 0 → S0(t) et 1 → S1(t). nous obtenons une modulation
binaire c’est-à-dire faisant intervenir deux formes d’onde.
Modulation M-ary : Plutôt que de transmettre le code bit par bit, il est possible de le
transmettre par paquets de b bits. Nous aurons donc M = 2b paquets possibles ce
qui nécessite M formes d’ondes Si (t) différentes.
Démodulateur : Rôle inverse de celui du modulateur, il reçoit les ondes éventuellement
perturbées et les transforme en paquets de bits pour reconstituer le code sur lequel peut
se trouver des erreurs de transmission. Ondes Si (t) -> démodulateur -> mot de code
Décodeur de canal : Grâce au codage il peut soit détecter une erreur de transmission et
dans ce cas éventuellement réinterroger l’émetteur mais certains codages permettent
dans une certaine mesure de détecter et de corriger les erreurs de transmission. En
général les codes correcteurs ne peuvent pas tout corriger sinon ils demanderaient trop de
bits redondants, ils se contentent de corriger les erreurs les plus probables.
mot de code -> décodeur -> message
Décodeur de source : Ayant la séquence binaire ou message associée à l’information, ce
décodeur doit reconstituer l’information qui a été transmise. c’est la décompression.
6 / 48
Problématique
Problématique
La description du système révèle bien la position du problème qui se
résume en deux points contradictoires :
Transmettre le plus vite possible le maximum d’informations :
Peu de bits de codage
Modulation astucieusement choisie
Vitesse de transmission élevée : bon choix du canal
Transmettre sans erreur :
Augmenter le nombre de bits du codage
Modulation bien choisie
Bon choix d’un canal de transmission
Chaque problème demande un compromis !
7 / 48
Problématique
Problème de décodage au récepteur
On peut schématiser le comportement du récepteur par un
graphe qui montre comment les niveaux de tensions sont mappés
en 0 ou 1.
si le voltage reçu entre V0 et V0+V1
2 le symbole reçu est 0 sinon
c’est un 1
8 / 48
Modèle : Canal Binaire symétrique
Plan
1 Problématique
2 Modèle : Canal Binaire symétrique
3 Capacité du canal et role du codage
4 Métriques
5 Pouvoir de détection et Pouvoir de Correction
6 Codes de bloc Linéaires
7 Code de Hamming
8 Code de Hadamard
9 / 48
Modèle : Canal Binaire symétrique
Canal binaire symétrique
supposons que durant la transmission, le "1" est reçu et interprété
comme un "0" et vice versa avec une probabilité p.
p est appelé la probabilité d’erreur
le canal dans ce cas est appelé canal binaire symétrique
ce type de canal est très significatif quant à la modélisation d’un
canal de transmission.
10 / 48
Modèle : Canal Binaire symétrique
Information Mutuelle
I(X, Y) = H(X) − H(X/Y)
I(X,Y) veut dire : Quel est notre incertitude sur X réduite en
sachant Y ?
I(X,Y) mesure aussi la similitude entre X et Y
H(X /Y) est liée à l’existence d’une probabilité d’erreur de
transmission. En généralisant cette notion, H(X/Y) est due à
l’existence de bruit sur le canal et révèle le fait que celui-ci ne
transmet pas parfois l’information. H(X/Y) est en quelque sorte
une mesure de la quantité d’information perdue.
I(X,Y) devient ainsi la quantité d’information correcte transmise
par le canal.
La capacité du canal doit s’entendre au sens de la capacité de
transmission sans erreur.
11 / 48
Modèle : Canal Binaire symétrique
H(X/Y = yj) =
m
X
i=1
p(xi/yj)log2(
1
p(xi/yj)
)
H(X/Y) =
m
X
i=1
H(X/Y = yj)p(yj)
H(X, Y) = H(X) + H(Y/X) = H(Y) + H(X/Y)
puisque p(xi, yj) = p(xi)p(yj/xi) = p(yj)p(xi/yj), donc
I(X, Y) = I(Y, X)
=⇒ l’information mutuelle est symétrique ! La formule de I(X,Y) est
donné par :
I(X, Y) =
X
i,j
p(xi, yj)log(
p(xi, yj)
p(xi)p(yj)
)
Pour un canal binaire symétrique, l’information mutuelle est donné
par :
I(X, Y) = 1 + (1 − p) · log(1 − p) + p · log(p)
12 / 48
Modèle : Canal Binaire symétrique
Puisqu’on a
I(X, Y) = 1 + (1 − p) · log(1 − p) + p · log(p) = 1 − H(X)
1 si p = 0 ce qui veut dire pas d’erreur de transmission alors I(X, Y) = 1. Similitude parfaite
entre les deux sources, la transmission se passe bien. H(X, Y) = 1.
2 si p = 0.5, pagaille complète lors de la transmission. Dans ce cas I(X, Y) = 0, plus du tout
de similitude entre les deux sources. Tout se passe comme si les deux sources étaient
indépendantes.
3 si p = 1, à nouveau I(X, Y) = 1. Les deux sources sont à nouveau tout à fait semblables.
Le fait qu’il y a dans ce cas permutation du "0" et du "1" n’ayant pas d’importance.
13 / 48
Capacité du canal et role du codage
Plan
1 Problématique
2 Modèle : Canal Binaire symétrique
3 Capacité du canal et role du codage
4 Métriques
5 Pouvoir de détection et Pouvoir de Correction
6 Codes de bloc Linéaires
7 Code de Hamming
8 Code de Hadamard
14 / 48
Capacité du canal et role du codage
Capacité du canal
L’information mutuelle peut etre redefinie en utilisant les
probabilités conditionnelles qui définissent le canal :
I(X, Y) =
X
i,j
p(yj/xi) · p(xi) · log(
p(yj/xi)
p(xi)
)
Les probabilités marginales {p(xi)} dépendent de la source
d’entrée et donc du système de codage de canal utilisé.
Nous pouvons rechercher un système de codage qui rende
maximal cette quantité, c’est ce qui définit la capacité du canal :
C = maxp(xi ){I(X, Y)} = max{H(X) − H(X/Y)}
Si la cadence du canal est d’un symbole toute les Tc secondes, le
débit maximum du canal sera C
Tc
bit/s.
La capacité du canal doit s’entendre au sens de la capacité de
transmission sans erreur.
15 / 48
Capacité du canal et role du codage
Role du codage canal
Pour que la transmission soit performante, il faut fournir au récepteur la
quantité d’information manquante qui est H(X/Y ). Pour cela il est
imaginé d’introduire une redondance dans l’information qui permettra de
détecter et de corriger les erreurs dues à la transmission.
Exemples simples :
Ajouter un bit de parité et, en cas d’erreur à la réception, interroger
de nouveau l’émetteur.
Transmettre l’information en trois exemplaires et, en cas de
désaccord, faire confiance à la majorité.
Ces méthodes proviennent d’une analyse empirique de la situation et,
d’après le modèle de Shannon, elles ont pour effet de diminuer la
quantité d’information perdue et donc d’augmenter la capacité du canal.
Grâce à cette analyse, il est possible de mettre au point des méthodes
de codage plus efficaces pour atteindre cet objectif.
un codage de canal performant est d’autant plus nécessaire que le
canal est bruité et perd de l’information.
16 / 48
Capacité du canal et role du codage
Théorème de Shannon
A mathematical theory of communication. Octobre 1948
Soit un canal discret de capacité C et une source discrète
d’entropie H.
Puisque H(X/Y) = H(X) − C
Theorème de shannon concernnat le codage canal
1 Si H(X) ≤ C, nous pouvons ajouter de l’information à H(X) par un
système de codage judicieux de manière à que l’information de la
source peut être transmise sur le canal avec une probabilité
d’erreur aussi petite que l’on veut.
2 Si H(X) > C il y a de toute manière perte d’information et tout
codage mal effectué peut aller dans le sens de l’augmentation de
cette perte d’information.
17 / 48
Capacité du canal et role du codage
Transmettre de l’information sans erreur ?
Shannon a montré theoriquement qu’on peut transmettre
l’information (bits) à un taux de codage (débit) R < C avec une
probabilité d’erreur tres faible
Il a aussi montré que la transmission à un taux de codage (débit)
R ≥ C va certainement incorporer des erreurs de transmissions
son secret : coder un bloc de k-bits en un mot de code de n-bits
(avec n>k) pour réduire le débit R = k/n
le fait de coder un message de k-bits en un mot de code de n-bits
s’appelle le codage canal
18 / 48
Métriques
Plan
1 Problématique
2 Modèle : Canal Binaire symétrique
3 Capacité du canal et role du codage
4 Métriques
5 Pouvoir de détection et Pouvoir de Correction
6 Codes de bloc Linéaires
7 Code de Hamming
8 Code de Hadamard
19 / 48
Métriques
Distance et poids de Hamming
Soit x = [x1x2 . . . xn] et y = [y1y2 . . . yn] deux msg de longueur n.
Définitions
La distance de Hamming entre x et y est le nombre d(x, y) de
composantes où x et y diffèrent.
Le poids de Hamming de x est le nombre w(x) de composantes
non nulles de x.
Ex : Si x = 10110 et y = 00101, alors d(x, y) = 3 et w(x) = 3 et
w(y) = 2.
20 / 48
Métriques
Poids d’un code
Le poids Wi d’un mot de code Ci est par définition le nombre de
caractères non nuls que contient ce mot.
ex : 11001000 est de poids W=3
ex : 10011010 est de poids W=4
00000000 est de poids nul
21 / 48
Métriques
Distance de Hamming
La distance de Hamming dij entre deux mots de code est le
nombre de bits dont ils diffèrent.
ex 11001000 et 10011010 ont une distance de 3.
La distance minimale du code est le minimum de l’ensemble des
distances entre codes :
dmin = min{dij}
la distance de Hamming entre un mot de code valide et erroné de
e erreurs est e
si on n’a pas de codage : les deux mots de codes "0" et "1" ont
une distance egale à 1. donc une erreur change un code valide à
un autre code valide !
On peut montrer que dmin = min{Wi}
22 / 48
Métriques
Distance de hamming du code à répétitions
on veut coder de façon à que les mots de codes soient assez
éloignés pour que les erreurs ne changent pas un code valide à
un autre code valide !
23 / 48
Métriques
Code correcteur d’erreurs
Définition
Un code correcteur d’erreurs est une technique de codage basée sur
la redondance de l’information, destinée a détecter, voire corriger, les
erreurs qui peuvent être générées par un canal de communication peu
fiable.
Le rôle du correcteur d’erreurs peut être limite à la simple
détection (et localisation ) d’erreurs.
La correction s’effectue alors par une nouvelle requête de
transmission du message, ou seulement des parties erronées. ex
TCP par sommes de contrôle (checksum) pour la vérification
Cela peut se reveler insuffisant, ou inadaptée suivant le contexte
(GSM par exemple)
24 / 48
Métriques
ex : code de parité
Supposons que l’on ait des mots de 7 bits à envoyer (code ASCII
par exemple), et que l’on s’intéresse simplement à la détection
d’une erreur.
Un moyen et de coder chacun des mots sur 8 bits, en ajoutant un
8eme bit, appelé bit de parité, de telle sorte que dans tous les
mots le nombre de 1 soit pair.
le message 1011001 est codé 10110010
et le message 0110100 est codé 01101001
permet de detecter un nb impair d’erreur
ne permet pas de localiser donc de corriger les erreurs détéctés
25 / 48
Métriques
Paramètres d’un code(n,k)
Codeur : Dispositif qui associe à une suite de k bits d’information
une suite de n bits.
Code : Un code est un ensemble de mots de n bits.
Distance minimale d’un code C :
dmin = min{d(x, y)/x, y ∈ C}
on peut montrer que
dmin = min{w(x)/x ∈ C et x 6=
−
→
0 }
26 / 48
Pouvoir de détection et Pouvoir de Correction
Plan
1 Problématique
2 Modèle : Canal Binaire symétrique
3 Capacité du canal et role du codage
4 Métriques
5 Pouvoir de détection et Pouvoir de Correction
6 Codes de bloc Linéaires
7 Code de Hamming
8 Code de Hadamard
27 / 48
Pouvoir de détection et Pouvoir de Correction
Distance de Hamming et pouvoir de
détection/correction
Messages de 4 bits : 16 messages possibles
La distance de Hamming minimale dmin = 1
Aucune erreur ne peut être détecté ou corrigé
On ne peut remarquer si une erreur s’est passée
28 / 48
Pouvoir de détection et Pouvoir de Correction
Distance de Hamming et pouvoir de
détection/correction
Messages de 4 bits + 1 bit de contrôle :
16 codes possibles représenté par 5 bits
La distance de Hamming minimale dmin = 2
Une seule erreur peut être détectée
aucune erreur ne peut être corrigée
On sait qu’il y a une erreur mais on ne peut la
localiser (corriger)
29 / 48
Pouvoir de détection et Pouvoir de Correction
Distance de Hamming et pouvoir de
détection/correction
Code de Hamming (7,4) : 4 bits de données + 3 bits
contrôle
La distance de Hamming minimale dmin = 3
Une seule erreur peut être détectée et corrigée
les erreurs doubles sont confondu avec les erreurs
simples : on peut détecter 2 erreurs mais on ne corr
qu’une
30 / 48
Pouvoir de détection et Pouvoir de Correction
Pouvoir de détéction/pouvoir de correction
Nb max des erreurs détectables : eD = dmin − 1
tous les erreurs appartenant à une sphere sont corrigeables
tous les erreurs appartenant à l’intersection des spheres sont non corrigeables
Donc Nb max des erreurs corrigeables : eC = E[1
2
(dmin − 1)]
31 / 48
Codes de bloc Linéaires
Plan
1 Problématique
2 Modèle : Canal Binaire symétrique
3 Capacité du canal et role du codage
4 Métriques
5 Pouvoir de détection et Pouvoir de Correction
6 Codes de bloc Linéaires
7 Code de Hamming
8 Code de Hadamard
32 / 48
Codes de bloc Linéaires
Algorithme de codage
Codes de bloc (n,k) : un bloc de n-bits noté
C = b0b1bn−k−1m0m1 . . . mk−1 construit à partir d’un message de k-bits
noté m = m0m1 . . . mk−1.
on peut note le code aussi comme code (n,k,d) avec d est la distance de
hamming minimale.
b consitués par n-k bits redondants ou bits de parité. b = b0b1 . . . bn−k−1
linéaire : soit deux codes Ci et Cj alors Ci + Cj = Ck est un mot de code
le code "0" (les n bits à 0) est un mot de code dans chaque code (n,k).
(parceque 1+1=0)
codage : C = m × G
G est la matrice génératrice de taille (k × n). Le code est dit :
Systématique : Si G = [P Ik ] avec Ik est l’identité de taille (k × k). P
est dite la matrice de parité de taille (k × n − k). Le code dans ce
cas est formé des bits de parité suivis par les bits de message.
Non-systématique si G = [P M] avec M quelconque de taille
(k × k).
33 / 48
Codes de bloc Linéaires
Exemple code (7,4)
Soit G =




1 0 1 1 0 0 0
1 1 1 0 1 0 0
1 1 0 0 0 1 0
0 1 1 0 0 0 1




donner les propriétés de ce code (n,k) ?
donner toutes les possibilités du message m
donner les mots de codes
si b0b1b2 sont les bits redondants du mot de code, donner leurs
formules en fonction des bits de message m0, m1, m2
34 / 48
Codes de bloc Linéaires
Détection des erreurs par syndrome
Matrice de contrôle :
H = [In−k PT
]
avec In−k est l’identité de (n − k) × (n − k) et PT est la transposé
de la matrice de parité P
On peut vérifier facilement que G · HT = 0.
H de l’exemple précédent est : H =


1 0 0 1 1 1 0
0 1 0 0 1 1 1
0 0 1 1 1 0 1


35 / 48
Codes de bloc Linéaires
Syndrome
Pour chaque mot de code C :
C · HT
= m · G · HT
= 0
si le mot de code est erroné, donc il s’écrit comme suit :
Code reçu = Code emis + erreur =⇒ Y = C + E
En effectuant le controle à la reception :
S = Y · HT
= C · HT
+ E · HT
= E · HT
Le syndrome S ne depend que de l’erreur commise et non du
message ou le mot de code
Remarque : Deux erreurs qui diffèrent d’un mot de code ont
même syndrome
ce theorème nous indique qu’il y a ambiguïté lors de la détection
d’erreur
36 / 48
Codes de bloc Linéaires
Lien entre distance minimale et matrice de parité
soit M = C · HT
Chaque élément de la matrice M est une combinaison linéaire sur
une ligne j de tous les éléments des colonnes =⇒ M est une
combinaison linéaire des colonnes de la matrice H et cette
combinaison linéaire est nulle.
les colonnes de H sont linéairement dépendantes.
Le nombre de colonnes intervenant dans la combinaison est
égale au nombre de "1" du code Cm ce qui est le poids de
Hamming du mot de code.
La distance de Hamming du code étant le poids minimal de ce
code =⇒ La distance minimale de Hamming dmin d’un code est
égale au nombre minimal de colonnes de la matrice H dont la
somme est nulle.
Le nombre de colonnes de H linéairement indépendantes est
dmin − 1 et le rang maximal de cette matrice est n − k ce qui établi
la relation :
dmin ≤ n − k + 1 37 / 48
Codes de bloc Linéaires
Correction des erreurs et distance de Hamming
(revisitée)
Si dmin est la distance de Hamming :
détecter au plus t erreurs SSI dmin ≥ t + 1
corriger au plus t erreurs SSI dmin ≥ 2t + 1
Détecter au plus tD erreurs mais ne corriger qu’au plus tC erreurs
avec tC < tD SSI dmin ≥ tC + tD + 1
38 / 48
Codes de bloc Linéaires
Algorithme de Correction des erreurs par syndrome
1 Reception d’un mot de code Y.
2 calcul du syndrome associe S = Y · HT .
3 construction d’une table d’erreur/syndrome par S = E · HT
4 avec la table d’erreurs, calcul de l’erreur la plus vraisemblable E∗
associée au syndrome.
5 calcul du mot de code le plus vraisemblable : C∗ = Y + E∗
6 Extraction du message X∗ de C∗.
39 / 48
Codes de bloc Linéaires
exemple
Code(5,2) avec G =

1 0 1 1 0
0 1 1 0 1

H est donc donnée par H =


1 0 0 1 0
0 1 0 0 1
0 0 1 1 1


Le syndrome est donc de longueur 5 − 2 = 3. On peut coder tous
les erreurs simples (5) + le cas pas d’erreur. il reste deux
combinaisons pour les erreurs doubles (2 = 2n−k − n − 1).
Syndrome Erreur commentaire
000 00000 Pas d’erreur
001 00100 Erreur ds le bit 2
010 01000 Erreur ds le bit 1
011 00001 Erreur ds le bit 4
100 10000 Erreur ds le bit 0
101 00010 Erreur ds le bit 3
110 ? ?
111 ? ? 40 / 48
Codes de bloc Linéaires
le syndrome 110 peut être associé à une erreur double du type (bit 0 + bit 1) soit 11000
mais aussi à une erreur du type (bit 3 + bit 4) soit 00011. Il y a ici ambiguïté entre deux
erreurs doubles.
Pour le syndrome 001 associé à une erreur bit 2 il pourrait être associé à une erreur type (
bit 1 +bit 4 ) mais ici l’ambiguïté est entre une seule erreur simple et d’autres erreurs
doubles, triples,. . .
H a au plus trois colonnes linéairement indépendantes donc dmin = 3. donc eD = 2 et
eC = 1
Si nous affectons la solution la plus vraisemblable, toutes les erreurs simples peuvent être
corrigées.
Les erreurs doubles, elles sont détectables mais nous pouvons soit les confondre entre
elles, soit les confondre avec une erreur simple. Dans le second cas le maximum de
vraisemblance corrige comme une erreur simple (c’est effectivement ce qui a la plus forte
probabilité d’arriver ) et dans le premier elle tranche en faveur de la solution la plus
probable qui, pour un code donné est toujours la même.
Qu’arrive-t-il pour des erreurs triples ? Au sens du critère, elles sont toujours
systématiquement confondues soit avec une erreur simple soit une erreur double, elles
sont de ce fait non détectables et par la même non corrigeables.
41 / 48
Codes de bloc Linéaires
soit m = [1 0].
Le mot de code correspondant est
C = m · G = [1 0] ·

1 0 1 1 0
0 1 1 0 1

= [1 0 1 1 0]
à la reception le bit n˚3 a été interprété par le récepteur d’une
manière fausse. Donc Y = [1 0 1 0 0]
Le récepteur calcule le syndrome associé : S = Y · HT = [1 0 1]
Par la table d’erreur Le recepteur fait correspondre le syndrome
calculé et trouve l’erreur la plus vraisemblable E∗ = [0 0 0 1 0]
Correction : C∗ = Y + E∗ = [1 0 1 0 0] + [0 0 0 1 0] = [1 0 1 1 0]
extraction du message : les k dernier bits de C∗ qui sont
m∗ = [1 0]
remarquer que S = Y · HT = E∗ · HT = [1 0 1]
42 / 48
Codes de bloc Linéaires
exemple
Repeter la meme demarche pour erreur dans le bit n˚4
43 / 48
Codes de bloc Linéaires
exemple
erreur dans le bit n˚0 et 1 : Y = [0 1 1 1 0]
Syndrome S = Y · HT = [1 1 0]
d’apres la table ceci correspond à E∗ = [1 1 0 0 0] (ou [0 0 0 1 1]).
si par ex le recepteur choisi la deuxième possibilité d’erreur.
C∗ = Y + E∗ = [0 1 1 1 0] + [0 0 0 1 1] = [0 1 1 0 1]
et donc m∗ = [0 1] qui est different du message original
avec ces exemple on voit que le code a un pouvoir de detection
qui ne peut le dépasser et a un pouvoir de correction qui ne peut
le dépasser aussi
44 / 48
Code de Hamming
Plan
1 Problématique
2 Modèle : Canal Binaire symétrique
3 Capacité du canal et role du codage
4 Métriques
5 Pouvoir de détection et Pouvoir de Correction
6 Codes de bloc Linéaires
7 Code de Hamming
8 Code de Hadamard
45 / 48
Code de Hamming
Les codes de Hamming sont des codes binaires qui ont la
propriété : (n, k, dmin) = (2m − 1, 2m − 1 − m, 3)
ex code (7,4,3) ; code (15,11,3)
La matrice de contrôle de Hamming H est de taille
(n − k × n) = (m × 2m − 1). Une colonne est donc constituée de
m éléments binaires et nous avons 2m − 1 colonnes c’est-à-dire
toutes les combinaisons possibles moins une (la combinaison
000... ). Ceci nous permet pour ces codes de construire très
rapidement la matrice de contrôle H et d’en déduire la matrice de
génération de code G.
Commencer à remplir la matrice H en utilisant les combinaisons
linéaires de m bits faisant apparaître la matrice In−k . Compléter
cette matrice par les combinaisons de m bits non encore utilisées
code 0 exclu.
46 / 48
Code de Hadamard
Plan
1 Problématique
2 Modèle : Canal Binaire symétrique
3 Capacité du canal et role du codage
4 Métriques
5 Pouvoir de détection et Pouvoir de Correction
6 Codes de bloc Linéaires
7 Code de Hamming
8 Code de Hadamard
47 / 48
Code de Hadamard
Les codes de Hadamard sont constitués par des matrices, par
itération : M2n =

Mn Mn
Mn Mn

avec Mn est la matrice
complementaire de Mn
M2 =

0 0
0 1

M4 =




0 0 0 0
0 1 0 1
0 0 1 1
0 1 1 0




Les Matrices Mn ou Mn contiennent dans leurs lignes ou colonnes
les 2n mots de codes.
La structure de la matrice permet donc de détecter les erreurs de
transmissions
il est montré que dmin = n/2
48 / 48

Contenu connexe

Similaire à Inf_theory_lect2.pdf

E_memoire.pdf----------------------------
E_memoire.pdf----------------------------E_memoire.pdf----------------------------
E_memoire.pdf----------------------------NasriMohsen2
 
Inf_theory_lect4.pdf
Inf_theory_lect4.pdfInf_theory_lect4.pdf
Inf_theory_lect4.pdfkohay75604
 
TRANSMISSION NUMERIQUE Année 2022-2023 CEFIB
TRANSMISSION NUMERIQUE Année 2022-2023 CEFIBTRANSMISSION NUMERIQUE Année 2022-2023 CEFIB
TRANSMISSION NUMERIQUE Année 2022-2023 CEFIBYounoussKEITA
 
Les transmission de données
Les transmission de donnéesLes transmission de données
Les transmission de donnéesOndernemersschool
 
cours1 (1).pdf
cours1 (1).pdfcours1 (1).pdf
cours1 (1).pdfAlynaEla
 
Turbo code
Turbo codeTurbo code
Turbo coden allali
 
Chap2 physique
Chap2 physiqueChap2 physique
Chap2 physiqueEns Kouba
 
Travaux dirigés Réseau Ethernet
Travaux dirigés Réseau EthernetTravaux dirigés Réseau Ethernet
Travaux dirigés Réseau EthernetInes Kechiche
 
FR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdfFR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdfmouradslilem1
 
chap3 transmission_numerique-en-bd_b
chap3 transmission_numerique-en-bd_bchap3 transmission_numerique-en-bd_b
chap3 transmission_numerique-en-bd_bBAKKOURY Jamila
 
1 entropie-capacite theorie de l'information
1 entropie-capacite theorie de l'information1 entropie-capacite theorie de l'information
1 entropie-capacite theorie de l'informationAbdou Obado
 
Tp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabTp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabhamdinho
 
PRESENTATION (1).pptx
PRESENTATION (1).pptxPRESENTATION (1).pptx
PRESENTATION (1).pptxAYOUBLOUIZI
 
Advance research on next generation networks and services.en.fr
Advance research on next generation networks and services.en.frAdvance research on next generation networks and services.en.fr
Advance research on next generation networks and services.en.frLAWALI Rabiou
 

Similaire à Inf_theory_lect2.pdf (20)

E_memoire.pdf----------------------------
E_memoire.pdf----------------------------E_memoire.pdf----------------------------
E_memoire.pdf----------------------------
 
Inf_theory_lect4.pdf
Inf_theory_lect4.pdfInf_theory_lect4.pdf
Inf_theory_lect4.pdf
 
3-Codage_Canal.ppt
3-Codage_Canal.ppt3-Codage_Canal.ppt
3-Codage_Canal.ppt
 
Carte mentale transport Voix sur ip
Carte mentale transport Voix sur ipCarte mentale transport Voix sur ip
Carte mentale transport Voix sur ip
 
TRANSMISSION NUMERIQUE Année 2022-2023 CEFIB
TRANSMISSION NUMERIQUE Année 2022-2023 CEFIBTRANSMISSION NUMERIQUE Année 2022-2023 CEFIB
TRANSMISSION NUMERIQUE Année 2022-2023 CEFIB
 
Les transmission de données
Les transmission de donnéesLes transmission de données
Les transmission de données
 
cours1 (1).pdf
cours1 (1).pdfcours1 (1).pdf
cours1 (1).pdf
 
Turbo code
Turbo codeTurbo code
Turbo code
 
Chap2 physique
Chap2 physiqueChap2 physique
Chap2 physique
 
Travaux dirigés Réseau Ethernet
Travaux dirigés Réseau EthernetTravaux dirigés Réseau Ethernet
Travaux dirigés Réseau Ethernet
 
FR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdfFR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdf
 
Hdlc
HdlcHdlc
Hdlc
 
chap3 transmission_numerique-en-bd_b
chap3 transmission_numerique-en-bd_bchap3 transmission_numerique-en-bd_b
chap3 transmission_numerique-en-bd_b
 
1 entropie-capacite theorie de l'information
1 entropie-capacite theorie de l'information1 entropie-capacite theorie de l'information
1 entropie-capacite theorie de l'information
 
Tp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlabTp 1 transmission de donné inisiallisation à simulink matlab
Tp 1 transmission de donné inisiallisation à simulink matlab
 
2 codage source
2 codage source2 codage source
2 codage source
 
Projet Rnis
Projet RnisProjet Rnis
Projet Rnis
 
Canaux logiques et codage dans le gsm
Canaux logiques et codage dans le gsmCanaux logiques et codage dans le gsm
Canaux logiques et codage dans le gsm
 
PRESENTATION (1).pptx
PRESENTATION (1).pptxPRESENTATION (1).pptx
PRESENTATION (1).pptx
 
Advance research on next generation networks and services.en.fr
Advance research on next generation networks and services.en.frAdvance research on next generation networks and services.en.fr
Advance research on next generation networks and services.en.fr
 

Plus de kohay75604

Chapitre1_Introduction_res_sans_fils_mobiles.pdf
Chapitre1_Introduction_res_sans_fils_mobiles.pdfChapitre1_Introduction_res_sans_fils_mobiles.pdf
Chapitre1_Introduction_res_sans_fils_mobiles.pdfkohay75604
 
catalogue PFE 2023.pdf
catalogue PFE 2023.pdfcatalogue PFE 2023.pdf
catalogue PFE 2023.pdfkohay75604
 
Chap 2 - Etudiant.pdf
Chap 2 - Etudiant.pdfChap 2 - Etudiant.pdf
Chap 2 - Etudiant.pdfkohay75604
 
Chap 1 - Etudiant.pdf
Chap 1 - Etudiant.pdfChap 1 - Etudiant.pdf
Chap 1 - Etudiant.pdfkohay75604
 
res_mobiles_ch4.pdf
res_mobiles_ch4.pdfres_mobiles_ch4.pdf
res_mobiles_ch4.pdfkohay75604
 
application SSL_TLS.pptx
application SSL_TLS.pptxapplication SSL_TLS.pptx
application SSL_TLS.pptxkohay75604
 
Inf_theory_lect3.pdf
Inf_theory_lect3.pdfInf_theory_lect3.pdf
Inf_theory_lect3.pdfkohay75604
 
Business Template with Transitions by Slidesgo.pptx
Business Template with Transitions by Slidesgo.pptxBusiness Template with Transitions by Slidesgo.pptx
Business Template with Transitions by Slidesgo.pptxkohay75604
 
S2-00-HTTP.pptx
S2-00-HTTP.pptxS2-00-HTTP.pptx
S2-00-HTTP.pptxkohay75604
 
S2-02-PHP-objet.pptx
S2-02-PHP-objet.pptxS2-02-PHP-objet.pptx
S2-02-PHP-objet.pptxkohay75604
 
S2-01-PHP.pptx
S2-01-PHP.pptxS2-01-PHP.pptx
S2-01-PHP.pptxkohay75604
 

Plus de kohay75604 (16)

crypto1.pdf
crypto1.pdfcrypto1.pdf
crypto1.pdf
 
Chapitre1_Introduction_res_sans_fils_mobiles.pdf
Chapitre1_Introduction_res_sans_fils_mobiles.pdfChapitre1_Introduction_res_sans_fils_mobiles.pdf
Chapitre1_Introduction_res_sans_fils_mobiles.pdf
 
catalogue PFE 2023.pdf
catalogue PFE 2023.pdfcatalogue PFE 2023.pdf
catalogue PFE 2023.pdf
 
Chap 3.pdf
Chap 3.pdfChap 3.pdf
Chap 3.pdf
 
Chap 2 - Etudiant.pdf
Chap 2 - Etudiant.pdfChap 2 - Etudiant.pdf
Chap 2 - Etudiant.pdf
 
Chap 1 - Etudiant.pdf
Chap 1 - Etudiant.pdfChap 1 - Etudiant.pdf
Chap 1 - Etudiant.pdf
 
res_mobiles_ch4.pdf
res_mobiles_ch4.pdfres_mobiles_ch4.pdf
res_mobiles_ch4.pdf
 
docker.pptx
docker.pptxdocker.pptx
docker.pptx
 
application SSL_TLS.pptx
application SSL_TLS.pptxapplication SSL_TLS.pptx
application SSL_TLS.pptx
 
SSL.TLS.pptx
SSL.TLS.pptxSSL.TLS.pptx
SSL.TLS.pptx
 
Inf_theory_lect3.pdf
Inf_theory_lect3.pdfInf_theory_lect3.pdf
Inf_theory_lect3.pdf
 
NFV.pdf
NFV.pdfNFV.pdf
NFV.pdf
 
Business Template with Transitions by Slidesgo.pptx
Business Template with Transitions by Slidesgo.pptxBusiness Template with Transitions by Slidesgo.pptx
Business Template with Transitions by Slidesgo.pptx
 
S2-00-HTTP.pptx
S2-00-HTTP.pptxS2-00-HTTP.pptx
S2-00-HTTP.pptx
 
S2-02-PHP-objet.pptx
S2-02-PHP-objet.pptxS2-02-PHP-objet.pptx
S2-02-PHP-objet.pptx
 
S2-01-PHP.pptx
S2-01-PHP.pptxS2-01-PHP.pptx
S2-01-PHP.pptx
 

Inf_theory_lect2.pdf

  • 1. Théorie de l’information Chap : Codage canal et codes de bloc linéaires Rhouma Rhouma https://sites.google.com/site/rhoouma École Supérieure d’Économie Électronique Avril 2015 1 / 48
  • 2. Plan 1 Problématique 2 Modèle : Canal Binaire symétrique 3 Capacité du canal et role du codage 4 Métriques 5 Pouvoir de détection et Pouvoir de Correction 6 Codes de bloc Linéaires 7 Code de Hamming 8 Code de Hadamard 2 / 48
  • 3. Problématique Plan 1 Problématique 2 Modèle : Canal Binaire symétrique 3 Capacité du canal et role du codage 4 Métriques 5 Pouvoir de détection et Pouvoir de Correction 6 Codes de bloc Linéaires 7 Code de Hamming 8 Code de Hadamard 3 / 48
  • 4. Problématique Schéma général d’une communication numérique 4 / 48
  • 5. Problématique Canal de transmission : C’est l’élément physique par lequel les informations de la source seront transmises au récepteur. La transmission de l’information a deux impératifs contradictoires : 1) Transmettre le plus vite possible le maximum d’information et 2) Eviter les erreurs de transmission. Atmosphère : ondes électromagnétiques ou ondes Herteziennes. Cable coaxial, paire torsadée : signaux électriques (tensions, courants). Fibre optique : ondes optiques (lumière visible, infra-rouge,. . .). Source : C’est elle qui fournit le signal. Celui-ci peut être analogique (microphone,. . ..) ou discret (CD,....). Nous nous intéresserons aux communications dites "numériques" le signal est donc discret et converti en binaire (numérisation). La source fourni un message qui est une séquence de bits. Encodeur de source : Son rôle est de représenter le message sur un minimum de bits (compression de données). Ceci permettra de transmettre le maximum d’informations dans le minimum de temps. Source -> encodeur de source -> message Encodeur de canal : Il doit structurer le message pour permettre au récepteur de pallier aux erreurs de transmission. Cette modification du message génère un mot de code qui est une séquence de bits plus longue que celle du message. Cela peut se faire par simple adjonction de bits redondants mais aussi par des méthodes d’encodage plus élaborées. message -> encodeur de canal -> mot de code 5 / 48
  • 6. Problématique Modulateur : mot de code -> modulateur -> ondes Si (t) Modulation binaire : Le mot de code généré est une succession de "0" et de "1". Afin de transmettre l’information il est nécessaire de les transformer en un signal physique adapté au canal de transmission. Chaque signal élémentaire est appelé une forme d’onde. Ainsi 0 → S0(t) et 1 → S1(t). nous obtenons une modulation binaire c’est-à-dire faisant intervenir deux formes d’onde. Modulation M-ary : Plutôt que de transmettre le code bit par bit, il est possible de le transmettre par paquets de b bits. Nous aurons donc M = 2b paquets possibles ce qui nécessite M formes d’ondes Si (t) différentes. Démodulateur : Rôle inverse de celui du modulateur, il reçoit les ondes éventuellement perturbées et les transforme en paquets de bits pour reconstituer le code sur lequel peut se trouver des erreurs de transmission. Ondes Si (t) -> démodulateur -> mot de code Décodeur de canal : Grâce au codage il peut soit détecter une erreur de transmission et dans ce cas éventuellement réinterroger l’émetteur mais certains codages permettent dans une certaine mesure de détecter et de corriger les erreurs de transmission. En général les codes correcteurs ne peuvent pas tout corriger sinon ils demanderaient trop de bits redondants, ils se contentent de corriger les erreurs les plus probables. mot de code -> décodeur -> message Décodeur de source : Ayant la séquence binaire ou message associée à l’information, ce décodeur doit reconstituer l’information qui a été transmise. c’est la décompression. 6 / 48
  • 7. Problématique Problématique La description du système révèle bien la position du problème qui se résume en deux points contradictoires : Transmettre le plus vite possible le maximum d’informations : Peu de bits de codage Modulation astucieusement choisie Vitesse de transmission élevée : bon choix du canal Transmettre sans erreur : Augmenter le nombre de bits du codage Modulation bien choisie Bon choix d’un canal de transmission Chaque problème demande un compromis ! 7 / 48
  • 8. Problématique Problème de décodage au récepteur On peut schématiser le comportement du récepteur par un graphe qui montre comment les niveaux de tensions sont mappés en 0 ou 1. si le voltage reçu entre V0 et V0+V1 2 le symbole reçu est 0 sinon c’est un 1 8 / 48
  • 9. Modèle : Canal Binaire symétrique Plan 1 Problématique 2 Modèle : Canal Binaire symétrique 3 Capacité du canal et role du codage 4 Métriques 5 Pouvoir de détection et Pouvoir de Correction 6 Codes de bloc Linéaires 7 Code de Hamming 8 Code de Hadamard 9 / 48
  • 10. Modèle : Canal Binaire symétrique Canal binaire symétrique supposons que durant la transmission, le "1" est reçu et interprété comme un "0" et vice versa avec une probabilité p. p est appelé la probabilité d’erreur le canal dans ce cas est appelé canal binaire symétrique ce type de canal est très significatif quant à la modélisation d’un canal de transmission. 10 / 48
  • 11. Modèle : Canal Binaire symétrique Information Mutuelle I(X, Y) = H(X) − H(X/Y) I(X,Y) veut dire : Quel est notre incertitude sur X réduite en sachant Y ? I(X,Y) mesure aussi la similitude entre X et Y H(X /Y) est liée à l’existence d’une probabilité d’erreur de transmission. En généralisant cette notion, H(X/Y) est due à l’existence de bruit sur le canal et révèle le fait que celui-ci ne transmet pas parfois l’information. H(X/Y) est en quelque sorte une mesure de la quantité d’information perdue. I(X,Y) devient ainsi la quantité d’information correcte transmise par le canal. La capacité du canal doit s’entendre au sens de la capacité de transmission sans erreur. 11 / 48
  • 12. Modèle : Canal Binaire symétrique H(X/Y = yj) = m X i=1 p(xi/yj)log2( 1 p(xi/yj) ) H(X/Y) = m X i=1 H(X/Y = yj)p(yj) H(X, Y) = H(X) + H(Y/X) = H(Y) + H(X/Y) puisque p(xi, yj) = p(xi)p(yj/xi) = p(yj)p(xi/yj), donc I(X, Y) = I(Y, X) =⇒ l’information mutuelle est symétrique ! La formule de I(X,Y) est donné par : I(X, Y) = X i,j p(xi, yj)log( p(xi, yj) p(xi)p(yj) ) Pour un canal binaire symétrique, l’information mutuelle est donné par : I(X, Y) = 1 + (1 − p) · log(1 − p) + p · log(p) 12 / 48
  • 13. Modèle : Canal Binaire symétrique Puisqu’on a I(X, Y) = 1 + (1 − p) · log(1 − p) + p · log(p) = 1 − H(X) 1 si p = 0 ce qui veut dire pas d’erreur de transmission alors I(X, Y) = 1. Similitude parfaite entre les deux sources, la transmission se passe bien. H(X, Y) = 1. 2 si p = 0.5, pagaille complète lors de la transmission. Dans ce cas I(X, Y) = 0, plus du tout de similitude entre les deux sources. Tout se passe comme si les deux sources étaient indépendantes. 3 si p = 1, à nouveau I(X, Y) = 1. Les deux sources sont à nouveau tout à fait semblables. Le fait qu’il y a dans ce cas permutation du "0" et du "1" n’ayant pas d’importance. 13 / 48
  • 14. Capacité du canal et role du codage Plan 1 Problématique 2 Modèle : Canal Binaire symétrique 3 Capacité du canal et role du codage 4 Métriques 5 Pouvoir de détection et Pouvoir de Correction 6 Codes de bloc Linéaires 7 Code de Hamming 8 Code de Hadamard 14 / 48
  • 15. Capacité du canal et role du codage Capacité du canal L’information mutuelle peut etre redefinie en utilisant les probabilités conditionnelles qui définissent le canal : I(X, Y) = X i,j p(yj/xi) · p(xi) · log( p(yj/xi) p(xi) ) Les probabilités marginales {p(xi)} dépendent de la source d’entrée et donc du système de codage de canal utilisé. Nous pouvons rechercher un système de codage qui rende maximal cette quantité, c’est ce qui définit la capacité du canal : C = maxp(xi ){I(X, Y)} = max{H(X) − H(X/Y)} Si la cadence du canal est d’un symbole toute les Tc secondes, le débit maximum du canal sera C Tc bit/s. La capacité du canal doit s’entendre au sens de la capacité de transmission sans erreur. 15 / 48
  • 16. Capacité du canal et role du codage Role du codage canal Pour que la transmission soit performante, il faut fournir au récepteur la quantité d’information manquante qui est H(X/Y ). Pour cela il est imaginé d’introduire une redondance dans l’information qui permettra de détecter et de corriger les erreurs dues à la transmission. Exemples simples : Ajouter un bit de parité et, en cas d’erreur à la réception, interroger de nouveau l’émetteur. Transmettre l’information en trois exemplaires et, en cas de désaccord, faire confiance à la majorité. Ces méthodes proviennent d’une analyse empirique de la situation et, d’après le modèle de Shannon, elles ont pour effet de diminuer la quantité d’information perdue et donc d’augmenter la capacité du canal. Grâce à cette analyse, il est possible de mettre au point des méthodes de codage plus efficaces pour atteindre cet objectif. un codage de canal performant est d’autant plus nécessaire que le canal est bruité et perd de l’information. 16 / 48
  • 17. Capacité du canal et role du codage Théorème de Shannon A mathematical theory of communication. Octobre 1948 Soit un canal discret de capacité C et une source discrète d’entropie H. Puisque H(X/Y) = H(X) − C Theorème de shannon concernnat le codage canal 1 Si H(X) ≤ C, nous pouvons ajouter de l’information à H(X) par un système de codage judicieux de manière à que l’information de la source peut être transmise sur le canal avec une probabilité d’erreur aussi petite que l’on veut. 2 Si H(X) > C il y a de toute manière perte d’information et tout codage mal effectué peut aller dans le sens de l’augmentation de cette perte d’information. 17 / 48
  • 18. Capacité du canal et role du codage Transmettre de l’information sans erreur ? Shannon a montré theoriquement qu’on peut transmettre l’information (bits) à un taux de codage (débit) R < C avec une probabilité d’erreur tres faible Il a aussi montré que la transmission à un taux de codage (débit) R ≥ C va certainement incorporer des erreurs de transmissions son secret : coder un bloc de k-bits en un mot de code de n-bits (avec n>k) pour réduire le débit R = k/n le fait de coder un message de k-bits en un mot de code de n-bits s’appelle le codage canal 18 / 48
  • 19. Métriques Plan 1 Problématique 2 Modèle : Canal Binaire symétrique 3 Capacité du canal et role du codage 4 Métriques 5 Pouvoir de détection et Pouvoir de Correction 6 Codes de bloc Linéaires 7 Code de Hamming 8 Code de Hadamard 19 / 48
  • 20. Métriques Distance et poids de Hamming Soit x = [x1x2 . . . xn] et y = [y1y2 . . . yn] deux msg de longueur n. Définitions La distance de Hamming entre x et y est le nombre d(x, y) de composantes où x et y diffèrent. Le poids de Hamming de x est le nombre w(x) de composantes non nulles de x. Ex : Si x = 10110 et y = 00101, alors d(x, y) = 3 et w(x) = 3 et w(y) = 2. 20 / 48
  • 21. Métriques Poids d’un code Le poids Wi d’un mot de code Ci est par définition le nombre de caractères non nuls que contient ce mot. ex : 11001000 est de poids W=3 ex : 10011010 est de poids W=4 00000000 est de poids nul 21 / 48
  • 22. Métriques Distance de Hamming La distance de Hamming dij entre deux mots de code est le nombre de bits dont ils diffèrent. ex 11001000 et 10011010 ont une distance de 3. La distance minimale du code est le minimum de l’ensemble des distances entre codes : dmin = min{dij} la distance de Hamming entre un mot de code valide et erroné de e erreurs est e si on n’a pas de codage : les deux mots de codes "0" et "1" ont une distance egale à 1. donc une erreur change un code valide à un autre code valide ! On peut montrer que dmin = min{Wi} 22 / 48
  • 23. Métriques Distance de hamming du code à répétitions on veut coder de façon à que les mots de codes soient assez éloignés pour que les erreurs ne changent pas un code valide à un autre code valide ! 23 / 48
  • 24. Métriques Code correcteur d’erreurs Définition Un code correcteur d’erreurs est une technique de codage basée sur la redondance de l’information, destinée a détecter, voire corriger, les erreurs qui peuvent être générées par un canal de communication peu fiable. Le rôle du correcteur d’erreurs peut être limite à la simple détection (et localisation ) d’erreurs. La correction s’effectue alors par une nouvelle requête de transmission du message, ou seulement des parties erronées. ex TCP par sommes de contrôle (checksum) pour la vérification Cela peut se reveler insuffisant, ou inadaptée suivant le contexte (GSM par exemple) 24 / 48
  • 25. Métriques ex : code de parité Supposons que l’on ait des mots de 7 bits à envoyer (code ASCII par exemple), et que l’on s’intéresse simplement à la détection d’une erreur. Un moyen et de coder chacun des mots sur 8 bits, en ajoutant un 8eme bit, appelé bit de parité, de telle sorte que dans tous les mots le nombre de 1 soit pair. le message 1011001 est codé 10110010 et le message 0110100 est codé 01101001 permet de detecter un nb impair d’erreur ne permet pas de localiser donc de corriger les erreurs détéctés 25 / 48
  • 26. Métriques Paramètres d’un code(n,k) Codeur : Dispositif qui associe à une suite de k bits d’information une suite de n bits. Code : Un code est un ensemble de mots de n bits. Distance minimale d’un code C : dmin = min{d(x, y)/x, y ∈ C} on peut montrer que dmin = min{w(x)/x ∈ C et x 6= − → 0 } 26 / 48
  • 27. Pouvoir de détection et Pouvoir de Correction Plan 1 Problématique 2 Modèle : Canal Binaire symétrique 3 Capacité du canal et role du codage 4 Métriques 5 Pouvoir de détection et Pouvoir de Correction 6 Codes de bloc Linéaires 7 Code de Hamming 8 Code de Hadamard 27 / 48
  • 28. Pouvoir de détection et Pouvoir de Correction Distance de Hamming et pouvoir de détection/correction Messages de 4 bits : 16 messages possibles La distance de Hamming minimale dmin = 1 Aucune erreur ne peut être détecté ou corrigé On ne peut remarquer si une erreur s’est passée 28 / 48
  • 29. Pouvoir de détection et Pouvoir de Correction Distance de Hamming et pouvoir de détection/correction Messages de 4 bits + 1 bit de contrôle : 16 codes possibles représenté par 5 bits La distance de Hamming minimale dmin = 2 Une seule erreur peut être détectée aucune erreur ne peut être corrigée On sait qu’il y a une erreur mais on ne peut la localiser (corriger) 29 / 48
  • 30. Pouvoir de détection et Pouvoir de Correction Distance de Hamming et pouvoir de détection/correction Code de Hamming (7,4) : 4 bits de données + 3 bits contrôle La distance de Hamming minimale dmin = 3 Une seule erreur peut être détectée et corrigée les erreurs doubles sont confondu avec les erreurs simples : on peut détecter 2 erreurs mais on ne corr qu’une 30 / 48
  • 31. Pouvoir de détection et Pouvoir de Correction Pouvoir de détéction/pouvoir de correction Nb max des erreurs détectables : eD = dmin − 1 tous les erreurs appartenant à une sphere sont corrigeables tous les erreurs appartenant à l’intersection des spheres sont non corrigeables Donc Nb max des erreurs corrigeables : eC = E[1 2 (dmin − 1)] 31 / 48
  • 32. Codes de bloc Linéaires Plan 1 Problématique 2 Modèle : Canal Binaire symétrique 3 Capacité du canal et role du codage 4 Métriques 5 Pouvoir de détection et Pouvoir de Correction 6 Codes de bloc Linéaires 7 Code de Hamming 8 Code de Hadamard 32 / 48
  • 33. Codes de bloc Linéaires Algorithme de codage Codes de bloc (n,k) : un bloc de n-bits noté C = b0b1bn−k−1m0m1 . . . mk−1 construit à partir d’un message de k-bits noté m = m0m1 . . . mk−1. on peut note le code aussi comme code (n,k,d) avec d est la distance de hamming minimale. b consitués par n-k bits redondants ou bits de parité. b = b0b1 . . . bn−k−1 linéaire : soit deux codes Ci et Cj alors Ci + Cj = Ck est un mot de code le code "0" (les n bits à 0) est un mot de code dans chaque code (n,k). (parceque 1+1=0) codage : C = m × G G est la matrice génératrice de taille (k × n). Le code est dit : Systématique : Si G = [P Ik ] avec Ik est l’identité de taille (k × k). P est dite la matrice de parité de taille (k × n − k). Le code dans ce cas est formé des bits de parité suivis par les bits de message. Non-systématique si G = [P M] avec M quelconque de taille (k × k). 33 / 48
  • 34. Codes de bloc Linéaires Exemple code (7,4) Soit G =     1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1     donner les propriétés de ce code (n,k) ? donner toutes les possibilités du message m donner les mots de codes si b0b1b2 sont les bits redondants du mot de code, donner leurs formules en fonction des bits de message m0, m1, m2 34 / 48
  • 35. Codes de bloc Linéaires Détection des erreurs par syndrome Matrice de contrôle : H = [In−k PT ] avec In−k est l’identité de (n − k) × (n − k) et PT est la transposé de la matrice de parité P On peut vérifier facilement que G · HT = 0. H de l’exemple précédent est : H =   1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1   35 / 48
  • 36. Codes de bloc Linéaires Syndrome Pour chaque mot de code C : C · HT = m · G · HT = 0 si le mot de code est erroné, donc il s’écrit comme suit : Code reçu = Code emis + erreur =⇒ Y = C + E En effectuant le controle à la reception : S = Y · HT = C · HT + E · HT = E · HT Le syndrome S ne depend que de l’erreur commise et non du message ou le mot de code Remarque : Deux erreurs qui diffèrent d’un mot de code ont même syndrome ce theorème nous indique qu’il y a ambiguïté lors de la détection d’erreur 36 / 48
  • 37. Codes de bloc Linéaires Lien entre distance minimale et matrice de parité soit M = C · HT Chaque élément de la matrice M est une combinaison linéaire sur une ligne j de tous les éléments des colonnes =⇒ M est une combinaison linéaire des colonnes de la matrice H et cette combinaison linéaire est nulle. les colonnes de H sont linéairement dépendantes. Le nombre de colonnes intervenant dans la combinaison est égale au nombre de "1" du code Cm ce qui est le poids de Hamming du mot de code. La distance de Hamming du code étant le poids minimal de ce code =⇒ La distance minimale de Hamming dmin d’un code est égale au nombre minimal de colonnes de la matrice H dont la somme est nulle. Le nombre de colonnes de H linéairement indépendantes est dmin − 1 et le rang maximal de cette matrice est n − k ce qui établi la relation : dmin ≤ n − k + 1 37 / 48
  • 38. Codes de bloc Linéaires Correction des erreurs et distance de Hamming (revisitée) Si dmin est la distance de Hamming : détecter au plus t erreurs SSI dmin ≥ t + 1 corriger au plus t erreurs SSI dmin ≥ 2t + 1 Détecter au plus tD erreurs mais ne corriger qu’au plus tC erreurs avec tC < tD SSI dmin ≥ tC + tD + 1 38 / 48
  • 39. Codes de bloc Linéaires Algorithme de Correction des erreurs par syndrome 1 Reception d’un mot de code Y. 2 calcul du syndrome associe S = Y · HT . 3 construction d’une table d’erreur/syndrome par S = E · HT 4 avec la table d’erreurs, calcul de l’erreur la plus vraisemblable E∗ associée au syndrome. 5 calcul du mot de code le plus vraisemblable : C∗ = Y + E∗ 6 Extraction du message X∗ de C∗. 39 / 48
  • 40. Codes de bloc Linéaires exemple Code(5,2) avec G = 1 0 1 1 0 0 1 1 0 1 H est donc donnée par H =   1 0 0 1 0 0 1 0 0 1 0 0 1 1 1   Le syndrome est donc de longueur 5 − 2 = 3. On peut coder tous les erreurs simples (5) + le cas pas d’erreur. il reste deux combinaisons pour les erreurs doubles (2 = 2n−k − n − 1). Syndrome Erreur commentaire 000 00000 Pas d’erreur 001 00100 Erreur ds le bit 2 010 01000 Erreur ds le bit 1 011 00001 Erreur ds le bit 4 100 10000 Erreur ds le bit 0 101 00010 Erreur ds le bit 3 110 ? ? 111 ? ? 40 / 48
  • 41. Codes de bloc Linéaires le syndrome 110 peut être associé à une erreur double du type (bit 0 + bit 1) soit 11000 mais aussi à une erreur du type (bit 3 + bit 4) soit 00011. Il y a ici ambiguïté entre deux erreurs doubles. Pour le syndrome 001 associé à une erreur bit 2 il pourrait être associé à une erreur type ( bit 1 +bit 4 ) mais ici l’ambiguïté est entre une seule erreur simple et d’autres erreurs doubles, triples,. . . H a au plus trois colonnes linéairement indépendantes donc dmin = 3. donc eD = 2 et eC = 1 Si nous affectons la solution la plus vraisemblable, toutes les erreurs simples peuvent être corrigées. Les erreurs doubles, elles sont détectables mais nous pouvons soit les confondre entre elles, soit les confondre avec une erreur simple. Dans le second cas le maximum de vraisemblance corrige comme une erreur simple (c’est effectivement ce qui a la plus forte probabilité d’arriver ) et dans le premier elle tranche en faveur de la solution la plus probable qui, pour un code donné est toujours la même. Qu’arrive-t-il pour des erreurs triples ? Au sens du critère, elles sont toujours systématiquement confondues soit avec une erreur simple soit une erreur double, elles sont de ce fait non détectables et par la même non corrigeables. 41 / 48
  • 42. Codes de bloc Linéaires soit m = [1 0]. Le mot de code correspondant est C = m · G = [1 0] · 1 0 1 1 0 0 1 1 0 1 = [1 0 1 1 0] à la reception le bit n˚3 a été interprété par le récepteur d’une manière fausse. Donc Y = [1 0 1 0 0] Le récepteur calcule le syndrome associé : S = Y · HT = [1 0 1] Par la table d’erreur Le recepteur fait correspondre le syndrome calculé et trouve l’erreur la plus vraisemblable E∗ = [0 0 0 1 0] Correction : C∗ = Y + E∗ = [1 0 1 0 0] + [0 0 0 1 0] = [1 0 1 1 0] extraction du message : les k dernier bits de C∗ qui sont m∗ = [1 0] remarquer que S = Y · HT = E∗ · HT = [1 0 1] 42 / 48
  • 43. Codes de bloc Linéaires exemple Repeter la meme demarche pour erreur dans le bit n˚4 43 / 48
  • 44. Codes de bloc Linéaires exemple erreur dans le bit n˚0 et 1 : Y = [0 1 1 1 0] Syndrome S = Y · HT = [1 1 0] d’apres la table ceci correspond à E∗ = [1 1 0 0 0] (ou [0 0 0 1 1]). si par ex le recepteur choisi la deuxième possibilité d’erreur. C∗ = Y + E∗ = [0 1 1 1 0] + [0 0 0 1 1] = [0 1 1 0 1] et donc m∗ = [0 1] qui est different du message original avec ces exemple on voit que le code a un pouvoir de detection qui ne peut le dépasser et a un pouvoir de correction qui ne peut le dépasser aussi 44 / 48
  • 45. Code de Hamming Plan 1 Problématique 2 Modèle : Canal Binaire symétrique 3 Capacité du canal et role du codage 4 Métriques 5 Pouvoir de détection et Pouvoir de Correction 6 Codes de bloc Linéaires 7 Code de Hamming 8 Code de Hadamard 45 / 48
  • 46. Code de Hamming Les codes de Hamming sont des codes binaires qui ont la propriété : (n, k, dmin) = (2m − 1, 2m − 1 − m, 3) ex code (7,4,3) ; code (15,11,3) La matrice de contrôle de Hamming H est de taille (n − k × n) = (m × 2m − 1). Une colonne est donc constituée de m éléments binaires et nous avons 2m − 1 colonnes c’est-à-dire toutes les combinaisons possibles moins une (la combinaison 000... ). Ceci nous permet pour ces codes de construire très rapidement la matrice de contrôle H et d’en déduire la matrice de génération de code G. Commencer à remplir la matrice H en utilisant les combinaisons linéaires de m bits faisant apparaître la matrice In−k . Compléter cette matrice par les combinaisons de m bits non encore utilisées code 0 exclu. 46 / 48
  • 47. Code de Hadamard Plan 1 Problématique 2 Modèle : Canal Binaire symétrique 3 Capacité du canal et role du codage 4 Métriques 5 Pouvoir de détection et Pouvoir de Correction 6 Codes de bloc Linéaires 7 Code de Hamming 8 Code de Hadamard 47 / 48
  • 48. Code de Hadamard Les codes de Hadamard sont constitués par des matrices, par itération : M2n = Mn Mn Mn Mn avec Mn est la matrice complementaire de Mn M2 = 0 0 0 1 M4 =     0 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0     Les Matrices Mn ou Mn contiennent dans leurs lignes ou colonnes les 2n mots de codes. La structure de la matrice permet donc de détecter les erreurs de transmissions il est montré que dmin = n/2 48 / 48