0% ont trouvé ce document utile (0 vote)
53 vues4 pages

Cours 3

Le document traite des codes correcteurs d'erreurs utilisés dans divers canaux de communication, en présentant différentes familles de codes comme les codes de Hamming et les codes cycliques. Il explique le codage par blocs, la détection et la correction d'erreurs, ainsi que le deuxième théorème de Shannon concernant la capacité des canaux. Enfin, il aborde des concepts tels que la distance de Hamming et les boules de Hamming pour illustrer la performance des codes dans la correction d'erreurs.

Transféré par

sansosangare
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
53 vues4 pages

Cours 3

Le document traite des codes correcteurs d'erreurs utilisés dans divers canaux de communication, en présentant différentes familles de codes comme les codes de Hamming et les codes cycliques. Il explique le codage par blocs, la détection et la correction d'erreurs, ainsi que le deuxième théorème de Shannon concernant la capacité des canaux. Enfin, il aborde des concepts tels que la distance de Hamming et les boules de Hamming pour illustrer la performance des codes dans la correction d'erreurs.

Transféré par

sansosangare
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

D ES CODES HYPER UTILIS ÉS

I on les rencontre partout dès lors que le canal est bruité

du flash-code au satellite, en passant par le G SM, les C D, les


D VD, l’A DSL, le W I -F I ...

I on distingue différentes familles de codes correcteurs :

I les codes de répétition


I les codes linéaires (Hamming, Golay)
3 – Codes correcteurs – codes de Hamming I les codes cycliques (B CH, Reed-Solomon dont C IRC)
I les codes convolutifs
I les turbo-codes

I la plupart de ces codes utilisent des polynômes ou de l’algèbre


linéaire
I des techniques permettent d’améliorer encore et toujours ces
codes : extension, entrelacement, croisement et concaténation.

C ODAGE PAR BLOCS D ÉTECTION ET CORRECTION D ’ ERREURS

I le codage par blocs commence par découper un message binaire en blocs


de {0, 1}k
I on code ensuite bloc par bloc et on transmet dans un canal bruité I on dispose de l’ensemble C des mots du code
I si le bloc reçu diffère du bloc émis, il y a eu erreur I un message m codé devient égal à un c = c1 ... cn de C et est envoyé par le canal
I le codage va consister en un ajout de redondance de taille r I le récepteur reçoit c0 = c10 ... cn0
I on parle alors de (n, k)-code avec n = k + r I si c0 est un mot de code de C, on estime que c0 est sans erreur et on le décode
I les images de {0, 1}k par le code sont appelées les mots de code naturellement en m
I sinon, il y a détection d’une erreur et l’ensemble V des mots de code les plus
il s’agit de codes à longueur fixe donc de codes préfixes (i.e. instantannés) proches de c0 est considéré :
l’injectivité de la fonction de codage suffit à garantir la non-ambiguı̈té du
code si V = {v} est singleton, on corrige c0 en v puis on décode
sinon, on peut corriger de façon plus hasardeuse par rapport à un des mots
I le rendement R d’un (n, k)-code est égal à de code de V avant de décoder

k I si la correction n’est pas possible, la retransmission (ARQ) est effective


R=
n

Exemple
I la redondance vise à permettre la détection d’erreurs et éventuellement la
Bits de parité 2D (cf. TD no 2)
correction
D EUXI ÈME TH ÉOR ÈME DE S HANNON C ANAL BSC
I Canal Binaire Symétrique (Binary Symmetric Channel)
X est la v.a. d’entrée du canal et Y celle de sortie
I p correspond à la probabilité de recevoir 1 alors que 0 a été émis ou,
I H (X) : entropie de la source X à l’entrée du canal symétriquement, de recevoir 0 alors que 1 a été émis
I l’entropie conditionnelle H (X/Y) traduit la perte d’information entre X à I si p = 1/2 : la capacité du canal devient nulle et un tel canal est inutilisable
l’entrée et Y à la sortie du canal
I si p < 1/2, le théorème assure qu’il existe un (n, k)-code permettant de
c’est ce qu’il reste encore à découvrir sur X alors qu’on a reçu Y
transmettre sans erreur sur un canal de capacité non nulle
I la capacité du canal est la quantité maximale d’information sur l’entrée I cela dit, le rendement du code est limité par la capacité du canal.
effectivement transmise par le canal

