Vous êtes sur la page 1sur 142

Université de Tébessa

Faculté de technologies
Département génie électrique
Master Réseaux et Télécommunications

Codage et compression
Unité d’enseignement : UEF 1.2.2
Matière 4 : Codage et Compression
VHS : 45h00 (Cours : 1h30, TD : 1h30)
Crédits : 4, Coefficient : 2

Chapitre 1. Notions fondamentales de codage source et codage canal

Chapitre 2. Codages de source entropique


Chapitre 3 . Codage du canal
Chapitre 4. Méthodes de compression
avec pertes 1
Chapitre 1. Notions fondamentales de codage source et
codage canal (2 Semaines)

- Définition, différence et Intérêt du codage canal et du codage source


- Source et codage source
- Canal et codage canal
- Notions sur le codage conjoint

2
Chapitre 1. Notions fondamentales

Information ?
Information c’est une entité physique jugée utile, elle peut être : son, voix, image ,
vidéo, texte (ensemble des caractères)

3
Chapitre 1. Notions fondamentales

Codage de source: attribution à chaque état d’information ou symbole un code binaire.


Codage de canal: attribution à chaque code binaire (séquence ) une information binaire
supplémentaire afin de contrôler l’intégrité de toute la trame.
Modulation: adaptation de signal issu de DTE au canal de transmission.

4
Chapitre 1. Notions fondamentales

Types de sources

5
Chapitre 1.

Notion de probabilité et redondance (occurrence)

La source émet un message → un ensemble des symboles (états) : X (xi, i=1 :N)

Ces symboles sont issus (codage de source)

P(xi) est la probabilité de la variable aléatoire xi, déduite aussi de nombre d’occurence

6
Chapitre 1.

Définition d’un canal:


Un canal de transmission est un moyen où se propage l’information.

Caractéristiques d’un canal:


Un canal se caractérise par:

• Bande passante: limitation de rapidité de modulation ( critère de Nyquist).


• Bruit additif ou impulsionnel: limitation de valence de signal ou capacité de
canal en termes de débit max ( relation Shannon Hartley), limitation de
capacité de canal en termes de codage (deuxième théorème de Shannon).
• Atténuation: l’affaiblissement d’amplitudes.

NB: ne pas confondre entre le critère de Nyquist pour la rapidité de modulation


max et le théorème de Shannon-Nyquist qui détermine la fréquence min
d’échantillonnage . Le premier est issu de la bande passante du canal et le
seconde est issu de la bande de spectre de signal.

Harry Nyquist : mathématicien suédois-américain (1889-1976).


Ralph Hartley: électronicien américain (1888-1970) 7
Chapitre 1

Principaux Types de canaux

Canal idéal : sans pertes, déterministe ou sans bruit

Canal discret stationnaire sans mémoire


Canal binaire symétrique (BSC)
Canal binaire à effacement (BEC)

Canal continu
Canal a bande passante limitée.

Canal Gaussien (bruit blanc gaussien additif, AWGN)

Canal de Rayleigh

Canaux parallèles et bruit corolés.

John W. Rayleigh :physicien britannique (1842-1919)


Carl Friedrich Gauss: physicien allemand (1777-1855) 8
Chapitre 1. Notions fondamentales

Codage de canal permet le contrôle d’intégrité de message contre les erreurs de


transmission, il s’agit d’ajouter un ou plusieurs bits à la séquence dans le but de
détecter seulement les erreurs; dans ce cas on l’appelle code détecteur ou de
détecter et corriger les erreurs dans ce cas on l’appelle code correcteur.

Codes correcteurs → codes en blocs (linéaires, cyclique ou non)


codes en treillis (convolutifs, récursif ou non)

9
Chapitre 1. Notions fondamentales

Poids de Hamming d’un message est le nombre de bits à un qu’il contient.


Distance de Hamming entre deux messages de même longueur est le nombre
des bits différents

la distance de Hamming entre 101010 et 111010 est 1 car ces deux mots


diffèrent seulement par la deuxième position.
La distance de Hamming entre 1010 et 0101 est 4 car ces deux mots diffèrent
par toutes les positions.
La distance de Hamming entre 1010 et 111010 n'est pas définie (et ne sera pas
considérée).

Richard Wesley Hamming est un mathématicien américain (1915-1998) 10


Chapitre 1. Notions fondamentales

Les contraintes de codage séparé :

• Il suppose la transmission de séquences de longueurs infinies avec une capacité


de calcul non bornée.
• les délais et le temps de codage et de décodage  sans limites ?
• Les canaux de transmission réels ne sont pas forcément stationnaires.
 
Codage conjoint :

Les techniques de paquétisation :

Il s’agit ramener les séquences compressées à longueurs variables à plusieurs


paquets de même longueur. Cette technique est appelée codage entropique résistant
aux erreurs (EREC).

11
Chapitre 2. Codages entropiques (2 Semaines)
- Rappels sur la théorie de l’information.
- Entropie et mesure de l’information
- Codage de Huffman - les versions adaptatives de Huffman et Shannon-Fano
- Le codage arithmétique
- Le codage LZW
- Le codage RLE
- Critères d’évaluation

12
Chapitre 2. Codages entropiques

Les états peuvent être :

équiprobables : même probabilité d’apparition ou statiquement même redondance.


Non équiprobables: probabilités d’apparition différentes

Équiprobable = codage de source de longueur fixe ou linéaire


Ex: 8 états équiprobables → chaque état a P=1/8 → log2(8) = 3 bits pour chaque état
Donc la quantité d’information est 3 bit/symbole

Non Équiprobable = codage de source de longueur variable ou non linéaire


optimisation de codage par compression sans perte
Ex: 8 états non équiprobables
P1= 0.5 → 1bit
p2=0.2 → 2 bits
P3=0.1 → 3 bits La longueur moyenne sous la probabilité est inférieure à 3
P4=0.05 → 5 bits bits
P5=0.05 → 5 bits ( l’entropie de Shannon).
P6=0.05 → 5 bits
P7=0.025 → 5 bits 13
P8=0.025 → 5 bits
Chapitre 2. Codages entropiques

Quantité d’information d’un état (d’un symbole)


  1
𝐼 ( 𝑥 𝑖 )=𝑙𝑜𝑔 2
( 𝑃 ( 𝑥𝑖 ) )
Quantité d’information moyenne (L’entropie de Shannon)
𝑁
  1
𝐻 ( 𝑋 )=∑ 𝑃 ( 𝑥𝑖 ) 𝑙𝑜𝑔 2
𝑖=1
( ) 𝑃(𝑥 𝑖)
0  ≤ 𝐻 ( 𝑋 ) ≤ 𝑙𝑜𝑔2 (𝑚) ,m est le nombre d’états

