Académique Documents
Professionnel Documents
Culture Documents
Codage Canal PDF
Codage Canal PDF
Rhouma Rhouma
https://sites.google.com/site/rhoouma
Avril 2015
1 / 48
Plan
1 Problématique
4 Métriques
7 Code de Hamming
8 Code de Hadamard
2 / 48
Problématique
Plan
1 Problématique
4 Métriques
7 Code de Hamming
8 Code de Hadamard
3 / 48
Problématique
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
6 / 48
Problématique
Problématique
7 / 48
Problématique
V 0+V 1
si le voltage reçu entre V 0 et 2 le symbole reçu est 0 sinon
c’est un 1
8 / 48
Modèle : Canal Binaire symétrique
Plan
1 Problématique
4 Métriques
7 Code de Hamming
8 Code de Hadamard
9 / 48
Modèle : Canal Binaire symétrique
10 / 48
Modèle : Canal Binaire symétrique
Information Mutuelle
11 / 48
Modèle : Canal Binaire symétrique
m
X 1
H(X /Y = yj ) = p(xi /yj )log2 ( )
p(xi /yj )
i=1
m
X
H(X /Y ) = H(X /Y = yj )p(yj )
i=1
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 :
X p(xi , yj )
I(X , Y ) = p(xi , yj )log( )
p(xi )p(yj )
i,j
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
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
4 Métriques
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 :
X p(yj /xi )
I(X , Y ) = p(yj /xi ) · p(xi ) · log( )
p(xi )
i,j
15 / 48
Capacité du canal et role du codage
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
17 / 48
Capacité du canal et role du codage
18 / 48
Métriques
Plan
1 Problématique
4 Métriques
7 Code de Hamming
8 Code de Hadamard
19 / 48
Métriques
20 / 48
Métriques
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
23 / 48
Métriques
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.
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
26 / 48
Pouvoir de détection et Pouvoir de Correction
Plan
1 Problématique
4 Métriques
7 Code de Hamming
8 Code de Hadamard
27 / 48
Pouvoir de détection et Pouvoir de Correction
28 / 48
Pouvoir de détection et Pouvoir de Correction
30 / 48
Pouvoir de détection et Pouvoir de Correction
tous les erreurs appartenant à l’intersection des spheres sont non corrigeables
31 / 48
Codes de bloc Linéaires
Plan
1 Problématique
4 Métriques
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 = b0 b1 bn−k −1 m0 m1 . . . mk −1 construit à partir d’un message de k-bits
noté m = m0 m1 . . . 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 = b0 b1 . . . 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
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 b0 b1 b2 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
Matrice de contrôle :
H = [In−k P T ]
avec In−k est l’identité de (n − k ) × (n − k ) et P T est la transposé
de la matrice de parité P
On peut vérifier facilement que G · H T = 0.
1 0 0 1 1 1 0
H de l’exemple précédent est : H = 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
38 / 48
Codes de bloc Linéaires
39 / 48
Codes de bloc Linéaires
exemple
1 0 1 1 0
Code(5,2) avec G =
0 1 1 0 1
1 0 0 1 0
H est donc donnée par H = 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
1 0 1 1 0
C = m · G = [1 0] · = [1 0 1 1 0]
0 1 1 0 1
à 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 · H T = [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 · H T = E ∗ · H T = [1 0 1]
42 / 48
Codes de bloc Linéaires
exemple
43 / 48
Codes de bloc Linéaires
exemple
44 / 48
Code de Hamming
Plan
1 Problématique
4 Métriques
7 Code de Hamming
8 Code de Hadamard
45 / 48
Code de Hamming
46 / 48
Code de Hadamard
Plan
1 Problématique
4 Métriques
7 Code de Hamming
8 Code de Hadamard
47 / 48
Code de Hadamard
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