C = max H (X) H (X/Y)


p

I Deuxième théorème de Shannon 0 1 p 0


Soit un canal de capacité C . Pour tout # > 0, il existe au moins un (n, k)-code de
rendement R = nk et de probabilité d’erreur p < # ssi : p

0R<C p
si H (X/Y) = 0 : la source n’apprend rien de plus que la sortie du canal, c’est que le canal est fiable 1 1
si l’entropie H (X) est maximale et celle de H (X/Y) aussi : la capacité devient nulle et la
transmission impossible
1 p

TAUX D ’ ERREUR C ODES C RC


I Codes de Redondance Cyclique (Cyclic Redundancy Check) inventés en 1961
I utilisés dans les réseaux informatiques (satellites, clef W EP, G SM, formats zip et
rar etc)
I Ordres de grandeur du taux d’erreur I un mot binaire m = mk 1 ... m0 est représenté par un polynôme Pm :
k 1

ligne taux d’erreur Pm = Â = mi xi


i=0
Disquette 10 9 : à 5Mo/s, 3 bits erronés/mn
I un tel code est caractérisé par un polynôme générateur Pg de degré r :
CD-ROM optique 10 5 : 7ko erronés sur 700 Mo
DAT audio 10 5 : à 48 kHz, 2 erreurs/s r 1

Mémoires à semi-conducteurs < 10 9 Pg = xr + Â gi xi


i=0
Liaison téléphonique entre 10 4 et 10 7
I m codé par c = mk 1 ... m0 cr 1 ... c0 où cr 1 ...c0 représente le reste de la division
Télécommande infrarouge 10 12
euclidienne de xr . Pm par Pg :
Fibre optique 10 9
Satellite 10 6 (Voyager), 10 11 (TDMA) Pc = Pm . xr + (Pm . xr mod Pg )
ADSL 10 3 à 10 9
I à la réception, on contrôle que Pc mod Pg = 0 (à défaut, l’ARQ opère)
Réseau informatique 10 12
(In : Théorie des codes, Dunod, 2007)
I le décodage consiste à retirer les r bits de redondance.

Exemple m = 10110 correspond à Pm = x4 + x2 + x


si Pg = x2 + 1 alors xr . Pm = x2 . (x4 + x2 + x) = x6 + x4 + x3
comme (x6 + x4 + x3 ) mod x2 + 1 = x (cf. division de polynôme) donc le mot m est codé
en c = 1011010.
C ODES LIN ÉAIRES : G ÉN ÉRALIT ÉS C ODES DE H AMMING (1950)

I ce sont des codes de canal

I ils sont basés sur de l’algèbre linéaire I les codes de Hamming sont emblématiques des codes linéaires

I ces codes sont linéaires car l’ensemble de mots du code forment I un message binaire M est augmenté d’une redondance de r bits
un sous-espace vectoriel I la dimension du code est n = 2r 1
I la longueur des mots du code est fixe et s’appelle la dimension
I la taille des messages d’origine est donc k =n r
I ce sont des codes correcteurs d’erreurs
I la matrice génératrice G est une (k, n)-matrice
I pour coder ou décoder, on utilise la seule matrice génératrice G
I la matrice de contrôle H est une (r, n)-matrice
I pour détecter une erreur et la réparer, on utilise la matrice de
I les vecteurs-colonnes de H sont les entiers en binaire de 1 à n
contrôle H
dans n’importe quel ordre
I le code est entièrement spécifié par l’une ou l’autre de ces deux
I un code de Hamming détecte et corrige 1 erreur.
matrices
I la somme de deux mots du code reste un mot du code

E XEMPLE : UN CODE H7,4 E XEMPLE ( SUITE ) : CODAGE ET D ÉCODAGE