Exemple précédent:
m=8
Équiprobables : entropie H1= 3 bits/symbole
Non équiprobables : H2= 2.75 bits/symbole

Claude Shannon est un ingénieur en génie électrique et mathématicien américain (1916-2001)


14
Chapitre 2. Codages entropiques
  𝑁
Longueur moyenne d’un codage 𝑛´ =∑ 𝑝 ( 𝑥𝑖 ) 𝑛(𝑥𝑖) 𝑜  ù 𝑛 ( 𝑥𝑖 )=𝑐𝑒𝑖𝑙(𝐼 ( 𝑥𝑖 ))
𝑖=1

  𝐻 (𝑋 )
Redondance d’un codage 𝑟=1−
´𝑛
  𝐻 (𝑋 )
Efficacité d’un codage 𝐸𝑓𝑓 =
𝑛´

Débit de transmission 𝐷=𝑅


  . 𝐻 (𝑋) R=vitesse de transmission en symbole/seconde
ou rapidité de modulation sur le canal (bauds)

15
Chapitre 2. Codages entropiques

Entropie conjointe:

Considérons maintenant deux variables aléatoires A1 et A2, En utilisant la définition


de l’entropie, on peut définir une mesure de la quantité d’information moyenne du
couple (A1,A2). Cette mesure s’appelle l’entropie conjointe des deux variables
aléatoires A1 et A2, et est définie par

où pi,j est la probabilité conjointe des deux événements

16
Chapitre 2. Codages entropiques

Entropie conditionnelle:

On définit également l’entropie de A1 sachant A2 par

où pi|j est la probabilité conditionnelle de l’événement A1 si l’événement A2 est


survenu.

17
Chapitre 2. Codages entropiques

Information mutuelle :
on peut aussi associer une mesure de la quantité moyenne d’information partagée par les deux
variables précédentes. Cette mesure définit l’information mutuelle

18
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage directe de shannon: basé sur inégalité de Kraft-MacMilan
Une technique de codage directe consiste à associer à chaque état de la source un
nombre de bits ni tel que

exemple:

19
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage de Huffman:

Le principe du codage de Huffman repose sur la création d'une structure


d'arbre composé de nœuds. On recherche tout d'abord le nombre
d'occurrences (probabilités) de chaque état.

Chaque état constitue une des feuilles de l'arbre à laquelle on associe un


poids valant son nombre d'occurrences ou sa probabilité.

Puis l'arbre est créé suivant un principe simple : on associe à chaque fois les
deux nœuds de plus faibles poids pour donner un nœud dont le poids équivaut
à la somme des poids de ses fils jusqu'à n'en avoir plus qu'un, la racine. On
associe ensuite par exemple le code 0 à la branche de gauche et le code 1 à
la branche de droite.

David Albert Huffman (1925- 1999) informaticien américain 20


Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage de Huffman:
exemple:

21
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage de Shannon-Fano:
Le codage de Huffman a une approche ascendante, alors que celui de shannon-fano a
une approche descendante et son principe est l’inverse de codage de Huffman 

Son principe se déroule comme suivant:


1. Ranger les états du système par probabilités décroissantes.
2. Subdiviser les états du système en 2 groupes G0 et G1 de probabilités
voisines, sans modifier l’ordre dans lequel ils ont été rangés en 1.
3. Chaque groupe Gi est subdivisé en 2 sous-groupes Gi0 et Gi1 de
probabilités (notion d’enfants) aussi voisines que possibles, une fois encore
sans modifier l’ordre des états.
4. La procédure s’arrête lorsque chaque sous-groupe est constitué d’un
unique élément. L’indice du groupe donne le mot de code.

Robert Mario Fano ( 1917- 2016), informaticien américain-italien. 22


Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage de Shannon-Fano:
exemple:

On remarque que les performances (taux de compression) de Huffman et Shannon-fano sont


identiques

23
Chapitre 2. Codages entropiques

Inconvénients des méthodes Huffman et Shannon-fano :

• Quand le nombre des symboles (états) est très grand les deux algorithmes se
trouvent face aux calculs compliqués (Branches trop maillées).

• L’application est toujours orientée caractère et non pertinente pour l’aspect Bit.

24
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage arithmétique: la compression

