Académique Documents
Professionnel Documents
Culture Documents
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
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
4
Chapitre 1. Notions fondamentales
Types de sources
5
Chapitre 1.
La source émet un message → un ensemble des symboles (états) : X (xi, i=1 :N)
P(xi) est la probabilité de la variable aléatoire xi, déduite aussi de nombre d’occurence
6
Chapitre 1.
Canal continu
Canal a bande passante limitée.
Canal de Rayleigh
9
Chapitre 1. Notions fondamentales
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
Exemple précédent:
m=8
Équiprobables : entropie H1= 3 bits/symbole
Non équiprobables : H2= 2.75 bits/symbole
𝐻 (𝑋 )
Redondance d’un codage 𝑟=1−
´𝑛
𝐻 (𝑋 )
Efficacité d’un codage 𝐸𝑓𝑓 =
𝑛´
15
Chapitre 2. Codages entropiques
Entropie conjointe:
16
Chapitre 2. Codages entropiques
Entropie conditionnelle:
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:
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.
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
23
Chapitre 2. Codages entropiques
• 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é)
25
Chapitre 2. Codages entropiques
Compression sans pertes, longueur variable
Codage arithmétique: la décompression
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.
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
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:
Canal continu
Canal a bande passante limitée.
Canal de Rayleigh
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)
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.
39
Chapitre 3.
Propriétés:
40
Chapitre 3.
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.
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.
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.
EFFc = I(X;Y)/ Cs
49
Chapitre 3.
Exemples de la capacité pour des canaux remarquables.
Canal déterministe
Canal BSC
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.
51
Chapitre 3.
Notions fondamentales:
52
Chapitre 3.
Notions fondamentales:
Le système binaire est un corps Galois et fini F2 donc il a les propriétés suivantes:
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
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:
Si l’on prend le poids faible LSB à gauche et le poids fort MSB à droite
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 ]
Notions fondamentales:
produit Kronecker (cas particulier d’un produit de tensoriel)
Ce produit entre deux matrices est défini comme:
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:
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
67
Chapitre 3.
Notions fondamentales:
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
( 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:
Notions fondamentales:
• 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.
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
73
Chapitre 3.
74
Chapitre 3.
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.
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 )
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.
À 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).
78
Chapitre 3.
Codes remarquables: Codage à répétition
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).
80
Chapitre 3.
Codes remarquables: Codes de Hamming
[ ]
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»
81
Chapitre 3.
Codes remarquables: Codes de Hamming
G=
82
Chapitre 3.
Codes remarquables: Codes de Hamming
83
Chapitre 3.
Codes remarquables: Codes de Hamming étendus.
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.
85
Chapitre 3.
Codes remarquables: Codes Hadamard.
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.
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é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.
L=2 L=3
Algorithme de décodage Reed-Muller
1- transformer en w, remplacer les 0 par -1.
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).
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).
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)
105
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).
Exemple :
106
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).
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).
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).
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).
exemple
On a 7 coups d’horloge
110
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).
111
Chapitre 3.
Codes remarquables: Codes cycliques (CRC).
112
Chapitre 3.
Codes remarquables: Codes BCH.
113
Chapitre 3.
Codes remarquables: Codes BCH.
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.
127
Chapitre 3.
Codes remarquables: Codes BCH primitifs.
128
Chapitre 3.
Codes remarquables: Codes BCH primitifs.
129
Chapitre 3.
Codes remarquables: Codes BCH primitifs.
130
Chapitre 3.
Codes remarquables: Codes BCH primitifs.
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