I on définit la matrice génératrice G de l’application linéaire f :
f (x1 , x2 , x3 , x4 ) = (x1 + x2 + x4 , x1 + x3 + x4 , x1 , x2 + x3 + x4 , x2 , x3 , x4 )
I à l’issue du codage de source, on groupe la sortie binaire par paquets de
0 1
1 1 1 0 0 0 0 longueur 4
B 1 0 0 1 1 0 0 C
G=B C
@ 0 1 0 1 0 1 0 A I soit le paquet-message M = (1001) à encoder
1 1 0 1 0 0 1
I on code M en un message codé C
I par permutation des colonnes on fait apparaı̂tre la matrice Id4 :
0 1 0 1 C = M . G = (0011001)
1 1 0 1 0 0 0 1 1 0
B 1 0 1 0 1 0 0 C B 1 0 1 C
G0 = C. Id4 = B
@ 0
C avec C = B C
1 1 0 0 1 0 A @ 0 1 1 A
1 1 1 0 0 0 1 1 1 1
I on envoie C au récepteur qui reçoit le message reçu R
I en prenant H 0 = (Id3 t C) on obtient que : H 0 . t G0 = [0]3,4 I pour détecter une éventuelle erreur, il contrôle le message R :
✓ t ◆
C
H 0 . t G0 = (Id3 t C). t (C Id4 ) = (Id3 t C). t Id = (Id3 . t C) + (t C. Id4 ) = [0]3,4
4 H . t R = [0]r,1 ?
0 1
1 0 0 1 1 0 1
H0 = @ 0 1 0 1 0 1 1 A I si oui, il peut espérer que le message codé est bien C = (0011001)
0 0 1 0 1 1 1
I en l’absence d’erreur, il décode C en M conformément à G :
I on défait la permutation sur les colonnes pour obtenir la matrice de contrôle H :
0 1 M = p3,5,6,7 (C) = (1001)
1 0 1 0 1 0 1
H=@ 0 1 1 0 0 1 1 A
0 0 0 1 1 1 1
D ISTANCE ET POIDS DE H AMMING B OULES DE H AMMING

Soient x et y deux mots binaires de longueur n Soit x un mot binaire de longueur n.


I distance de Hamming entre x = x1 . . . xn et y = y1 . . . yn : I boule de centre x et de rayon e avec 0 en:

dH (x, y) = card({i, 1  i  n et xi 6= yi }) Be (x) = {z : z 2 {0, 1}n , dH (x, z)  e}

Ce sont les mots binaires de longueur n qui ne diffèrent pas


C’est le nombre de positions où 2 mots binaires diffèrent de x sur plus de e positions.
I poids de Hamming du mot x :
I nombre d’éléments de la boule de centre x et de rayon e :
wH (x) = dH (0, x) = card({i, 1  i  n et xi = 1}) ✓ ◆
e
n
| Be (x)| = Â
i=0
i
C’est la distance du mot x au mot (0, . . . , 0), elle coı̈ncide avec le
nombre de 1 dans x
Exemple Exemple
x = (0, 1, 1, 0, 1, 1, 0) et y = (1, 1, 1, 0, 0, 1, 1) donnent dH (x, y) = 3, wH (x) = 4 et La boule de centre x = (0, 1, 1, 0, 1, 1, 0) et de rayon 2 contient z = (0, 1, 1, 0, 0, 1, 1) mais
wH ( y ) = 5 pas y = (1, 1, 1, 0, 0, 1, 1). Cette boule contient Â2i=0 (7i ) = 1 + 7 + 21 = 29 éléments.

D ÉTECTION D ’ ERREUR ET CORRECTION U NE MULTITUDE DE CODES CORRECTEURS


I un code de Hamming détecte et corrige 1 erreur due au bruit
I la matrice de contrôle a pour rôle de vérifier que le message reçu R n’a
pas été altéré, il doit vérifier : Le code du Minitel est le code de Hamming (128, 120, 3)
H . t R = [0]r,1 15 octets transmis plus 1 octet de redondance (taux de 0,93%)
, R =C
I sinon, une erreur a altéré C et le syndrome S de l’erreur est :
En plus de ceux étudiés, voici les codes correcteurs les plus classiques :
S = H . t R 6 = [0] I codes de Reed-Solomon (codes CIRC des CD audio)

I dans H, il existe forcément un vecteur-colonne Hi avec 1  i  n tel I codes de Golay


que : I codes de Reed-Muller
S = Hi I codes convolutifs
I on en déduit que l’erreur a porté sur le ieme bit de C et on peut corriger R I etc
en C
I les codes de Hamming sont des codes linéaires parfaits

en effet, les boules centrées sur les mots de code forment une A suivre ...
partition de l’ensemble des suites binaires de longueur n

Vous aimerez peut-être aussi