Le codage arithmétique est utilisable pour les deux aspects ; caractère et Bit.
Il demande un tableau de probabilité déduit des statistiques (nombre d’occurrence
de différents états) qui comprend:
• La totalité des états possibles.
• Découper l’intervalle [0 ,1[ proportionnellement à toutes les probabilités.
• Modifier les bornes d’intervalle [0 ,1[ à chaque ajout d’un état à compresser en
exécutant les étapes suivantes:
• On enregistre la différence entre la borne supérieure (BS) et la borne
inférieure (BI). On note cette valeur BB.
• La nouvelle BS prend la valeur suivante : BI + BB * (BS de l’état ajouté)
• La nouvelle BI prend la valeur suivante : BI + BB * (BI de l’état ajouté)

• Obtenir un nombre flottant n1 dans le dernier intervalle, ce seul nombre


conjointement avec le tableau de probabilité présentent toute cette compression !!

25
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage arithmétique: la décompression

Pour la décompression on utilise:


• Le même tableau de probabilité avec son intervalle découpé.
• Le nombre flottant n1.
• La longueur totale de l’information codée.

Principe:
• Observer dans quel 'intervalle  se trouve le nombre n1, déduire l’état correspondant.
• Recalculer n2, tel que n2=(n1-Bi)/P, avec BI et P sont respectivement la borne inférieure et
la probabilité de l’état S1 déduit précédemment.
• Et ainsi de suite pour toute la longueur en calculant
na =(na-1- Bia-1)/Pa-1 .

26
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage arithmétique: exemple

Soit la séquence binaire à coder : 100110, pour cette séquence on applique l’algorithme de
compression arithmétique orienté bit c.-à-d. on voie l’information comme un train des bits
de deux états possibles (0,1). Donc le tableau des probabilités est :

On peut choisir n’importe quel nombre flottant dans le dernier intervalle, exemple n=0.6

27
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage arithmétique: exemple

28
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage Lempel-Ziv-Welch (LZW)

son principe est d’ajouter des chaînes de caractères au dictionnaire et attribuer des
index, ces index seront transmis au lieu les caractères originaux dont la longueur est
inférieure.

L’algorithme de codage se déroule comme suit:


1. Au début on établie un dictionnaire initial contenant tous les caractères individuels
( dans certains cas avec quelques chaînes ordonnées) et ses index.
2. Scanner la séquence des caractères à coder par chaîne de caractères, c à d caractère
actuel + caractère suivant (P+C).
3. Vérifier si cette chaîne P+C est dans le dictionnaire ou non ?
si non:
- ajouter la chaîne au dictionnaire et indexez-la suivant l’ordre
croissant.
- coder cette chaîne par l’index de son préfixe ( la chaîne sans le dernier
caractère)
- continuer le scannage de dernier caractère .
Si oui :
- étaler la chaîne au caractère suivant et répéter l’étape 3.
29
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
décodage Lempel-Ziv-Welch (LZW)

L’algorithme de décodage se déroule comme :


1. Au début on dispose le dictionnaire initial indexés.
2. On décode le caractère ou la chaîne de la séquence reçue selon les index de
dictionnaire.
si la chaîne (ou caractère) décodée précédente+ le premier caractère de la chaîne
actuel ne figure pas dans le dictionnaire, ajoutez y la avec un index ordonné.

30
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Lempel-Ziv-Welch (LZW): exemple codage

31
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Lempel-Ziv-Welch (LZW): exemple décodage

32
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Lempel-Ziv-Welch (LZW): élargissement de dictionnaire initial

LZW avec un dictionnaire initial des caractères individuels seulement n’aime


pas les longues succession d’un même caractère au début de la séquence.
Effectivement, le décodage peut échouer à certaine étape à cause de manque
d’un index dans le dictionnaire établi lors de la décompression. Ce problème
manifeste plus si le nombre d’états est très restreint, par exemple
l’application de l’algorithme pour une séquence binaire (orienté bits) dont les
états sont 0 ou 1.

Pour cette raison qu’il est recommandé d’élargir le dictionnaire initial avec
des chaînes ( 2,3,4….bits) bien ordonnées et indexées. Plus que ce
dictionnaire est long plus le taux de compression est meilleur.

À noter aussi que le dictionnaire est convenu non transmis (ça fiat partie du
protocole de communication).

33
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Lempel-Ziv-Welch (LZW): élargissement de dictionnaire initial

34
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Run Length Encoding (RLE).

C’est un codage orienté beaucoup plus bits que caractères, et pertinent aux données
binaires (image binaire comme le bitmap) que les textes, car l’occurrence dans les textes est
très faible.
Son principe est de remplacer le caractère qui se répète n fois par un index n @ caractère .
Exemple: AAAAAABBBAACCCC → 6@A 3@B 2@A 4@C

L’index ajouté occupe lui aussi un espace selon l’occurrence, il faut donc que la longueur de
code après la compression soit petite que celle avant, si non la compression est inutile. C’est
pour cette raison qu’il est plus adapté au données binaires de forte occurrence.
Exemple: 111100000110000001→ 4@1 5@0 2@1 6@0 1@1.
Comme le nombre d’états en binaire est deux , on peut mieux compresser l’information en
supprimant l’apparition de 0 et 1, car il sont alternés . Sans oublier de mentionner la
première état dans la séquence ( la séquence commence par 0 ou 1).
Exemple: 111100000110000001→ 1 4 5 2 6 1

35
Chapitre 3 : Codage du canal
- Principales notions et définitions
- Type de canaux
- Efficacité, redondance et Capacité du canal
- Codage du canal et deuxième théorème de Shannon. Stratégies du codage du canal
- Codage correcteur d’erreurs (codes de Hamming, codes linéaires, codes cycliques,
codes de Reed-Solomon …etc)
- Les turbo-codes et code LDPC
- Performances d’un codeur
- Exemples d’application

36
Chapitre 3.

Définition:
Un canal de transmission est un moyen où se propage l’information.

Caractéristiques:
Un canal se caractérise par:

• Bande passante: limitation de rapidité de modulation ( critère de Nyquist).


• Bruit additif ou impulsionnel: limitation de valence de signal ou capacité de
canal en termes de débit max ( relation Shannon Hartley), limitation de
capacité de canal en termes de codage (deuxième théorème de Shannon).
• Atténuation: l’affaiblissement d’amplitudes.

NB: ne pas confondre entre le critère de Nyquist pour la rapidité de modulation


max et le théorème de Shannon-Nyquist qui détermine la fréquence min
d’échantillonnage . Le premier est issu de la bande passante du canal et le
seconde est issu de la bande de spectre de signal.

Harry Nyquist : mathématicien suédois-américain (1889-1976).


Ralph Hartley: électronicien américain (1888-1970) 37
Chapitre 3.

Principaux Types de canaux

Canal idéal : sans pertes, déterministe ou sans bruit

Canal discret stationnaire sans mémoire


Canal binaire symétrique (BSC)
Canal binaire à effacement (BEC)

Canal continu
Canal a bande passante limitée.

Canal Gaussien (bruit blanc gaussien additif, AWGN)

Canal de Rayleigh

Canaux parallèles et bruit colorée.

John W. Rayleigh :physicien britannique (1842-1919)


Carl Friedrich Gauss: physicien allemand (1777-1855) 38
Chapitre 3.

canal discret sans mémoire (CDSM) peut être présenté par un statistique d’entrée X
(ensemble d’états d’entrées xi) et de sortie Y (ensemble d’états de sortie yi)

À chaque période d’échantillonnage, on fournie au canal un symbole xi appartenant à


X, le canal fournie à la sortie un symbole yi appartenant à Y

Le canal est dit discret si les symboles de X et de Y sont finis.

Le canal est dit sans mémoire si le symbole fournie à la sortie ne dépend que de dernier
symbole d’entrée indépendamment de tous les symboles précédents.

Chaque correspondance possible entrée/sortie est obtenue par la probabilité


conditionnelle P(yi│xi), c à d avoir yi en sortie si xi est transmis sur le canal

39
Chapitre 3.

Matrice de transition d’un canal:


On définit un canal de façon complète en spécifiant l’ensemble de ses probabilités de
transition. Le canal présenté précédemment peut être défini par la matrice de probabilités
de transition P(yi│xi),

Propriétés:

40
Chapitre 3.

Si l’on présente P(X) sous forme d’une matrice diagonale on obtient:

Avec [P(X,Y)] est la matrice des probabilités conjointes dont chaque élément P(xi,yi)
est la probabilité conjointe de transmettre xi et de recevoir yi

41
Chapitre 3.
Types des canaux: canal sans pertes

Si la matrice d’un canal ne possède qu’un élément non nul par colonne, on dit qu’il
s’agit d’un canal sans pertes.

42
Chapitre 3.
Types des canaux: canal déterministe

Si la matrice de canal ne possède qu’un élément non nul par ligne, on dit qu’il s’agit d’un
canal déterministe.

43
Chapitre 3.
Types des canaux: canal sans bruit ou sans erreur.

On dit qu’un canal est sans erreur s’il est à la fois sans pertes et déterministe. Dans ce cas
sa matrice possède un seul élément par ligne et par colonne et cet élément ne peut être
qu’unitaire (égale à 1), ainsi le vecteur d’entré et de sortie sont de même dimension.

NB: le canal d’une matrice diagonale à 1 est un cas particulier d’un canal sans erreur.
44
Chapitre 3.
Types des canaux: canal binaire symétrique BSC.

Un canal binaire est un canal qui possède deux états (x1= 0 et x2 = 1) en entrée et deux à
la sortie (y1 = 0 et y2 = 1).
Ce canal est dit symétrique parce que la probabilité de recevoir un 1 si l’on a émis un 0 et
identique à la probabilité de recevoir un 0 si l’on a émis un 1. cette probabilité est dite
d’erreur.

Donc chaque bit peut être transmis correctement avec probabilité 1-P, ou s’altère (subit une
altération) avec probabilité d’erreur P.

45
Chapitre 3.
Types des canaux: canal binaire à effacement BEC.

Ce canal est dit à effacement parce que chaque état transmis peut être reçue correctement
avec probabilité 1-P, ou être effacée avec probabilité d’erreur P sans altération.

46
Chapitre 3.
La capacité du canal.

La capacité par symbole.


Elle est tout simplement:

avec

Il s’agit donc de l’information mutuelle max, autrement dit la quantité d’information relative
à la probabilité max.

47
Chapitre 3.
La capacité du canal.

La capacité par seconde.

Si r est le débit du canal en symbole par seconde (rapidité de modulation), la capacité max
d’information du canal est r .Cs

Sans oublier que la rapidité de modulation max qui peut être supporté par un canal est
définie par le critère de Nyquist :

r max= 2 BP

48
Chapitre 3.

La redondance d’un canal.

Rc= Cs - I(X;Y) = 1- I(X;Y)/ Cs

L’efficacité d’un canal.

EFFc = I(X;Y)/ Cs

49
Chapitre 3.
Exemples de la capacité pour des canaux remarquables.

Canal sans pertes

Canal déterministe

Canal sans erreur Car le nombre d’états de X (m) = Y (n)

Canal BSC

Canal BEC Transition correcte

Canal affecté par bruit blanc gaussien additif AWGN

relation Shannon Hartley

50
Chapitre 3.

Notions fondamentales:

Lorsque un mot d’information de m bits est émis par un DTE le DCE lui ajoute
une séquence de r bits de redondance (contrôle), c’est le codage de canal noté C
(n,m) avec n=m+r.

La redondance de codage est :   𝑟


𝑟𝑒𝑑𝑜𝑛𝑑𝑎𝑛𝑐𝑒 =
𝑛

Le rendement de codage est:   𝑚


𝑟𝑒𝑛𝑑𝑒𝑚𝑒𝑛𝑡 =
𝑟

51
Chapitre 3.

Notions fondamentales:

Les grandes classes de codage de canal:

• Codes détecteurs et codes correcteurs.


• Codes linéaires et codes non-linéaires.
• Codes en blocs et codes convolutifs.
• Codes cycliques et codes non-cycliques.

52
Chapitre 3.

Notions fondamentales:

Le système binaire est un corps Galois et fini F2 donc il a les propriétés suivantes:

Pour chaque symbole a et b appartenant à ce corps a+b et a.b le sont aussi.

La commutativité: a+b=b+a
L’associativité: (a+b)+c=a+(b+c), (a.b).c=a.(b.c)
La distributivité: a(b+c)=ab+ac

Le moins égale au plus: +a = -a

Pour un polynôme P(X) dont les coefficients sont dans F2 on a: P(X2 ) = P(X)2
En réalité cette dernière est une propriété pour tous les corps Fq i.e. P(Xq ) = P(X)q

NB: l’addition en binaire de corps fini est modulo 2, sa réalisation pratique est à
l’aide de porte OU exclusif.

53
Chapitre 3.

Notions fondamentales:

Présentation d’une séquence binaire par un polynôme

Si l’on prend le poids faible LSB à gauche et le poids fort MSB à droite

01101 0*X0 + 1*X1 + 1*X2 + 0*X3 + 1*X4

Division polynômiale modulo 2:

54
Chapitre 3.

Notions fondamentales:

Poids de Hamming
m=1011→PH=3
m=0011101→PH=4

Distance de Hamming
m1 = 1011, m2 = 1010 → dH(m1,m2) = 1
m1 = 1011, m2 = 1000 → dH(m1,m2) = 2

Propriétés de dH
dH(m1,m2) ≥ 0
dH(m1,m1)=0
dH(m1,m2)= dH(m2,m1)
dH(m1,m3)≤ dH(m1,m2)+ dH(m2,m3)

55
Chapitre 3.

Notions fondamentales:

Matrice unitaire
C’est une matrice carrée qui possède des éléments nuls et seul le diagonal qui contient
des ‘1’

  1 0 0 0

[
1
𝐼3 = 0
0
0
1
0
0
]
0   , 𝐼 4=
1 [0
0
0
1
0
0
0
1
0
0
0
1
]
Vr. Ir =Vr

56
Chapitre 3.

Notions fondamentales:

Addition matricielle
Se fait uniquement entre deux matrices de même dimension, dans le corps fini
l’addition est toujours modulo 2.

 1 0 1 1 1 1 0 1 0

[ 0
0
1
0 0][
1 + 0
1
0
0 1][
1 = 0
1
1
0
0
1 ]

57
Chapitre 3.

Notions fondamentales:

produit matriciel
Se fait uniquement entre deux matrices dont le nombre de colonnes de la première
égale au nombre de ligne de la seconde.

1 0 0 1
][ ][
 1 0 1 0 1 0 1
[1 1 0
. 0
1
0
1
0
0
1 =
0
1 0 0 0 ]

58
Chapitre 3.

Notions fondamentales:

produit Hadamard
Se fait uniquement entre deux matrices de même dimension, il s’agit d’une
multiplication élément par élément.

 1 0 1 1 1 1 1 0 1

[0
0
1
0 0 ][
1 • 0
1
0
0 1][
1 = 0
0
0
0
1
0 ]

Jacques Salomon Hadamard, mathématicien français (1865-1963) 59


Chapitre 3.

Notions fondamentales:
produit Kronecker (cas particulier d’un produit de tensoriel)
Ce produit entre deux matrices est défini comme:

Leopold Kronecker ( 1823 - 1891) est un mathématicien allemand. 60


Chapitre 3.

Notions fondamentales:

Matrice transposée
Il s’agit d’une inversion entre les lignes et le colonnes.

0 1
 
𝐴=
0
1 [ 1
1
1
0 ] 𝑇
,𝐴 = 1
1 [ ] 1
0

61
Chapitre 3.

Notions fondamentales:

Matrices orthogonales
On dit que deux matrices sont orthogonales si le produit matriciel entre la première et la
transposée de la seconde donne une matrice nulle.

62
Chapitre 3.

Notions fondamentales:

Matrice génératrice de code


On appelle une matrice génératrice G toute matrice dont le produit matriciel entre un
mot de m bits et cette matrice de dimension (m,n) nous donne un mot-code de n bits,
avec n= m+r.

Mot-code = mot. [G]

63
Chapitre 3.

Notions fondamentales:

Codage non-systématique
Après la génération du mot-code par la matrice génératrice G, si les bits du mot sont
noyés avec ceux du code (de redondance ou encore de contrôle) on dit que ce codage du
canal est non-systématique.

 Exemple:

Mot=[1 0 1 1]
Mot.G = [0 1 1 1 1 1 0]
G=

64
Chapitre 3.

Notions fondamentales:

Codage systématique
On dit qu’un codage est systématique si le mot-code obtenu contient une partie du mot
bien séparée de celle de code. Donc sa matrice génératrice doit prendre la forme
G=[ P Im ] ou [Im P].

 Exemple:

Mot=[1 0 1 1]

G=

65
Chapitre 3.

Notions fondamentales:

NB
Il est possible de rendre une matrice génératrice du code non-systématique à une autre
systématique par permutation ou addition entre les différentes lignes si le codage est
linéaire.

66
Chapitre 3.

Notions fondamentales:

Matrice de contrôle
On appelle une matrice de contrôle H (ou encore de décodage) toute matrice vérifiant
l’intégrité du mot-code par multiplication. Si le produit mot-code fois H T donne un
vecteur nul la transmission est jugée sans erreur

  (

Ou

Le mot-code est de n bits et HT est de dimension (n, r)

NB: G. HT = [0] (elles sont orthogonales)

67
Chapitre 3.

Notions fondamentales:

Matrice de contrôle d’un codage systématique

Pour un codage du canal systématique la matrice de contrôle H peut être déduite de la


matrice génératrice G tel que

 Exemple

G=

68
Chapitre 3.

Notions fondamentales:

L’erreur et le syndrome
Le mot-code reçu peut être erroné (erreur de transmission) suite à une ou plusieurs
altérations lors du canal. On le note (mot-code)e où:
(mot-code)e = (mot-code) + (e), avec (e) est le vecteur d’erreur (position d’erreur).
Tous ces vecteur sont de n bit (m+r bits).

Exemple:

69
Chapitre 3.

Notions fondamentales:

L’erreur et le syndrome

On appelle un syndrome le vecteur (s) de r bits aussi où:


0
  +(e)

  ( e ) =0 ⇔ ( s ) =0
si

Donc un syndrome nul veut dire que le mot-code reçu égale au mot-code transmis
et la transmission est considérée sans erreur.

70
Chapitre 3.
Notions fondamentales:
L’erreur et le syndrome
Plusieurs vecteurs d’erreur peuvent avoir même syndrome. On prend le même exemple de
matrice H ci-dessus:

Vecteur d’erreur (e) syndrome


0000000 000
0000001 001
0000010 110
0000100 010 C’est pour cette raison que certaines
0001000 100 erreurs sont corrigeables ,d’autres sont
seulement détectables alors que
0010000 001
d’autres passent inaperçues
0100000 010
1000000 111
0000011 111
0000101 011
0001001 101
0010001 000
71
Chapitre 3.

Notions fondamentales:

La règle de capacité de correction et de détection

• Un code de distance minimale dmin entre ces mot-codes peut détecter (dmin-1) erreurs et
en corrige (dmin-1)/2 .
• La distance minimale dmin entre les mots codes est égale au poids minimal des mot-codes.

Donc
• Toutes les erreurs de vecteurs ayant un poids inférieure ou égale à (d min-1) peuvent être
détectées.
• Toutes les erreurs de vecteurs ayant un poids inférieure ou égale à Floor ((dmin-1)/2 )
peuvent être corrigées.

NB: Floor (x) est le plus grand nombre entier inférieur ou égale à x.
exemple Floor(2.5)=2, Floor (3.5)=3.

72
Chapitre 3.

Codes remarquables: codage de parité unidimensionnelle


(code somme modulo 2)

C’est un code en blocs linéaire Il s’agit d’ajouter à la suite binaire un bit de parité, ce
bit vaut 1 si le nombre des 1 est impaire et vaut 0 si le nombre des 1 est paire.
Autrement dit ajouter la somme modulo 2 des 1

La matrice de codage de parité pour un mot m bits est sous la forme: [  I m VC 1m ]


Avec Im matrice unitaire de m, et vc1m vecteur colonne à un de m éléments

Et la matrice de contrôle (décodage ) est : [VC1 m+1]


Exemple: pour un mot 7 bits nous avons:
Matrice de codage Matrice de contrôle

73
Chapitre 3.

Codes remarquables: codage de parité unidimensionnelle

L’avantage : un seul bit est ajouté,


Les inconvénients : Il ne détecte qu’un nombre impair des bits erroné.
Il ne corrige pas les erreurs car il ne peut pas les localiser.
Circuit de codage de parité 1D

Circuit de décodage de parité 1D

74
Chapitre 3.

Codes remarquables: codage de parité bidimensionnelle ou croisée

La séquence à coder est mise sous forme d’une matrice, puis on code toutes les lignes et
toutes les colonnes par la parité 1D, si une erreur se produit on peut facilement localiser
le bit erroné par l’intersection ligne-colonne de parités erronées détectées.

75
Chapitre 3.

Codes remarquables: codage de parité bidimensionnelle ou croisée

L’avantage :

ce codage peut détecter et corriger plusieurs erreurs si ces dernières sont de ligne et
colonne différentes.

Les inconvénients :

• il peut détecter mais il ne peut pas corriger les erreurs produites sur même ligne ou
même colonne si ces erreurs sont de nombre impair.

• le délai de codage et décodage est important, il faut recevoir tout le bloc avant de
se procéder à la localisation et la correction.

76
Chapitre 3.
Codes remarquables: Codage de la somme modulo q

C’est un code en blocs linéaire , il est très simple, on calcule la somme modulo a des
« un » dans le mot de m bits et la valeur obtenue sera insérée dans le champs de contrôle
de r bits où : r= ceil (log2(m)). Donc modulo (q= 2r )

Ceil(x) est le plus petit nombre entier supérieur à x.


Au niveau de la réception c’est l’opération inverse qui sera appliquée, si la somme effectuée
ne correspond pas le champs de contrôle la trame se considère comme erronée .
la réaction vis-à-vis l’erreur est de rejeter la trame et demander la retransmission; c’est un
codage détecteur et pas auto-correcteur.

Le circuit électronique:

77
Chapitre 3.
Codes remarquables: Codage de la somme et produit modulo q

Le code précédent est un code détecteur, cependant une amélioration peut être achevée
pour le rendre capable à corriger une erreur. Cette amélioration consiste à ajouter un
autre champ de somme pondérée (notée produit P) selon la position de bit.

S = somme des bits du mot (I1 + I2 + ….+Im).


P=somme des bits avec pondération (I1 x 1+ I2 x 2+…+Im x m)

À la réception :
• on calcule de la même manière S’ et P’
• La valeur de l’erreur est: S’-S.
• La position de l’erreur est: (P’-P)/(S’-S).

Inconvénient majeur des codes somme et somme/produit modulo a est la supposition


que le champ de contrôle (les bits de redondance) ne subissent pas d’erreur ???

78
Chapitre 3.
Codes remarquables: Codage à répétition

Un code à répétition est un code qui attribue r bits de contrôle similaires


au bit de mot, donc il s’agit d’un code C(n, 1) correcteur de floor ((n-1)/2)
erreurs

La correction est très naïve et basée sur la majorité i.e. les bit de plus que
la moitié sont considérés comme correct. l’inconvénient majeur est la
forte redondance ( r/n).

Exemple:
C(3,1) code le 0 par 000 et le 1 par 111. il peut corriger une erreur.

Si l’on reçois:
• 001 le mot correct est 0 (majoritaire dans la séquence).
• 011 le mot correct est 1 (majoritaire dans la séquence).

79
Chapitre 3.
Codes remarquables: Codes de Hamming

C’est code en bloc linéaire, dans ce codage les colonnes de la matrice de contrôle H T sont
les tous les nombres les valeurs binaires ordonnées de 1 à n, la longueur du mot-code
n’est alors plus quelconque mais elle est n=2k – 1 (le zéro est exclu comme valeur de
colonne). De ce fait la matrice génératrice n’est pas aussi quelconque mais elle doit être
définie par la dimension C(n,m) = (2k – 1, 2k – 1 – k).

la distance minimale d’un code de Hamming est de 3, donc :


• Il détecte 2 erreurs .
• Il en corrige une.

80
Chapitre 3.
Codes remarquables: Codes de Hamming

Exemple code Hamming C(7,4)


  0 0 1 1

[ ]
0 1 0 2
0 1 1 3
𝑇
𝐻 = 1 0 0 4
1 0 1 5
1 1 0 6
1 1 1 7
Pour faciliter les calculs algébriques , les positions des r symboles de contrôle c i
seront choisis selon les lignes de HT qui ne contiennent qu’un seul «  1»

 Ce qui donne le système à résoudre suivant:

81
Chapitre 3.
Codes remarquables: Codes de Hamming

D’après les équations précédentes on peut déduire la matrice génératrice du code


Hamming C(7,4) telle que:

  G=

• Le mot-code est sous forme : (C1 C2 I1 C3 I2 I3 I4),


• Ce codage n’est pas systématique.
• Correcteur d’une seule erreur: Le syndrome correspond directement à la position
d’erreur avec MSB à gauche .
• Détecteur de deux erreurs : syndrome non nul.

82
Chapitre 3.
Codes remarquables: Codes de Hamming

Le circuit électronique: code Hamming C(7,4)

83
Chapitre 3.
Codes remarquables: Codes de Hamming étendus.

À partir du code de Hamming C (2k – 1, 2k – 1 – k) de distance 3, on peut


construire un autre code plus optimal de C(2k , 2k – 1 – k) et de distance 4 dit
code de Hamming étendu.
Le codage consiste à ajouter au mot-code ordinaire C(7,4) un bit de parité.

La matrice de contrôle HT est obtenue par:


• Adjonction d’une colonne ne contenant que des « 1 ».
• Adjonction d’une ligne ne contenant que des « 0 » et un seul « 1 » comme
dernier bit.
Exemple: code Hamming étendu C(8,4) construit à partir du C(7,4)

  0 0 1 1
0 0 1

[ ][ ]
0 1 0 0 1 0 1
0 1 1 0 1 1 1
𝑇 1 0 0 1
𝐻 = 1 0 0 ⟶
1 0 1 1
1 0 1
1 1 0 1
1 1 0
1 1 1 1
1 1 1
0 0 0 1
Hamming Hamming étendu
C(7,4) C(8,4) 84
Chapitre 3.
Codes remarquables: Codes de Hamming étendus.

Le calcule de syndrome est obtenu de même manière que le code ordinaire mais
le vecteur possède un bit de plus par rapport au code ordinaire soit r+1.
Ce bit supplémentaire indique la parité des erreurs, si les 3 bits de position
différent de 0 et si le bit de parité est 1 donc il existe une erreur, et si le bit de
parité est 0 il existe deux erreurs.

Exemple : supposant que les syndromes obtenus sont:


• 000 0: aucune erreur ( la parité ici est évidement 0).
• 010 1: il existe une erreur à la position (010) soit (2).
• 010 0: il existe deux erreurs (détection sans correction).

85
Chapitre 3.
Codes remarquables: Codes Hadamard.

Les matrices de Hadamard :


On appelle une matrice de Hadamard d’ordre n toute matrice Hn avec des élément 1
et -1 tels que

Exemple :

86
• Une matrice Hadamard n x n avec n > 2 existe seulement si 4 est un diviseur de n.
• tant que n’importe quelles deux lignes de Hn doivent être orthogonales.
• Les matrices obtenues par la permutation des lignes ou des colonnes sont aussi des
matrices Hadamard mais il se peut qu’elles ne soient pas symétriques.
• - Hn est aussi matrice Hadamard
• Généralement les codes Hadamard utilisent des matrices H n=4m pour m ≤ 7, car
l’orthogonalité d’une matrice à 1 et -1 n’est plus assurée pour un rang supérieur .
matrices Hadamard et produit Kronecker:
Pour n > 4 et dans le but de construire une matrice Hadamard d’ordre n en utilisant le
produit de Kronecker, n doit être multiple de 8. par exemple H12 existe mais elle ne peut
pas être construite à partir d’aucune autre matrice Hadamard.

Les matrices Hadamard-Sylvester :


une classe des matrices Hadamard sont appelées Hadamard-Sylvester , elles sont de n
multiple 8 et vérifient:
Autrement dit n est de puissance de 2 c.à.d 8, 16, 32…
Codes Hadamard
Matrice de contrôle
Toute matrice Hadamard-sylvester H n peut être une matrice de contrôle d’un code Hadamard
(bien sûr : n est multiple 8 et de puissance 2). Sa dimension est (n,n).

Matrice génératrice
La matrice génératrice est celle qui donne des mot-codes orthogonaux et symétriques. Parmi
elles on trouve tout simplement les matrices chronogramme .
Elle de dimension (log2(n)+1,n) avec n est de puissance 2. Le code est donc C (n,log2(n)+1).

Exemple :
Pour l’exemple précédent les mot-codes obtenus sont:

NB: les mot-codes peuvent être aussi déduits de la matrice de contrôle Hn où les lignes
et leurs inverses présentent directement ces mot-codes.
pour le même exemple C(8,4) on a
Algorithme de décodage Hadamard

  définit tout d’abord


On
• Un mot-code binaire, ses éléments sont 1 et 0.
• Un mot-code w dont ses éléments sont 1 et -1.
• un vecteur ek qui correspond à un vecteur nul contenant un ‘1’dans la position
k, ou tout simplement la kième ligne d’une matrice unitaire.
• hk est la kième ligne (ou colonne) de Hn.
• s est syndrome et max(‫׀‬s‫ )׀‬est le plus grand élément de s en valeur absolue.
Algorithme de décodage Hadamard

 L’algorithme de décodage se déroule comme suit :


1- transformer en w, en appliquant :, tout simplement changer les 0 par -1.
2- Calculer le syndrome : .
3- Si
E
si max(s) ˃0 Le mot-code est correcte et il correspond aussi à h k. (k ici est la
position de ce max
si max(s) ˂ 0 Le mot-code est correcte et il correspond aussi à –h k

Et Si max(‫׀‬s‫( ≥ )׀‬n/2+2) et les autres éléments ≤ (n/2-2)


si max(s) ˃0 Le mot-code corrigé correspond à hk avec k est la position du max.
si max(s) ˂ 0 Le mot-code corrigé correspond à -hk

Si il y a plusieurs max et max(‫׀‬s‫( ˂ )׀‬n/2+2)


Le mot –code est erroné mais on ne peut pas le corriger car le poids de
Hamming de l’erreur dépasse m-1
Fin
Exemples sur le décodage
C(8,4), m= 2, le code corrige une erreur.
Chapitre 3.
Codes remarquables: Codes Reed-Muller.

Définition:
Est une classe des codes en bloc linéaire, il a été développé par les mathématiciens
David E. Muller et  Irving S. Reed. Noté RM(R,L) avec R est l’ordre (R=0,1,2,…L)
et 2L est la longueur du code.

Matrice génératrice:
La matrice génératrice du code RM dépend du l’ordre R
• Pour R=0
G(0,L) = [111…111] (la longueur est 2L ).
• Pour R=1,2,3…,L-1

  ( 𝑅 , 𝐿 )= 𝐺 ( 𝑅 , 𝐿− 1) 𝐺 ( 𝑅 , 𝐿− 1)
𝐺
[ Ø 𝐺 ( 𝑅 −1 , 𝐿− 1) ]
• Pour R=L
  ( 𝐿 , 𝐿 ) = 𝐺 ( 𝐿 −1)
𝐺
[
000 … 01 ]
David Eugene Muller (né en 1924 mort en 2008 à Las ) et Irving Stoy Reed (né en 1923
mort le 2012)  mathématiciens et informaticiens américains,
Exemples sur G(R,L)
 
NB:
• RM(0,L) sont des codes C(2L ,1) , codes à répétition purs.
• RM(1,L) sont des codes avec m est les bits du mot, codes avec grande distance
minimale.
• RM(L-2,L) sont des codes Hamming étendu.et RM(1,L) est son duel. Exemple:
RM(2,4) est C(16,11) Hamming étendu et RM(1,4) est C(16,5). On remarque
que les deux sont duels car 11+5=16. autre exemple RM(1,3) est C(8,4) et son
duel est lui-même.
• RM(1,2) est C(4,3), code de parité.
 
Codes Reed-Muller de premier ordre RM(1,L)
Sont des codes

Matrice génératrice
G de m lignes et colonnes

  ( 1, 𝐿 ) = 𝐺 (1 , 𝐿− 1) 𝐺 (1 , 𝐿 −1)
𝐺
[ Ø 𝐺 (0 , 𝐿− 1) ]
Matrices de contrôles
Les matrices de contrôle de RM 1ier ordre sont construite à partir des matrices Hadamard
2ième ordre et le produit Kronecker.

donc pour décoder un RM(1,L) on doit utiliser L matrices de contrôle.


Exemples sur matrices de contrôle:

L=2 L=3
Algorithme de décodage Reed-Muller
  1- transformer en w, remplacer les 0 par -1.

2- pour j=1,2…,L calculer

3- trouver la position P du plus grand nombre (en valeur absolue) dans wL . À


noter que la position 0 existe pour cet algorithme car il s’agit d’une conversion
binaire.
4-trouver
  la valeur v(P) qui est une conversion binaire de P en 2L bits et en MSB à
droite.

5- si le nombre trouvé en (3) est positif


le mot corrigé est [1 v(P)]
sinon
le mot corrigé est [0 v(P)]
Fin
Exemples de décodage Reed-Muller
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

Définition
Les codes cycliques font Partie des codes linéaires en blocs, à rappeler qu’un code
est cyclique si l’on permute le dernier bit avec le premier (ou le contraire) on obtient
un mot-code appartenant au même tableau de codage.

102
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

 Propriétés de l’algèbre modulo (Xn-1)


Soit g(x) un polynôme normalisé c à d un polynôme dont le plus haut degré a un
coefficient 1
g(x) = g0 + g1X + g2X2 + … + Xr, gr = 1
donc :
1- Tout polynôme g(x) de degré r = n-m et qui divise (Xn-1) engendre un code
cyclique C(n,m).

2- g(x) est un facteur de décomposition de (Xn-1) et il s’écrit : (Xn-1) = g(x).h(x)


où h(x) de degré m est utilisé pour le décodage.

3- Tout polynôme m(x) de degré (m-1) multiplié par g(x) appartient au code et
réciproque :

4-Pour un code CRC (n,m) il n’existe qu’un seul polynôme g(x) avec ces
propriétés, ce polynôme est appelé le polynôme générateur.

103
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

Codage CRC non-systématique (directe)


Le codage CRC non systématique se fait directement en multipliant le mot m(x)
par le polynôme générateur g(x).

Exemple :
Soit le PG g(x) = 1 + X + X3, donc les codes ajoutés sont de r = 3 bits. On veut
coder des mots de m = 4 bits, donc les polynômes représentant ces mot sont de
degré m-1 = 3. le codage est C(7,4)

On remarque qu’il s’agit d’un codage non-systématique c à d les bits du


mot et du code sont chevauchés (voir les diapos 63-66) 104
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

Codage CRC systématique


Le codage CRC systématique se fait suivant les procédures suivantes :
Multiplier m(x) par Xr ce qui revient à ajouter r zéros après le bit de poids faible du
m(x), le polynôme résultant est alors de n = m + r termes.
Diviser en modulo 2 (Xr.m(x) ) par g(x) ce qui donne un reste noté C(x) pour le
code.
Former v(x) en ajoutant C(x) au Xr.m(x) (cette addition est en réalité une
soustraction mais vue que le système est en modulo 2 ces deux opérations sont
identiques).

105
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

Exemple :

106
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

 CRC sous forme matricielle

Non-systématique :
La matrice génératrice d’un code CRC non-systématique est obtenue telle que:

À rappeler que les mots à coder sont de m bits ce qui donne une matrice de dimension
(m, n) car g(x) est normalisé et de degré r. ainsi les mot-codes sont générés par m(x).G
(voir diapo 64)

Systématique :
La matrice génératrice d’un code CRC systématique est obtenue par des opérations
linéaires modulo 2 (addition, soustraction ou permutation) entre les lignes de la matrice
non-systématique précédente dans le but de la rendre sous la forme [P (m,r) Im] ou [Im
P(m,r)] (voir diapo 64 et 65).

107
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

Calcule du syndrome et décodage


Le syndrome du code CRC correspond au reste de la division de polynôme associé
au mot-code v(x) par le PG g(x). Pour la forme matricielle ce syndrome est le
vecteur issu de v(x).HT avec H est la matrice de contrôle (voir diapo 67-68).

Matrice
  de contrôle de CRC non-systématique
Soit h(x) le second facteur de décomposition de (Xn-1) : Xn-1= g(x).h(x)
La matrice de contrôle H est :

Mais il faut que les polynômes xa h(x) soient pris en ordre inverse que xag(x), c à d si
xag(x) sont mis selon un MSB à gauche xa h(x) doivent être en MSB à droite.

Autrement dit si G est écrite selon MSB droite (décalage vers la droite aussi) H T sera
écrite selon MSB haut (décalage de bas vers le haut). Si G est selon MSB gauche H T sera
selon MSB bas.

108
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

 Matrice de contrôle de CRC systématique

Il existe deux méthodes pour calculer la matrice de contrôle d’un codage CRC systématique.
• À partir de la matrice génératrice systématique G comme il est montré dans la diapo 68.

• À partir du PG g(x) tel que : la ième ligne de HT est le reste r i-1(x) de la division de
Xi-1 par g(x) soit Xi-1= g(x).qi-1(x) + r i-1(x)

Exemple

109
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

Circuit de codage CRC non-systématique

exemple

On a 7 coups d’horloge

110
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

Circuit de codage CRC systématique

111
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).

Circuit de décodage CRC systématique

112
Chapitre 3.
Codes remarquables: Codes BCH.

Le nom BCH vient de ses inventeurs Bose, Chaudhuri, Hocquenghem.


Dans les codes cycliques ordinaires la distance minimale est calculée par n(n-1)/2
combinaisons alors que par les BCH cette distance est directement déduite du
polynôme générateur g(x). Il peut corriger t erreurs selon le nombre des polynômes
minimaux concaténés.

Raj Chandra Bose (1901 –1987)  mathématicien Indio-Américain


Dwijendra Kumar Ray-Chaudhuri (1933) mathématicien américain
Alexis Hocquenghem  (1908 – 1990) mathématicien Français.

113
Chapitre 3.
Codes remarquables: Codes BCH.

Détermination des codes cycliques de longueur impaire

114
Chapitre 3.
Codes remarquables: Codes BCH.

115
Chapitre 3.
Codes remarquables: Codes BCH.

116
Chapitre 3.
Codes remarquables: Codes BCH.

117
Chapitre 3.
Codes remarquables: Codes BCH.

118
Chapitre 3.
Codes remarquables: Codes BCH.

119
Chapitre 3.
Codes remarquables: Codes BCH.

120
Chapitre 3.
Codes remarquables: Codes BCH.

121
Chapitre 3.
Codes remarquables: Codes BCH.

122
Chapitre 3.
Codes remarquables: Codes BCH.

123
Chapitre 3.
Codes remarquables: Codes BCH primitifs.

124
Chapitre 3.
Codes remarquables: Codes BCH primitifs.

125
Chapitre 3.
Codes remarquables: Codes BCH primitifs.

126
Chapitre 3.
Codes remarquables: Codes BCH primitifs.

polynômes aux racines primitives pour n = 7

127
Chapitre 3.
Codes remarquables: Codes BCH primitifs.

128
Chapitre 3.
Codes remarquables: Codes BCH primitifs.

polynômes aux racines primitives pour n = 15

Question : déduisez la table d’addition des polynômes aux racines


primitives pour n = 15
Réponse: voir le TD n3 .

129
Chapitre 3.
Codes remarquables: Codes BCH primitifs.

polynômes aux racines primitives pour n = 31

130
Chapitre 3.
Codes remarquables: Codes BCH primitifs.

Les classes cyclotomiques pour n = 31

131
Chapitre 3.
Codes remarquables: Codes BCH primitifs.

132
133
134
BCH pour n = 31

135
BCH pour n = 31

136
BCH pour n = 31

137
décodage BCH: algorithme de Peterson, Gorenstein et Zierler.

138
décodage BCH: algorithme de Peterson, Gorenstein et Zierler.

139
décodage BCH: algorithme de Peterson, Gorenstein et Zierler.

Exemple :

140
décodage BCH: algorithme de Peterson, Gorenstein et Zierler.

141
Codes Reed-Solomon

142

Vous aimerez peut-être aussi