You are on page 1of 145

Premire partie

Introduction au codage de source et


au codage de canal
c 2010 HEIG-VD.
1
Table des matires
I Introduction au codage de source et au codage de canal 1
1 Introduction au cours de Tlcommunications Numriques 1
1.1 Elments dun systme de communication numrique . . . . . . . 1
1.2 Fonction du codage de source . . . . . . . . . . . . . . . . . . . . 2
1.3 Le canal de communication . . . . . . . . . . . . . . . . . . . . . 4
1.4 Les imperfections du canal de communication . . . . . . . . . . . 6
1.5 Fonction du codage de canal . . . . . . . . . . . . . . . . . . . . 16
1.6 Fonction du modulateur numrique . . . . . . . . . . . . . . . . . 16
1.7 Fonction du dmodulateur . . . . . . . . . . . . . . . . . . . . . 17
1.8 Fonction du dcodage de canal . . . . . . . . . . . . . . . . . . . 17
1.9 Fonction du dcodage de source . . . . . . . . . . . . . . . . . . 18
1.10 Plan du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2 Notions de la thorie de linformation 19
2.1 Information=Surprise . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Comment mesurer linformation ? . . . . . . . . . . . . . . . . . 20
2.2.1 Exemple 1 . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.2 Exemple 2 . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Entropie=Moyenne de linformation . . . . . . . . . . . . . . . . 22
2.3.1 Exemple 3 . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.2 Remarque historique :-) . . . . . . . . . . . . . . . . . . 24
3 Codage de Source 25
3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.1 Codes longueur constante . . . . . . . . . . . . . . . . 26
3.1.2 Codes longueur variable . . . . . . . . . . . . . . . . . 26
3.1.3 Dcodage unique et dcodage instantan . . . . . . . . . 27
3.1.4 Longueur moyenne des mots . . . . . . . . . . . . . . . . 28
3.1.5 Ingalit de Kraft-McMillan . . . . . . . . . . . . . . . . 28
3.1.6 Capacit, efcacit et redondance du code . . . . . . . . . 28
3.2 Codage de Shannon-Fanno . . . . . . . . . . . . . . . . . . . . . 30
3.3 Codage binaire de Huffman . . . . . . . . . . . . . . . . . . . . . 32
3.4 Algorithme de Lempel-Ziv . . . . . . . . . . . . . . . . . . . . . 34
c 2010 HEIG-VD.
3
TABLE DES MATIRES TABLE DES MATIRES
3.4.1 Codage de type Lempel-Ziv . . . . . . . . . . . . . . . . 34
3.4.2 Dcodage avec lalgorithme Lempel-Ziv . . . . . . . . . . 36
3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4 Codes dtecteurs et correcteurs derreur 43
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2 Prliminaires pour les codes linaires par blocs . . . . . . . . . . 44
4.2.1 Champ de Galois CG(2) . . . . . . . . . . . . . . . . . . 44
4.2.2 Distance de Hamming . . . . . . . . . . . . . . . . . . . 45
4.2.3 Matrice dlments binaires . . . . . . . . . . . . . . . . 46
4.3 Principe gnral des codes dtecteurs-correcteurs . . . . . . . . . 48
4.3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.2 Capacit de dtection dun code . . . . . . . . . . . . . . 49
4.3.3 Capacit de correction dun code . . . . . . . . . . . . . . 50
4.3.4 Rendement dun code . . . . . . . . . . . . . . . . . . . 51
4.4 Codes linaires par blocs (n, k) . . . . . . . . . . . . . . . . . . 51
4.4.1 Principe et proprits . . . . . . . . . . . . . . . . . . . . 51
4.4.2 Codes blocs gnrs par des matrices systmatiques . . . 53
4.5 Dtection derreur avec un code linaire par bloc . . . . . . . . . 54
4.6 Correction derreurs avec les codes blocs linaires . . . . . . . . . 56
4.7 Code de Hamming . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5 Dtection et correction derreur par codes polynmiaux cycliques 61
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2 Proprits fondamentales des codes cycliques . . . . . . . . . . . 62
5.3 Encodage dun code cyclique (n, k) sous forme systmatique . . 64
5.4 Dcodage dun code cyclique (n, k) . . . . . . . . . . . . . . . . 66
5.5 Ralisation dun encodage de code cyclique . . . . . . . . . . . . 67
5.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5.2 Prliminaires . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5.3 Circuit de division . . . . . . . . . . . . . . . . . . . . . 68
5.5.4 Codeur dun code cyclique . . . . . . . . . . . . . . . . . 70
5.5.5 Ralisation matrielle du dcodage dun code cyclique sys-
tmatique . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.6 Proprits des codes polynmiaux (cycliques ou non) . . . . . . . 72
5.7 Quelques polynmes gnrateurs normaliss . . . . . . . . . . . . 73
5.7.1 Le code CCITT V.41 . . . . . . . . . . . . . . . . . . . . 73
5.7.2 Le code CRC-16 . . . . . . . . . . . . . . . . . . . . . . 74
5.7.3 Le code CRC-12 . . . . . . . . . . . . . . . . . . . . . . 74
5.7.4 Le code ARPA . . . . . . . . . . . . . . . . . . . . . . . 74
5.7.5 Le code ETHERNET . . . . . . . . . . . . . . . . . . . . 74
4 TBA1
TABLE DES MATIRES TABLE DES MATIRES
5.8 Codes cycliques BCH . . . . . . . . . . . . . . . . . . . . . . . . 75
5.8.1 Description des codes BCH . . . . . . . . . . . . . . . . 75
5.9 Elments thoriques ncessaires au dveloppement des codes BCH 76
5.9.1 Construction des champs de Galois CG(2
m
) . . . . . . . 76
5.9.2 Proprits des champs de Galois CG(2
m
) . . . . . . . . . 80
5.9.3 Construction des codes BCH . . . . . . . . . . . . . . . . 82
5.9.4 Exemple de construction de code BCH . . . . . . . . . . 83
5.9.5 Calcul du syndrome dun code BCH . . . . . . . . . . . . 84
5.9.6 Dcodage dun code BCH . . . . . . . . . . . . . . . . . 87
5.10 Codes de Reed-Solomon . . . . . . . . . . . . . . . . . . . . . . 87
5.11 Quelques codes cycliques remarquables . . . . . . . . . . . . . . 88
5.11.1 Le code de Golay . . . . . . . . . . . . . . . . . . . . . . 88
5.11.2 Les codes de Fire . . . . . . . . . . . . . . . . . . . . . . 89
5.12 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6 Codes convolutionnels 97
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.2 Encodage de codes convolutionnels . . . . . . . . . . . . . . . . 97
6.3 Longueur de contrainte dun code convolutionnel . . . . . . . . . 99
6.4 Graphe de transition dun code convolutif . . . . . . . . . . . . . 99
6.4.1 Remarque fondamentale concernant le codage . . . . . . . 100
6.4.2 Diagramme en treillis associ un code convolutionnel . . 102
6.5 Dcodage dun code convolutionnel . . . . . . . . . . . . . . . . 105
6.5.1 Introduction au dcodage selon lalgorithme de Viterbi . . 105
6.5.2 Algorithme de Viterbi pour un codeur (n, 1, m) . . . . . 112
6.5.3 Dcodage selon le principe du maximum de vraisemblance 112
6.5.4 Algorithme de Viterbi pour la mthode du maximum de
vraisemblance . . . . . . . . . . . . . . . . . . . . . . . 114
6.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7 Modulations numriques 117
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.2 Technique par saut de phase . . . . . . . . . . . . . . . . . . . . 118
7.2.1 Technique par saut de phase binaire (BPSK) . . . . . . . . 118
7.2.2 Dmodulation optimale (BPSK) . . . . . . . . . . . . . . 119
7.2.3 Probabilit derreur avec un systme BPSK en prsence de
bruit blanc Gaussien additif . . . . . . . . . . . . . . . . 121
7.2.4 Gnration dune modulation BPSK . . . . . . . . . . . . 125
7.2.5 Occupation spectrale dune modulation BPSK . . . . . . . 125
7.2.6 Technique par saut de phase quadriphase (QPSK) . . . . . 128
7.2.7 Exemple de construction de signaux QPSK . . . . . . . . 130
7.2.8 Gnration de signaux QPSK . . . . . . . . . . . . . . . 132
TBA1 5
TABLE DES MATIRES TABLE DES MATIRES
7.2.9 Dtection optimale de signaux QPSK . . . . . . . . . . . 133
7.2.10 Probabilit derreur des systmes QPSK . . . . . . . . . . 135
7.2.11 Occupation spectrale dune modulation QPSK . . . . . . 136
7.2.12 Exercice 1 (PSK) . . . . . . . . . . . . . . . . . . . . . . 138
7.2.13 Exercice 2 (PSK) . . . . . . . . . . . . . . . . . . . . . . 138
7.2.14 Exercice 3 (PSK) . . . . . . . . . . . . . . . . . . . . . . 138
7.2.15 Exercice 4 (ASK) . . . . . . . . . . . . . . . . . . . . . . 139
7.2.16 Exercice 5 (PSK) . . . . . . . . . . . . . . . . . . . . . . 139
6 TBA1
1
Introduction au cours de
Tlcommunications Numriques
CONTENU
1.1 Elments dun systme de communication numrique . . 1
1.2 Fonction du codage de source . . . . . . . . . . . . . . . 2
1.3 Le canal de communication . . . . . . . . . . . . . . . . 4
1.4 Les imperfections du canal de communication . . . . . . 6
1.5 Fonction du codage de canal . . . . . . . . . . . . . . . 16
1.6 Fonction du modulateur numrique . . . . . . . . . . . . 16
1.7 Fonction du dmodulateur . . . . . . . . . . . . . . . . 17
1.8 Fonction du dcodage de canal . . . . . . . . . . . . . . 17
1.9 Fonction du dcodage de source . . . . . . . . . . . . . 18
1.10 Plan du cours . . . . . . . . . . . . . . . . . . . . . . . 18
Rsum Ce chapitre motive les suivants en prsentant de manire trs gnrale
les concepts de codage, de thorie de linformation, de modulation et dmodula-
tion tels quils sont utiliss dans les systmes de communication numriques ac-
tuels. On part donc de larchitecture gnral dun systme de communication an
de comprendre le principe de fonctionnement des divers blocs de traitement de
linformation.
1.1 Elments dun systme de communication numrique
La gure 1.1 illustre le fonctionnement dun systme de communication num-
c 2010 HEIG-VD.
1
Introduction H. Dedieu
rique. Dans ce schma, une source met un message qui le plus souvent appartient
au monde analogique. Ce message est trait de faon numrique, cest dire rem-
plac par une squence de nombres binaires. On introduit ainsi, par rapport une
transmission purement analogique de la robustesse car la dtection dun bit 0 ou 1
sera quivalente la rception une dtection de niveau damplitude ou de phase.
Un systme numrique est donc par nature, beaucoup plus immune au bruit quun
systme purement analogique. Le prix payer est un accroissement en besoin de
bande passante, on peut en effet considrer que lorsquon convertit un signal ana-
logique sur 12 bits, on doit en fait traiter 12 signaux lmentaires, certes binaires,
mais 12 signaux au lieu dun seul. Le premier bloc de traitement que lon dcouvre
sur notre metteur est le bloc de conversion qui chantillonne et quantie le mes-
sage analogique transmettre. A la sortie de ce bloc on dispose de train de bits qui
sont squencs des fractions de la priode dchantillonnage T
e
. Par exemple on
disposera dun bloc de 12 bits toutes les T
e
s si la conversion se fait sur 12 bits en
virgule xe. Cette information numrique est ensuite encode dans un alphabet dit
alphabet de source par le bloc de codage de source.
FIGURE 1.1 Architecture gnrale dun systme de communication numrique
1.2 Fonction du codage de source
La fonction lmentaire de ce bloc de codage est de rduire le dbit binaire,
cest un principe dconomie qui guide la conception de ce bloc. Imaginons par
exemple que nous ayons transmettre des textes contenant les 26 lettres de lalpha-
bet franais plus les 6 symboles de ponctuations appartenant lensemble { " , : ; .
-}. Ces 32 symboles peuvent tre cods sur 5 bits. Si les symboles sont envoys
une frquence de 8 kHz on en enverra donc 8 ksymboles/s
1
qui correspondront
1. Les spcialistes de tlcommunications parleraient de 8 kBauds, un Baud correspondant
2 TBA1
H. Dedieu Introduction
en fait 5 8 kbits/s = 40 kbits/s. Si lon ralise toutefois que toutes les lettres
et tous les signes de ponctuations ne sont pas quiprobables, il apparat comme fai-
sant sens de coder les lettres et signes les plus probables avec moins de 5 bits et les
lettres et signes les plus improbables avec 5 bits ou plus, mais de faon ce quen
moyenne, les 32 symboles de notre alphabet soient reprsents par moins de 5 bits
2
Supposons que cette moyenne soit 3.5, on obtiendrait alors aprs codage de source
un dbit de transmission de 3.5 8 kbits/s = 28 kbits/s au lieu des 40 kbits/s
tout en maintenant la mme vitesse de 8 ksymboles/s de codage/dcodage. Cette
faon de coder de manire conomique a t perue ds lavnement des premiers
systmes de transmissions numriques, ainsi lalphabet Morse, utilis depuis 1835
codait la lettre "E" avec seulement un seul son bref, alors que le point de ponctua-
tion tait cod par un alternat de 6 sons bref-long-bref-long-bref-long.
Les algorithmes de codage de source appartiennent deux grandes catgories,
les codages avec ou sans perte :
1. Soit ils sappuient sur un dissymtrie statistique des messages mettre et
ils proposent un codage efcient des messages de faon conomiser de
la bande passante. Ainsi les symboles les plus probables de lalphabet de
transmission se trouvent cods avec le moins de bits, les plus improbables
en consommant plus. On ne peut pas dire que ces algorithmes suppriment
de la redondance car ils proposent un codage sans perte. Une image simple
dun tel type de code est le code Morse. De bout en bout on reproduit avec
exactitude le message cod. Les algorithmes les plus utiliss dans ce domaine
sont lalgorithme dHuffman et lalgorithme de Lempel-Ziv
2. Une autre faon denvisager ce codage de source lorsquil sagit de coder de
laudio ou de la vido est de considrer quun certain nombre dinformations
sont redondantes pour notre appareil auditif ou visuel. On trouve alors une
faon dextraire linformation pertinente pour notre systme sensoriel et de
ne transmettre que cette information. Les algorithmes utiliss ici sont donc
des algorithmes de codage avec perte. Certains de ces algorithmes sont som-
maires comme les algorithmes qui sinspirent des lois de compression non
linaire de notre systme auditif (loi A, loi ), ils sont dits sans mmoire car
ils nutilisent pas lhistoire du signal transmettre. Dans leur rafnement r-
cents, les algorithmes de codage sont en gnral dune certaine complexit
car issus dun trs grand effort de recherche par une vaste communaut. La
trs grande difcult ayant rsid dans la dcouverte de principe de codages
invariants pour notre systme perceptif. Dans leurs versions volues, ces al-
gorithmes prennent en compte la mmoire dun modle de production qui
les a engendr. Ils sont dits algorithme de codage avec mmoire. Une faon
un symbole par seconde.
2. Quand les messages de lalphabet nont pas la mme longueur leur dcryptage prsuppose
que des indicateurs de dbut et/ou n de mot soient positionns, on suppose donc ici que le codage
est effectu an que le dcodage soit unique.
TBA1 3
Introduction H. Dedieu
de les comprendre est dimaginer que tout systme physiologique de pro-
duction et dcoute du son obit des contraintes mcaniques, vibratoires,
bio-chimiques et lectriques. Il y a ordonnancement dans la dynamique des
signaux et des contraintes dterministes existent si bien que lorsque certains
vnements phonatoires se sont produits dans un pass rcent, dautres ve-
nir sont plus probables. Lappareil phonatoire a ainsi une mmoire, do un
intrt vident essayer dutiliser lhistoire du signal. Certains de ces al-
gorithmes sont communment utiliss dans les systmes de transmissions
parce que directement adapts au traitement temps-rel de linformation. Un
foisonnement de mthodes existent ici suivant que lon considre du signal
audio ou vido. Les mthodes utilisent largement la transformation de signal
dans lespace des frquences ; des algorithmes de prdiction des symboles
sont implments dans cet espace transform. Au lieu de transmettre le si-
gnal, on transmet les paramtres du prdicteur de signal. Ce prdicteur de
signal est en quelque sorte un modle simpli de lappareil phonatoire, dont
les contraintes mcaniques font quil varie moins vite que le signal. Il est
donc plus conomique de transmettre les paramtres du prdicteur et une
version trs quantie dun signal dexcitation du prdicteur permettant de
recomposer le signal la rception. Comme on se retrouve gnralement
confront transmettre des vecteurs dans un espace multi-dimensionnel, on
utilise une technique dite de quantication vectorielle que lon surajoute la
technique de prddiction. La quantication vectorielle permet de ne consid-
rer quun nombre ni de points de cet espace multi-dimensionnel, les cen-
trodes, elle consiste trouver le centrode de lespace le plus proche du vec-
teur prdicteur calcul un instant donn, on transmet alors le numro du
centrode sous forme dune squence binaire.
1.3 Le canal de communication
Avant de parler du bloc de codage de canal et du bloc de modulation, il nous
faut donner quelques ides relatives laction du canal de communication. Le canal
de communication est le support physique qui sert la transmission. On trouve trois
types principaux de canaux de communications : le canal laire, le sans l, la bre
optique.
Le canal laire (wireline)
On trouve plusieurs types de support comme :
la paire torsade (tlphone, ADSL, VDSL, Ethernet) permettant une bande
passante jusqu 10 MHz,
le cble coaxial (Ethernet) permettant dchanger des signaux jusqu 1 GHz
4 TBA1
H. Dedieu Introduction
le cuivre non torsad comme pour les rseaux courants porteurs dit PLC
(Power Line Communication), permettant dchanger des signaux jusqu
20 MHz de bande,
les guides dondes permettant dassurer des communications via des ondes
lectromagntiques guides entre 1 GHz et 100 GHz.
On donne la gure 1.2, une vue synthtique des diffrentes bandes occupe par
ces canaux.
FIGURE 1.2 Les principaux canaux guids : laire, guid, optique.
Le sans l (wireless)
Les canaux Hertziens ont t segments en un certains nombres de canaux (MF,
HF, VHF, UHF, SHF, EHF) utilisant des longueurs dondes varies ( = c/f),
les ondes moyennes (dites MF entre 100 m et 1 km de longueur donde
pour des frquences de lordre du MHz) sont employes par les systmes
TBA1 5
Introduction H. Dedieu
modulation damplitude dits AM (systmes de plus en plus dsuets mais
encore utiliss en radio, dans le domaine maritime en particulier),
les hautes frquences (dites HF entre 100 m et 10 m de longueur donde
pour des frquences de lordre de 10 MHz), ces bandes sont rserves au
radio-amateurs et la CB (citizen band),
les trs hautes frquences (dites VHF entre 10 m et 1 m de longueur donde
pour des frquences de lordre de 100 MHz), rserves la TV VHF, la
radio par modulation de frquence (FM),
les ultra hautes frquences (dites UHF entre 1 met 10 cmde longueur donde
pour des frquences de lordre du GHz), on trouve ici la TV UHF et la tl-
phonie mobile (dit GSM pour Global System for Mobile Communications)
avec les bandes GSM 900 (entre 872 960 MHz), GSM 1800 (entre 1.710
1.875 GHz et GSM 1900 (entre 1.930 et 1.990 GHz)
au del on trouve les ondes SHF (super high frequencies entre 10 cm et 1
cm) et EHF (en dea du cm). Ces deux types de bande tant occupes par les
transmissions par satellite.
On donne la gure 1.3, une vue synthtique des diffrentes bandes occupe par
ces canaux.
La bre optique
Les canaux par bre optiques offrent des bandes passantes suprieures de plu-
sieurs ordres de grandeur par rapport celles des cables co-axiaux. Linformation
est ici transmise en modulant lintensit dune source de lumire qui se propage
le long dune bre. Des rpteurs peuvent se trouver sur la bre des longueurs
qui-espaces an de compenser lattnuation due la distance. Au rcepteur, une
photodiode dtecte la lumire et met un signal lectrique proportionnel linten-
sit de la lumire reue.
1.4 Les imperfections du canal de communication
Il existe deux types dimperfection, la premire est lie la bande passante
limite du canal, la seconde tous les bruits inhrents au canal.
Effet lis la bande passante limite
Lorsquon envoie un train de bits sur un canal, ce dernier agit comme un ltre
qui dans le meilleur des cas est linaire. Si lon admet quun message donn est d-
compos en srie de Fourier, lenvoi de ce message sur le canal correspondra une
attnuation des composantes spectrales harmoniques de la frquence fondamentale
6 TBA1
H. Dedieu Introduction
danalyse du message initial. La recomposition du message au rcepteur sera tron-
que et dforme parce quun certain nombre de composantes spectrales auront t
limines par le canal. La reconstruction sera dautant meilleure que la bande pas-
sante du canal sera large. On peut admettre que si la troncation est trop svre, on ne
puisse plus reconstruire le message mis et que la dtection des bits soit impossible
au rcepteur. Ceci est montr la gure 1.4 ou un train de bits de dure T
e
s est en-
voy sur un canal qui est un ltre passe-bas dordre 4 de frquence de coupure 2/T
e
ltre le train de bits. On a superpos sur la gure le train de bits ainsi ainsi que sa
rponse ltre par le canal. On conoit aisment en vriant lallure du train de bits
quil soit possible moyennant un dtecteur seuil au rcepteur de reconstruire sans
erreur le signal mis. Les ingnieurs en tlcommunications on coutume dutiliser
une reprsentation dite du diagramme en oeil o ils superposent sur un oscilloscope
les traces successives de dure T
e
s. Ainsi les diffrents bits reus en superposition
permettent destimer quel instant on doit dtecter le signal reu (synchronisation
ne lintrieur dun bit) de manire commettre le moins derreurs de recons-
truction avec les dtecteurs seuil. Ceci est montr la gure 1.6 o il est patent
que "loeil" est ouvert et que le dtecteur seuil peut tre plac de faon optimale
dans lintervalle [0.4T
e
, 0.9T
e
]. Si lon diminue la bande passante du canal et que
celle-ci prenne par exemple la valeur 0.35/T
e
, on saperoit sur la gure 1.5 que
le message reu rendra la reconstruction difcile ou quasi-impossible. Ceci devient
vident sur le diagramme en oeil correspondant (gure 1.7) o loeil apparat ferm.
On a ce quon appelle de linterfrence inter-symbole, la mmoire du canal fait que
la rponse au bit prcdent sajoute celle du bit courant. On saperoit que la vi-
tesse de raction du canal le rendra impropre toute communication au del dun
certain dbit. La bande passante, est donc un facteur limitatif au dbit accessible de
communication avec des taux derreur acceptables. Ce nest pas le seul paramtre
limitatif. Le bruit de communication, principalement d au canal, inue aussi de
manire dterminante.
Effets lis au bruit du canal
Le canal introduit toutes sortes de bruit et de distortions. Dans le meilleur des
cas, et cest souvent une approximation que lon fait, le canal est considr comme
un ltre linaire avec bruit additif. Il fait donc correspondre un message x(t) qui
lui est est envoy un signal y(t) tel que
y(t) = x(t) h(t) + n(t) =
_

0
h() x(t )d + n(t) (1.1)
o h(t) est la rponse impulsionnelle du canal, n(t) est le bruit additif introduit par
le canal, et est loprateur de convolution. Dans le domaine frquenciel, lqua-
tion prcdente se ramne
Y (f) = X(f)H(f) + N(f) (1.2)
TBA1 7
Introduction H. Dedieu
Dans la pratique, les choses sont un peu moins simples. Certes, les bruits lec-
troniques de type bruit thermique, sont prsents dans toutes les rsistances et cir-
cuits actifs intgrs de la chane de transmission ; on peut gnralement prendre
en compte ces bruits comme un bruit Gaussien additif, mais de nombreux autres
bruits existent, ils dpendent des canaux utiliss, des interfrences entre canaux.
Par exemple, les systmes sans l sont souvent affects de phnomnes de multi-
trajets, un message arrivant via un trajet dune certaine longueur est pollu par une
rplique de ce message arrivant retard car ayant suivi un autre chemin. Parfois
les bruits sont impulsifs, cest le cas dans le PLC et le DSL o les dcharges de
tubes nons peuvent perturber de faon instantane les communications. Parfois
les canaux ne sont pas linaires, en ADSL, au moment ou des signaux de sonnerie
de lordre de 300V crte crte sont appliqus sur la ligne torsade, des ltres de
protection contenant des inductances peuvent se mettre saturer, les harmoniques
des signaux gnrs peuvent rayonner et induire des salves derreur sur les commu-
nications ADSL. Dans les systmes DSL, tout est fait pour minimiser linuence
des canaux adjacents (on veille lquilibrage des deux brins et ce que les deux
brins soient torsads), mais en pratique, il existe de la diaphonie (crosstalk) entre
les lignes adjacentes induites par un couplage capacitif prsent sur une grande por-
tion de ligne, cette diaphonie se manifeste par un couplage plus complexe quun
simple bruit additif en bout de ligne. De manire gnrale, les canaux mme sils
sont linaires ne sont pas phase linaire, il en rsulte une distortion de phase
(temps de propagation de groupe non constant). Comment avoir un aperu de lin-
uence du bruit dans le domaine de la transmission. On peut reprendre lexemple
des gures 1.4 et 1.5 qui montrait un canal de communication trs bon avec un
oeil compltement ouvert. Si nous rajoutons un bruit de communication tel que le
rapport signal bruit soit de 10 dB on voit que loeil a tendance se fermer. Ceci
est montr au gures 1.8 et 1.9. Au del dun certain niveau de bruit il est clair que
la reconstruction du signal deviendrait impossible.
Prise en compte globale de leffet bande-passante limite et bruit
de communication : la formule de Shannon
On voit donc intuitivement que les deux paramtres que sont la largeur de bande
W dun canal et le niveau de rapport bruit SNRinterfrent pour donner ce que les
spcialistes en tlcommunications appellent la capacit C dun canal. Par capacit
on entend un dbit limite de communication tel quil soit thoriquement possible
deffectuer une communication sans erreur avec un dbit D tant que D < C. Une
formule clbre due au travaux de Shannon (1948) donne cette capacit (exprime
en bits/s) en fonction de la band passante du canal W et du rapport signal bruit .
Cette formule sexprime par
C = W log
2
_
1 +
P
N
0
W
_
(bits/s) (1.3)
8 TBA1
H. Dedieu Introduction
o P dsigne la puissance moyenne du signal transmis et N
0
la puissance moyenne
du bruit additif. Insistons sur le fait que cette limite est thorique, cest une li-
mitation de vitesse fondamentale que lon ne peut dpasser. Sil est important de
connatre cette vitesse maximum, Shannon ne nous dit pas comment construire les
outils de communications de faon exploiter au mieux la capacit du canal. Un des
enjeux majeurs des architectes modernes de systmes de communications a t de
construire des systmes sapprochant de la limite de Shannon. Encore aujourdhui,
chaque exploitation dun nouveau canal de communication, de nouvelles ides et
concepts surgissent pour optimiser les blocs de traitement de communication.
TBA1 9
Introduction H. Dedieu
FIGURE 1.3 Les principaux canaux "sans-l".
10 TBA1
H. Dedieu Introduction
0 5 10 15 20 25 30 35 40
1.5
1
0.5
0
0.5
1
1.5
fc=2/Te
FIGURE 1.4 Rponse du canal : la frquence de coupure du canal est deux fois la
frquence des bits.
TBA1 11
Introduction H. Dedieu
0 5 10 15 20 25 30 35 40
1.5
1
0.5
0
0.5
1
1.5
fc=0.35/Te
FIGURE 1.5 Rponse du canal : la frquence de coupure du canal est deux fois la
frquence des bits.
12 TBA1
H. Dedieu Introduction
0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2
1
0.5
0
0.5
1
time (second)
a
m
p
l
i
t
u
d
e
fc=2/Te
FIGURE 1.6 Diagramme en oeil associ la gure 1.4 .
TBA1 13
Introduction H. Dedieu
0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2
1
0.5
0
0.5
1
time (second)
a
m
p
l
i
t
u
d
e
fc=0.35/Te
FIGURE 1.7 Diagramme en oeil associ la gure 1.5.
0 5 10 15 20 25 30 35 40
2
1.5
1
0.5
0
0.5
1
1.5
2
fc=2/Te
FIGURE 1.8 Rponse du canal : la frquence de coupure du canal est deux fois la
frquence des bits mais avec SNR=10 dB.
14 TBA1
H. Dedieu Introduction
0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2
1.5
1
0.5
0
0.5
1
1.5
time (second)
a
m
p
l
i
t
u
d
e
fc=2/Te
FIGURE 1.9 Diagramme en oeil associ la gure 1.8.
TBA1 15
Introduction H. Dedieu
1.5 Fonction du codage de canal
Nous venons de voir que cest principalement le canal qui impacte le dbit
limite de communications sans erreurs. La formule de Shannon, dans une conci-
sion remarquable nous donnant la valeur limite de la capacit pour un dbit sans
erreur. Or, pour combattre la fois le bruit de communication et linterfrence in-
tersymbole, il est ncessaire de mettre en oeuvre un moyen intelligent de dtecter
et corriger les erreurs de communication. Si lon ne faisait rien, lintersymbole et le
bruit gnreraient forcment des erreurs au rcepteur. Ce codage particulier, appel
codage de canal est une signature que lon va rajouter sur tout paquet dinformation
transmettre. Entre linformation transmise et sa signature doit exister une corres-
pondance de telle sorte, que si le rcepteur ne constate pas de correspondance, il
puisse dtecter une erreur ou plusieurs erreurs. Cette signature est une fonction ma-
thmatique connue du rcepteur, liant la signature au message transmettre. Or si
dtecter est important, corriger sans avoir redemander un renvoi du paquet, lest
tout autant. Une grande force du codage de canal est de pouvoir dtecter les er-
reurs (ou plutt dtecter un certain nombre derreurs) et de les corriger. Un code
dtecteur sommaire derreur est un bit de parit que lon rajoute un paquet de
bits. Ce dtecteur est trs sommaire car il ne peut dtecteur quun nombre impair
derreurs, et il ne peut corriger les messages. On verra dans la suite de ce cours des
codes de canaux bien plus sophistiqus, et en particulier, deux grandes familles de
codes dtecteur/correcteur derreurs bass sur ce que lon appelle les codes blocs
ou les codes convolutionnels. Soulignons ici que le codage de canal repose sur
lajout dune redondance, alors que le codage de source reposait sur un principe
dconomie de bits transmettre.
1.6 Fonction du modulateur numrique
Il sagit ici de placer un signal porteur de contenu spectral compatible avec la
bande occupe par le canal. Ce signal peut-tre bande troite ou large bande. En
lui-mme, le signal porteur qui est parfaitement dterministe, ne porte aucune in-
formation. On module donc ce signal porteur laide de notre signal dinformation.
On peut jouer sur lamplitude, la phase, la frquence du signal porteur. On montre
la gure 1.10, un exemple o lon module lamplitude dun signal porteur fr-
quence xe. Dans cet exemple, on groupe les bits transmettre par paquet de 2,
ces deux bits codent des impulsions 4 amplitudes possibles en bande de base.
On multiplie (module) alors une porteuse frquence f
0
par le signal en bande de
16 TBA1
H. Dedieu Introduction
base. Ce type de modulation est dit, modulation damplitude dimpulsions (Pulse-
Amplitude-Modulation ou PAM). Ceci nest quun exemple parmi une trs grande
varit de possibilits de modulations.
FIGURE 1.10 Exemple de modulation par modulation damplitude dimpulsions.
1.7 Fonction du dmodulateur
Le dmodulateur a pour fonction de ramener le signal reu en bande de bande
tout en retrouvant linformation modulante, cest--dire le message. En gnral,
le dmodulateur contient un systme de synchronisation lui permettant de se ver-
rouiller sur le signal porteur.
1.8 Fonction du dcodage de canal
Le dcodeur de canal dtecte les erreurs et ventuellement les corrige.
TBA1 17
Introduction H. Dedieu
1.9 Fonction du dcodage de source
Cest la fonction mathmatique inverse celle du codage de source.
1.10 Plan du cours
Nous nous analyserons les principaux blocs de traitement de linformation dans
les systmes de communications numriques. Dans le temps imparti, il est illu-
soire dtre exhaustif, nous chercherons donc dcrire des principes gnraux
de quelques systmes importants utiliss en communications numriques. Lordre
dans lequel nous visiterons les diffrents blocs ne sera pas exactement celui dans
lequel linformation est traite. Dans une premire partie, nous nous attacherons
dcrire les principes qui gouvernent le codage de source et le codage de canal.
18 TBA1
2
Notions de la thorie de linformation
CONTENU
2.1 Information=Surprise . . . . . . . . . . . . . . . . . . . 19
2.2 Comment mesurer linformation ? . . . . . . . . . . . . 20
2.2.1 Exemple 1 . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.2 Exemple 2 . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Entropie=Moyenne de linformation . . . . . . . . . . . 22
2.3.1 Exemple 3 . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.2 Remarque historique :-) . . . . . . . . . . . . . . . . . 24
Rsum Ce chapitre est une trs brve introduction la thorie de linformation.
On nintroduit ici que les dnitions classiques de linformation. Ne sont pas abor-
des pour le moment le passage dinformation au travers dun canal et la notion de
limite de Shannon pour un canal linaire avec bruit additif Gaussien.
2.1 Information=Surprise
Nous allons essayer de dnir ici la notion dinformation . Avant daller plus
loin, il faut tre conscient que la notion dinformation a une signication particu-
lire dans la thorie des probabilits, cette signication est diffrente de celle que
nous lui accordons habituellement. Prenons un exemple et considrons les deux
assertions suivantes :
1. Il fera jour demain
2. Le prsident de la Confdration dansera nu la prochaine streetparade
c 2010 HEIG-VD.
19
Thorie de linformation H. Dedieu
Si lon se demande laquelle de ses deux assertions transporte le plus dinformation,
il semble que lassertion 2) en apporte le plus. Il est en effet hautement improbable,
quil ne fasse pas jour demain. Bien que nous soyons certainement trs peu intress
par la vie prive du prsident de la Confdration, lassertion 2) nous apporte un
clairage particulier sur sa personnalit. En rsum
1. plus un vnement est certain (probabilit dapparition proche de 1) et moins
il apporte dinformation.
2. plus un vnement est incertain, ou nous surprend (probabilit dapparition
proche de 0) et plus il apporte dinformation.
On voit donc que la notion dinformation ou de de quantit dinformation est troi-
temement lie la notion de de surprise. Considrons maintenant deux ordinateurs
relis entre eux et changeant des donnes. Supposons que les deux messages sui-
vants aient transit de lordinateur 1 vers lordinateur 2.
1. AMOUR
2. QWERTZ
Notre raction immdiate est de nous dire que le message QWERTZ na aucun sens
et donc ne porte aucune information. Dans notre vie quotidienne, linformation est
en effet lie la fois la notion de surprise mais aussi au sens. Remarquons que
pour lordinateur les deux messages nont certainement aucun sens. Par contre,
lordinateur 2, qui "voit passer" un trs grand nombre de messages en Franais
peut mesurer la frquence des lettres, et peut sapercevoir que les lettres W et Z
sont peu usites, ou que la transition QW a une probabilit dapparition nulle. En
ce sens le message QWERTZ sera plus surprenant que le message AMOUR pour
lordinateur 2.
La thorie mathmatique de linformation est donc seulement lie la notion de
surprise, elle abandonne la notion des sens. Les raisons de ce choix sont simples,
dune part la thorie de linformation sest dveloppe dans le cadre de lingnierie
des tlcommunications o cest facteur de surprise qui est important, dautre part,
il faut bien admettre que la notion de sens est difcilement quantiable pour une
machine.
2.2 Comment mesurer linformation?
Cest la question que sest pos Claude Shannon en 1948 dans un article dsor-
mais clbre "A Mathematical Theory of Communications". Les lments qui ont
guid la thorie Shannon concernant linformation sont les suivants :
1. Soit I(E) la mesure de linformation lie la ralisation de lvnement E
et soit P(E) sa probabilit de ralisation. Alors I(E) devrait tre une fonc-
tion dcroissante de P(E) (Les vnements forte probabilit de ralisation
20 TBA1
H. Dedieu Thorie de linformation
apportent moins dinformation que les vnements faible probabilit de
ralisation).
2. Linformation ne peut tre une quantit ngative i.e. I(E) >= 0 pour tout
vnement E appartenant lespace des vnements.
3. Si lvnement est certain, sa ralisation napporte aucune information, i.e.
I(E) = 0 si P(E) = 1 .
4. Si lon considre la ralisation de 2 vnements indpendants ( la ralisa-
tion de lun na pas dinuence sur la ralisation de lautre) alors linfor-
mation lie la ralisation des 2 vnements devrait tre gale la somme
des informations des vnements. Autrement dit soit E = E
1

E
2
tel que
P(E) = P(E
1

E
2
) = P(E
1
).P(E
2
) alors I(E) = I(E
1
) + I(E
2
)
Un des candidats possibles pour une telle mesure est une fonction logarithmique,
i.e.
I(E) = K log
a
(P(E))
ou K et a sont des constantes positives. Lusage a consacr le logarithme a base 2.
Si bien que linformation lie la ralisation de lvnement E est dcrite par
I(E) = log
2
(P(E)) (2.1)
Lunit dinformation est le bit.
2.2.1 Exemple 1
Soient deux machines changeant des messages avec des mots qui ont un al-
phabet de 4 symboles, i.e. A, B, C, D. (Remarquons que 2 bits sont ncessaires
pour coder ces 4 symboles). Supposons que ces 4 symboles soient quiprobables
et calculons linformation associe lapparition des quatre symboles. La proba-
bilit de chaque symbole tant
1
4
, linformation associe leur apparition est donc
I(A) = I(B) = I(C) = I(D) = log
2
(
1
4
) = 2
Evnement E A B C D
p(E)
1
4
1
4
1
4
1
4
I(E) 2 bits 2 bits 2 bits 2 bits
TABLE 2.1 Calcul de linformation quand les symboles sont quiprobables
2.2.2 Exemple 2
Supposons maintenant que les symboles ne soient plus quiprobables mais que
leurs probabilits dapparition se rpartissent suivant la loi p(A) =
1
2
, p(B) =
1
4
,
TBA1 21
Thorie de linformation H. Dedieu
Evnement E A B C D
p(E)
1
2
1
4
1
8
1
8
I(E) 1 bits 2 bits 3 bits 3 bits
TABLE 2.2 Calcul de linformation quand les symboles ne sont plus quipro-
bables
p(C) =
1
8
, p(D) =
1
8
. Les quantits dinformation relatives aux diffrents symboles
calcules selon lquation (2.1) sont donnes par la table 2.2.
A la lumire de ces deux exemples, on voit que si les symboles transmis sont
quiprobables, alors linformation apporte par chaque symbole est log
2
(Nombre de symboles)
(en loccurrence 2 bits pour lexemple 1). Pour lexemple 2, on voit que lvne-
ment A apparatra une fois sur deux ; en anticipant sur les notions de codage que
nous introduirons ultrieurement, on coderait A sur 1 bit (on a besoin dun seul bit
une fois sur deux). Lvnement B apparatra une fois sur quatre et ncessitera 2
bits, C une fois sur 8 et ncessitera 3 bits, idem pour D.
2.3 Entropie=Moyenne de linformation
Les deux exemples prcdents font apparatre un nombre moyen de bits din-
formation diffrent. Dans lexemple 1, le nombre moyen de bits dinformation est
2, quel est le nombre moyen de bits dinformation dans lexemple 2, est-il infrieur
ou suprieur 2. Pour calculer la moyenne on doit tenir compte des pondrations
qui expriment la frquence dapparition des symboles. Le nombre de bits moyen
dinformation pour lexemple 2 est donc
1
2
1 +
1
4
2 +
1
8
3 +
1
8
3 =
14
8
= 1.75 bits
Ce nombre moyen de bits dinformation a t appel conventionnellement entropie.
Formellement on peut la dnir de la manire suivante. Soit une variable alatoire
X qui se ralise par n vnements possibles e
1
, e
2
, . . . e
n
. Chaque vnement e
i
a
une probabilit dapparition P(e
i
) et une quantit dinformation associe I(e
i
). La
valeur moyenne de linformation H(X) est donc
H(X) =
n

i=1
P(e
i
)I(e
i
) =
n

i=1
P(e
i
) log
2
(P(e
i
)) (2.2)
Lentropie, mesure moyenne de linformation, se mesure donc aussi en bits.
22 TBA1
H. Dedieu Thorie de linformation
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Entropie en fonction de p
p=Probabilit d'apparition du symbole A
E
n
t
r
o
p
i
e
FIGURE 2.1 Entropie en fonction de p (Exemple 3)
2.3.1 Exemple 3
Soit un ordinateur 1 envoyant des symboles vers un ordinateur 2. Les symboles
seront dsigns par A et B. Les messages sont tels que p(A) = p et donc p(B) =
1 p. Calculer lentropie en fonction de p.
Dans ce cas particulier lapplication de la formule (2.2) donne
H = p log
2
(p) (1 p) log
2
(1 p)
La gure 2.1 montre que lentropie est maximum quand les symboles sont qui-
probables. Lentropie mesure lincertitude. Si p est proche de 0 (respectivement 1)
cela veut dire que le symbole B (respectivement A) apparat avec une frquence trs
grande, on est pratiquement sr de voir B (respectivement A) se raliser. En cons-
quence lincertitude sur lapparition du symbole est faible et lentropie est proche
de 0. Par contre lorsque p = 0.5, on a un maximum dincertitude sur lapparition
dun symbole, lentropie prend sa valeur maximale, i.e. 1 bit.
De faon gnrale on peut montrer que pour une variable alatoire discrte X
prenant n valeurs possibles, lentropie H(X) vrie les proprits suivantes
1. H(X) 0
2. H(X) = 0 si et seulement si X prend une de ses valeurs de faon certaine
3. H(X) log
2
(n)
4. H(X) = log
2
(n) si et seulement si X est uniformment distribu.
TBA1 23
Thorie de linformation H. Dedieu
2.3.2 Remarque historique :-)
Lusage de la terminologie entropie qui trouve son origine en thermodynamique
et en physique statistique appelle quelques commentaires. Lusage du vocable en-
tropie a t propos par Shannon quand il ralisa limportance de lexpression (2.2).
La petite histoire nous apprend quil consulta le grand mathmaticien John Von
Newman au sujet du meilleur nom possible. La rponse de Von Newman fut la sui-
vante. "Vous devriez lappeler entropie, premirement parce que la mme fonction
est utilise en thermodynamique, deuximement et de faon plus importante, parce
que la plupart des gens ne savent pas ce quest lentropie rellement, donc si vous
utilisez le mot entropie dans une discussion, vous gagnerez chaque coup".
24 TBA1
3
Codage de Source
CONTENU
3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . 25
3.1.1 Codes longueur constante . . . . . . . . . . . . . . . 26
3.1.2 Codes longueur variable . . . . . . . . . . . . . . . . 26
3.1.3 Dcodage unique et dcodage instantan . . . . . . . . 27
3.1.4 Longueur moyenne des mots . . . . . . . . . . . . . . . 28
3.1.5 Ingalit de Kraft-McMillan . . . . . . . . . . . . . . . 28
3.1.6 Capacit, efcacit et redondance du code . . . . . . . . 28
3.2 Codage de Shannon-Fanno . . . . . . . . . . . . . . . . 30
3.3 Codage binaire de Huffman . . . . . . . . . . . . . . . . 32
3.4 Algorithme de Lempel-Ziv . . . . . . . . . . . . . . . . 34
3.4.1 Codage de type Lempel-Ziv . . . . . . . . . . . . . . . 34
3.4.2 Dcodage avec lalgorithme Lempel-Ziv . . . . . . . . . 36
3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 36
Rsum Ce chapitre introduit les notions de codage de source.
3.1 Gnralits
Comme nous lavons vu dans le chapitre introductif, diffrentes sortes de co-
dage sont utilises. On distingue :
1. le codage de source visant transformer la source dinformation (appele
source primaire) en une source dinformation secondaire qui est entropie
maximale. Lobjectif est donc de rduire au maximum la redondance et la
c 2010 HEIG-VD.
25
Codage de source H. Dedieu
longueur des messages.
2. le codage de canal qui sappuie sur des codes dtecteurs et correcteurs der-
reur. Le codage de canal, au contraire du codage de source augmente la lon-
gueur et la redondance des messages an de permettre la dtection et ven-
tuellement la correction des erreurs occasionnes par laction des perturba-
tions dues au canal.
3. le codage dmission ralise ladaptation des signaux aux canal par modula-
tion, ltrage, distorsion linaire, etc
Lventail des techniques utilises est trs grand, on sattachera aux familles prin-
cipales de codage de source et de canal. On considrera dans la suite un alphabet
de source n symboles
[S] = [s
1
, s
2
, . . . s
n
]
tandis que lalphabet du code aura m symboles
[X] = [x
1
, x
2
, . . . x
m
]
Un mot du code est une suite nie de lalphabet X, x
i
1
, x
i
2
, . . . , x
i
n
. Le code
dsignera un suite nie de n mots.
[C] = [c
1
, c
2
, . . . c
n
]
Exemple
Soit [S] = [A, E, I, O] coder partir dun alphabet binaire [X] = [0, 1]. Un
code possible sera 00 pour A, 01 pour E, 10 pour I, 11 pour O. Le code correspon-
dant sera donc [C] = [00, 01, 10, 11]
3.1.1 Codes longueur constante
Le codage le plus simple consiste donner la mme longueur tous les mots.
Un exemple de ce type de code est le code ASCII qui utilise des mots de 7 bits.
3.1.2 Codes longueur variable
Si lon dispose des probabilits dmission des diffrents symboles de lalpha-
bet de source [S], il est plus conome dutiliser des codes longueur variable : le
mot-code dun symbole de source aura une longueur variable, qui dcrot avec la
probabilit dmission. Un exemple dun tel code est le code Morse, o la lettre E,
frquemment utilise, est code par un seul symbole (.), tandis que la lettre Q plus
rare est code par quatre symboles (.)
26 TBA1
H. Dedieu Codage de source
3.1.3 Dcodage unique et dcodage instantan
Si les mots du code sont convenablement choisis, on peut faire en sorte que
chaque succession de mots du code corresponde une seule succession de lalphabet
de source. Dans ce cas, on dit quon a un code dcodage unique . La proprit
de dcodage unique est la proprit que doit possder tout code. Soit coder [S] =
[A, E, I, O], on pourra utiliser les diffrents codes donns dans la table 3.1 Le
Message s
k
Code 1 Code 2 Code 3 Code 4
A 00 0 0 0
E 01 10 01 10
I 10 110 011 110
O 11 1110 0111 111
TABLE 3.1 Exemples de codes dcodage unique
code dcodage unique le plus simple est le code 1, car ses mots sont de mme
longueur. Le code 2 est dcodage unique parce que le symbole 0 sert dindicateur
de n de mot. Le code 3 est aussi dcodage unique car le 0 sert dindicateur de
dbut de mot. Parmi les codes dcodage unique, il existe les codes dcodage
instantan et les codes dcodage non instantan. Soit par exemple coder le mot
AIE avec le code 2, ceci donne le message 011010 ; au dcodage, la rception du
premier 0 on sait instantanment quil sagit de A qui a t cod, puis la rception
de 110 on peut immdiatement dcoder I, et la rception de 10 on dcodera E.
Le code 3 par contre nest pas instantan. Si lon code AIE, on obtient cette fois
00110. Observons que la rception du premier 0 ne nous permet pas de dcoder
A instantanment, il faut attendre la rception du prochain bit en loccurrence 0
pour se rendre compte quun nouveau symbole dbute et que lon peut dcoder le
prcdent symbole comme tant A. Le code 3 nest pas un code instantan. Soir
c
i
= x
i
1
, x
i
2
, x
i
3
, . . . x
i
n
un mot du vocabulaire du code C, on dnit comme
prxes tous les mots plus courts que c
i
de la forme x
i
1
, x
i
2
, x
i
3
, . . . x
i
m
avec
m < n. Un code est dcodage instantan si et seulement si aucun mot du code
ne peut tre prxe dun autre mot du code.
Ainsi pour le code 2, 0 nest pas prxe de 10 ni de 110 ni de 1110, 10 nest
pas prxe de 110 ni de 1110 et 110 nest pas prxe de 1110. Le code 2 est donc
un code instantan. Par contre pour le code 3, 0 est prxe de 01, 011, 0111 ; 01 est
prxe de 011 et 0111, 011 est prxe de 0111. Par consquent le code 3 nest pas
un code instantan.
Un code instantan est un code dcodage unique, mais la rciproque nest pas
vraie.
TBA1 27
Codage de source H. Dedieu
3.1.4 Longueur moyenne des mots
Lefcacit du codage peut se mesurer par la longueur moyenne des mots codes
c
i
, cette longueur moyenne est

L =
n

i=1
p
i
l
i
(3.1)
o les p
i
sont les probabilits des symboles s
i
reprsents par des mots c
i
de lon-
gueur l
i
.
3.1.5 Ingalit de Kraft-McMillan
On peut montrer quun code instantan de n mots-codes c
i
ayant des longueurs
l
i
existe si et seulement si

l =
n

i=1
m
l
i
1 (3.2)
o mest le nombre de symboles de lalphabet du code. Lingalit de Kraft-McMillan
indique que lon ne peut pas prendre trop de mots ayant une trs faible longueur.
Exemple
Dterminer sil existe un code instantan utilisant un alphabet de code binaire
pour un alphabet de source de 5 lettres codes respectivement avec 1, 2, 3, 4 et 5
bits.
Solution
Nous avons n = 5 et m = 2 et
2
1
+ 2
2
+ 2
3
+ 2
4
+ 2
5
=
31
32
< 1
Ds lors par lquation (3.2) il existe un code instantan. Par exemple 0, 10, 110,
1110, 11110.
3.1.6 Capacit, efcacit et redondance du code
On appelle capacit C du code, la valeur maximale de lentropie de lalphabet
du code :
C = max(H(X)) = log 2(m) (3.3)
28 TBA1
H. Dedieu Codage de source
3.1.6.1 Commentaire
La capacit du code X est la valeur maximale de lentropie des symboles du
code. On a vu que lentropie tait maximale lorsque les m symboles taient qui-
probables, et dans ce cas lentropie vaut log 2(m). Pour un alphabet de code binaire
C = 1.
On appelle efcacit (ou rendement) du code, le rapport entre la longueur
moyenne minimale et la longueur moyenne dun mot du code.
=

l
min

l
(3.4)
Question : que le vaut la longueur moyenne minimale ? Linformation moyenne
produite par la source est H(S). Soit

l la longueur moyenne en symboles de X
permettant de coder lalphabet de source, alors on la relation
H(S) =

lH(X) (3.5)
Soit

l =
H(S)
H(X)
(3.6)
Or on vient de voir que H(X) prenait sa valeur maximale lorsque H(X) = log 2(m),
par consquent la valeur minimum de

l sera

l
min
=
H(S)
log 2(m)
(3.7)
Des quations (3.4), (3.5) et (3.7 on dduit la valeur de lefcacit du code
=
H(X)
log 2(m)
(3.8)
La redondance dun code se dnit comme
= 1 (3.9)
Exemple
Considrons une source dont lalphabet [S] = [A, , B , C , D] et les probabili-
ts associes sont [P] =
_
1
2
, ,
1
4
,
1
8
,
1
8
_
. Lentropie de la source est
H(S) =
4

i=1
p
i
log 2(p
i
) =
1
2
(1)
1
4
(2)
1
8
(3)
1
8
(3) =
7
4
Prenons maintenant un alphabet binaire [X] = [0, 1] et supposons que lon utilise
le codage suivant
TBA1 29
Codage de source H. Dedieu
Symbole A B C D
Code 00 01 10 11
Probabilit
1
2
1
4
1
8
1
8
TABLE 3.2 Code associ aux symboles A, B, C et D
La longueur moyenne est donc

l =
1
2
(2) +
1
4
(2) +
1
8
(2) +
1
8
(2) = 2(
4

i=1
p
i
= 2)
Comme

l
min
=
H(S)
log 2(m)
(m = 2), do

l
min
= H(S) =
7
4
, do
=

l
min

l
=
7
8
= 0.875 = 1 = 0.125
Prenons maintenant un nouveau code La longueur moyenne est maintenant
Symbole A B C D
Code 0 10 110 111
Probabilit
1
2
1
4
1
8
1
8
TABLE 3.3 Nouveau Code associ aux symboles A, B, C et D

l =
1
2
(1) +
1
4
(2) +
1
8
(3) +
1
8
(3) =
7
4
Par consquent pour ce nouveau code
=

l
min

l
= 1 = 0
Le nouveau code atteint la valeur maximale de lefcacit. Ceci a t ralis en
allouant un mot-code de longueur gale la quantit dinformation du symbole de
source associ.
3.2 Codage de Shannon-Fanno
Un tel codage permet de calculer directement le nombre de bits que lon doit
affecter chaque symbole en fonction de sa probabilit dapparition. Soit un al-
phabet [S] n symboles coder dans un alphabet binaire. Les n symboles ont
30 TBA1
H. Dedieu Codage de source
une probabilit dapparition p
i
i = 1 . . . n. Pour calculer la longueur de codage de
chaque symbole, on part de lobservation que pour tout symbole s
i
de probabilit
dapparition p
i
, il existe un entier l
i
tel que
log
2
(
1
p
i
) l
i
< log
2
(
1
p
i
) + 1 (3.10)
le codage de Shannon-Fano consiste affecter l
i
bits au codage du symbole s
i
. Une
question naturelle que lon peut se poser est de savoir si un tel code est dcodage
instantan. La rponse est positive, en effet lquation (3.10) est quivalente
1
p
i
2
l
i
< 2
1
p
i
(3.11)
soit encore
p
i
2
l
i
>
p
i
2
(3.12)
Or lquation (3.12) est lingalit de Kraft (3.2) quand m = 2 (cas du code
alphabet binaire), ce qui prouve quil est toujours possible de construire un code de
Shannon-Fanno dcodage instantan.
3.2.0.2 Exemple
Soit [S] un alphabet 6 symboles [S] = [s
1
, s
2
, s
3
, s
4
, s
5
, s
6
] tel que les pro-
babilits dapparition des symboles soient [P] = [0.30, 0.25, 0.15, 0.15, 0.10, 0.05].
En prenant le logarithme base 2 du vecteur P on trouve
P = [1.7370, 2.000, 2.7370, 2.7370, 3.3219, 4.3219]
qui prouve que les longueurs de code utiliser sont (en tenant compte de lingalit
(3.10) [2, 2, 3, 3, 4, 5]. On remarquera quun tel code est de longueur moyenne

l = 2.65
Un code instantan possible est
s
1
00
s
2
01
s
3
100
s
4
101
s
5
1100
s
6
11100
(3.13)
TBA1 31
Codage de source H. Dedieu
3.3 Codage binaire de Huffman
Le problme qui se pose ici est de trouver une mthode de codage (instantan)
optimal. An que le codage soit optimal, il faut que le mot-code le plus court soit
attribu au symbole ayant la probabilit la plus grande dtre transmis. A cette n,
on ordonne les messages dans lordre dcroissant des probabilits, i.e.
p(s
1
) p(s
2
) p(s
3
) . . . p(s
n1
) p(s
n
) (3.14)
avec, si les l
i
, i = 1 . . . n reprsentent les longueurs associes aux symboles s
i
;
l
1
l
2
l
3
. . . l
n1
l
n
(3.15)
Remarquons, que si lordre ntait pas respect (par ex. l
1
est attribu s
3
et l
3
est attribu s
1
) alors

l) ne peut quaugmenter (dans le cas particulier prsent
p(s
1
)l
3
+ p(s
3
)l
1
p(s
1
)l
1
+ p(s
3
)l
3
).
Dautre part pour arriver au codage optimal, il faut que les deux dernires lon-
gueurs soient gales, i.e.
l
n1
= l
n
(3.16)
En effet si lon suppose que l
n
= l
n1
+ 1, alors il existe un seul mot de longueur
l
n
. Si on limine le dernier bit, le mot l
n1
bits obtenu est prxe de s
n
et par
consquent, il ne peut tre attribu qu s
n
et pas s
n1
( pour la raison que lon
dsire construire un code dcodage instantan). Il sensuit que le l
n
ime bit est
superu et ne fait quaccrotre

l. Un code optimal est donc tel que l
n
= l
n1
.
Le codage dHuffman est bas sur lide suivante. On range les symboles sui-
vant lordre dcroissant des probabilits. Puis on rassemble les symboles s
n
et s
n1
(de probabilits les plus faibles) en un seul symbole de probabilit p
n
+ p
n1
en
sorte que lon ait maintenant un alphabet de n 1 symboles. On ordonne nou-
veau les symboles de ce nouvel alphabet et on runit les deux symboles ayant les
plus faibles probabilits en un seul symbole dont la probabilit est la somme des
probabilits dapparition des deux symboles. On procde ainsi rcursivement jus-
qu ce quil ne reste que deux symboles. On code lun 0 et lautre 1, puis on revient
en arrire et on code chaque paire de symboles avant rassemblement en 0 et 1. An
de comprendre le codage dHuffman, le mieux est dutiliser un exemple. Repre-
nons lexemple qui avait t utilis pour le codage de Shannon-Fanno. Soit [S] un
alphabet 6 symboles [S] = [s
1
, s
2
, s
3
, s
4
, s
5
, s
6
] tel que les probabilits dap-
parition des symboles soient [P] = [0.30, 0.25, 0.15, 0.15, 0.10, 0.05]. Trouvons
le codage dHuffman dun tel alphabet. Pour ce faire construisons larbre de la -
gure 3.1. Aprs construction de larbre et en procdant de la droite vers la gauche
on trouve les codages des symboles selon les lois s
1
00, s
2
10, s
3
11,
32 TBA1
H. Dedieu Codage de source
(1)
s
1
00, s
2
10, s
3
11, s
4
010, s
5
0110, s
6
0111
0.40
0.60
0.15
0.25
0.30
0.30
0.15
0.30
0.25
0.15
0.15
0.10
0.05
(1)
(1)
(1)
(0)
(0)
(0)
(0)
(1)
(0)

s6
s5
s4
s3
s2
s1
FIGURE 3.1 Codage dHuffman
s
4
010, s
5
0110, s
6
0111. Un calcul de la longueur moyenne des mots-
code donne

l = 2.45.
TBA1 33
Codage de source H. Dedieu
3.4 Algorithme de Lempel-Ziv
Le codage de type Huffman est optimal lorsque lon peut considrer que les
symboles de source sont statistiquement indpendants. Or ceci est loin dtre le cas
dans la pratique. Soit coder un texte en franais, il est vident que des corrlations
existent entre certaines lettres, un q aura une probabilit importante dtre suivi
par un u et une probabilit nulle dtre suivi par un w. On saperoit donc trs
vite que le codage de type Huffman est un codage optimal lorsque les symboles de
sources sont "sans mmoire". Ds que des corrlations existent entre des symboles
conscutifs, il faudrait, de faon optimale, an dtendre le codage de type Huff-
man, connatre les probabilits jointes pour des blocs de symboles de longueur su-
prieure ou gale 2. Ceci pose des problmes pratiques, car on ne connat pas ces
probabilits a priori. On peut, bien sr, par estimation dune trs longue squence
de texte, calculer ces probabilits. Le calcul de lestimation des probabilits jointes
est toutefois extrmement onreux en termes de puissance de calcul. En pratique,
on ne les calcule donc pas.
Une mthode de compression trs lgante due Jacob Ziv et Abraham Lempel
ne ncessitant pas de calculs probabilistes a t dcouverte en 1977. Cette mthode,
ou des variantes de cette mthode sont utilises par des programmes de compres-
sion trs populaires tels PKZip et WinZip. Les utilitaires sous Unix "compress" et
"uncompress" sont aussi bass sur le mme algorithme. La mthode a t amliore
notamment par Terry Welch sous le nom LZW.
Lide de base quont suivie Lempel et Ziv est de faire une analyse de la source
de donnes en constituant un dictionnaire des squences les plus courtes non encore
rencontres. Ces squences sont alors temporairement stockes et forment une base
de mots ayant une position dans un dictionnaire qui se constitue au fur et mesure
que les squences sont dcouvertes. La squence de source (mot du dictionnaire)
est alors code sous forme dun pointeur vers les mots du dictionnaire. Une des
proprits remarquables de lalgorithme de Lempel-Ziv est quil nest nullement
ncessaire de transmettre le dictionnaire au rcepteur, le dictionnaire est lui-mme
dcod "on-y" lorsque le dcodeur analyse les donnes compresses.
3.4.1 Codage de type Lempel-Ziv
Prenons un exemple an de comprendre le principe de lalgorithme de codage.
Soit coder la squence :
000101110010100101
On suppose que les symboles binaires 0 et 1 sont dj stocks dans le dictionnaire.
Le symbole 0 sera le premier mot du dictionnaire et le symbole 1 en constituera le
second.
34 TBA1
H. Dedieu Codage de source
Il nous faut faire maintenant lanalyse de la squence, le premier mot diffrent
de 0 et 1 est 00. Le troisime mot du dictionnaire sera donc 00. Puis viendra 01,
etc ... Sur la base de lanalyse effectue sur la squence, le dictionnaire suivant sera
donc constitu
1
:
Position du mot dans le dictionnaire 1 2 3 4 5 6 7 8 9
Mot du dictionnaire 0 1 00 01 011 10 010 100 101
TABLE 3.4 Constitution du mot du dictionnaire par analyse itrative des s-
quences les plus courtes non encore rencontres
Il nous faut maintenant trouver un mcanisme dindexation intelligent tel quon
nait pas transmettre au dcodeur les mots du dictionnaire mais que ceux-ci
puissent tre aussi itrativement recomposs au cours du dcodage. Chaque mot
du dictionnaire va tre spar entre un prxe et son dernier bit, au lieu de trans-
mettre le prxe, on va transmettre son numro dapparition dans le dictionnaire
(sous forme binaire) plus le dernier bit qui sera appel bit dinnovation. Le numro
dindexation du prxe permettra de le retrouver ultrieurement au sein des pr-
xes dj connus. Pour plus de clart continuons lexemple. La squence que lon
Pos. du mot dans dict. 1 2 3 4 5 6 7 8 9
Mot du dictionnaire 0 1 00 01 011 10 010 100 101
Num. prxe - bit dinnov. 1-0 1-1 4-1 2-0 4-0 6-0 6-1
Mots cods 001-0 001-1 100-1 010-0 100-0 110-0 110-1
TABLE 3.5 Constitution de la squence code
enverra au dcodeur est donc constitue par la dernire ligne de la table 3.5, i.e.
0010001110010100100011001101
Pour constituer la squence observons que lon code 00, le premier lment trans-
mettre, en remarquant que le prxe est 0 et le bit dinnovation 0. Par consquent
00 est constitu du mot dictionnaire numro 1 suivi du bit dinnovation 0. Cest ce
que nous avons cod 1 0. Comme on a 6 numros de prxes transmettre (les
prxes 7, 8 et 9 ne sont pas utiliss), il faut au moins 3 bits pour coder le prxe,
on codera 1 0 sous la forme 001 0. Remarquons par exemple que le neuvime
mot coder 101 a pour prxe 10 (mot numro 6 dans le dictionnaire) et bit dinno-
vation 1. On le code sous la forme 6 1 qui lorsque lon code le prxe en binaire
se traduit par 110 1 soit 1101.
1. Ce dictionnaire est unique pour la squence considre.
TBA1 35
Codage de source H. Dedieu
Si lon considre la longueur de la squence code (7 4 = 28) par rapport
la longueur de la squence initiale qui tait de 18, on constate que lalgorithme
a produit une expansion plutt quune compression. Ce nest videmment pas vrai
pour des squences longues o de nombreuses rptitions et corrlations existent.
Ainsi un algorithme de type Lempel-Ziv compresse des textes anglais avec un rap-
port de compaction de 55% l o un algorithme de type Huffman namne qu des
rapports de compaction de lordre de 43%.
3.4.2 Dcodage avec lalgorithme Lempel-Ziv
Observons maintenant le mcanisme du dcodage an de comprendre la nature
itrative du processus de recomposition des mots du dictionnaire qui se fait paral-
llement au dcodage. Le dcodeur avant de recevoir la squence sait seulement
quil dispose de deux mots du dictionnaires 0 et 1. Comme pour le codeur, 0 est le
mot numro 1 du dictionnaire et 1 est le numro 2. Le dcodeur connat en outre la
longueur des blocs dcoder, en loccurrence, 4 bits dans notre exemple prcdent.
Le premier bloc que reoit le dcodeur est 0010, il comprend donc que le bit
dinnovation est 0 et quil a affaire un prxe numro 001 (en binaire). Le pr-
xe ainsi index est 0 alors que le bit dinnovation tait 0, il dcode donc 00. Et
il dispose ds maintenant du 3ime mot code du dictionnaire qui ds prsent est
identi 00. Il traite alors le second bloc de donnes 0011, il reconnat le bit din-
novation 1 et lindex du prxe 001 lui permet didentier que le premier mot code
est prxe, il dcode donc 01 et constitue 01 comme tant son 4ime mot code. Puis
il reoit 1001 et reconstitue un index pour le 4ime mot code et un bit dinnovation
1 qui lui permet cette fois de dcoder 011, etc ....
3.5 Exercices
Exercice 3.5.1
Soit p la probabilit dun vnement, tracer la valeur de la quantit dinforma-
tion relative lvnement en fonction de p pour 0 p 1.
Exercice 3.5.2
Une source met alatoirement un symbole parmi quatre symboles possibles.
Ces quatre symboles ont des probabilits doccurrence telles que p
0
= 0.4, p
1
=
0.3, p
2
= 0.2 et p
3
= 0.1 et sont statistiquement indpendants.
1. Calculer linformation associe lmission de chacun de ces 4 symboles.
36 TBA1
H. Dedieu Codage de source
2. Calculer lentropie de la source.
Exercice 3.5.3
Considrons une source sans mmoire (les symboles mis sont statistiquement
indpendants) dont lalphabet est constitu par K symboles quiprobables.
1. Quelle est le meilleur codage possible pour une telle source, longueur xe
ou variable ? Pourquoi ?
2. Quelle condition doit satisfaire K pour que lefcacit du codage soit maxi-
male ?
Exercice 3.5.4
Considrez les 4 codes lists dans la table suivante :
Symbole Code I Code II Code III Code IV
s
0
0 0 0 00
s
1
10 01 01 01
s
2
110 001 011 10
s
3
1110 0010 110 110
s
4
1111 0011 111 111
1. Lesquels de ces codes sont dcodage instantans ?
2. Calculer lingalit de Kraft-McMillan pour chacun de ces codes. Discutez
les rsultats en fonctions de ceux obtenus en 1).
Exercice 3.5.5
Considrez des lettres dun alphabet ayant les probabilits dapparition telles
que :
Lettre a i l m n o p y
Probabilit 0.1 0.1 0.2 0.1 0.1 0.2 0.1 0.1
TABLE 3.6 Table associe lexercice 3.5.5
Calculez deux codes diffrents de Huffman pour cet alphabet. Dans un cas,
reportez un symbole combin dans larbre la position la plus haute, dans lautre
dans la position la plus basse. Pour chacun des codes obtenus, calculez la longueur
moyenne des mots code ainsi que la variance de la longueur moyenne des mots
code. Lequel de ces deux codages possibles choisirez-vous en pratique ?
TBA1 37
Codage de source H. Dedieu
Exercice 3.5.6
Une source discrte sans mmoire a un alphabet de 7 symboles dont les proba-
bilits dapparition sont dcrites dans la table suivante :
Symbole s
0
s
1
s
2
s
3
s
4
s
5
s
6
Probabilit 1/4 1/4 1/8 1/8 1/8 1/16 1/16
Calculer le code de Huffman associ ainsi que son rendement.
Exercice 3.5.7
Considrez une source discrte sans mmoire avec un alphabet {s
0
, s
1
, s
2
}
dont les probabilits dapparition sont respectivement {0.7, 0.15,0.15} . Appliquez
le codage dHuffman cette source et montrez que la longueur moyenne du code
est 1.3 bits/symbole.
Exercice 3.5.8
En considrant la gure 3.2, donnez les codes associs aux symboles A, B, C,
D, E, F, G.
FIGURE 3.2 Figure lie lexercice 3.5.8
38 TBA1
H. Dedieu Codage de source
Exercice 3.5.9
Un calculateur excute 4 instructions qui sont reprsentes par les mots code
(00, 01, 10, 11). En supposant que ces instructions sont utilises de manire ind-
pendante avec des probabilits (1/2, 1/8, 1/8, 1/4), calculez le pourcentage dco-
nomie de bits qui pourrait tre ralis avec un codage de source optimal. Trouver
un code de Huffman qui ralise ce codage optimal.
Exercice 3.5.10
Considrez la squence binaire suivante
011100011100011100011100
Utilisez lalgorithme de Lempel-Ziv pour encoder cette squence.
Exercice 3.5.11
Une source sans mmoire a un alphabet A tel que
A = {5, 3, 1, 0, 1, 3, 5}
Les probabilits correspondantes sont
{0.05, 0.1, 0.1, 0.15, 0.05, 0.25, 0.3}
1. Trouver lentropie de la source.
2. En supposant que la source est quantie selon la rgle suivante :
Q(5) = Q(3) = 4
Q(1) = Q(0) = Q(1) = 0
Q(3) = Q(5) = 4
trouver lentropie de la source quantie.
3. Proposer un codage optimal de cette source quantie.
Exercice 3.5.12
Une source sans mmoire met des symboles a
1
, a
2
, a
3
, a
4
avec des probabi-
lits correspondantes p
1
= p
2
= 0.3365 et p
3
= p
4
= 0.1635.
1. Trouver lentropie de la source.
2. Trouver un code de Huffman pour cette source.
3. Calculer la longueur moyenne du code obtenu.
4. Calculer le rendement du code obtenu.
TBA1 39
Codage de source H. Dedieu
Exercice 3.5.13
Une source sans mmoire a un alphabet de 5 symboles S
1
, S
2
, S
3
, S
4
et S
5
.
Ces cinq symboles sont quiprobables. Evaluez le rendement dun code binaire de
longueur constante dans les trois cas suivants :
1. On code chaque symbole.
2. On code des paires de symboles.
3. On code des successions de trois symboles.
Exercice 3.5.14
Une source sans mmoire met des symboles S
1
, S
2
, S
3
, S
4
avec des probabili-
ts p
1
= 0.5, p
2
= 0.25, p
3
= 0.125 et p
4
= 0.125.
1. Coder chaque symbole avec un code de longueur xe et calculer le rendement
du code.
2. Trouver un code dcodage instantan de rendement 100%.
Exercice 3.5.15
Le schma de la Figure 1 montre un schma dautomate de Markov. Cet auto-
mate produit un symbole toutes les T s., ce symbole peut tre s
0
ou s
1
. On lit le
schma de la Figure 3.3 de la manire suivante ; si s
0
a t produit linstant k.T,
la probabilit dobtenir un nouveau s
0
linstant (k + 1).T est 1/4, alors que la
probabilit dobtenir s
1
(k + 1).T est alors 3/4. (De tels automates sont utiliss
pour modliser la production de parole.). On observera quune tel automate produit
des donnes qui sont dpendantes dans le temps. En supposant que lon code des
squences de deux symboles conscutifs :
1. Calculer lentropie de la source constitue par lautomate.
2. Proposer un codage de Huffman des squences de deux symboles.
3. Calculer lefcacit du code ainsi cr.
Exercice 3.5.16
On considre une source S
1
sans mmoire dlivrant des symboles {s
0
, s
1
, s
2
, s
3
}
avec des probabilits respectives 1/4, 1/2, 1/16, 3/16. Dautre part on considre
une source S
2
sans mmoire dlivrant des symboles {t
0
, t
1
, t
2
, t
3
} avec des pro-
babilits respectives 1/8, 1/32, 1/64, 53/64. On considre ensuite une source S
3
qui dlivre alatoirement soit un symbole de S
1
, soit un symbole de S
2
chaque
coup dhorloge ; la probabilit que S
1
soit choisie est de 3/4.
40 TBA1
H. Dedieu Codage de source
s
0
s
1
1|4 3|4 3|4
3|4
1|4
1|4
FIGURE 3.3 Automate de Markov
1. Calculer lentropie de chacune des trois sources S
1
, S
2
et S
3
.
2. Proposer un codage de Huffman des squences de symboles pour chacune
des trois sources.
3. Calculer lefcacit des trois codes ainsi crs.
Exercice 3.5.17
Soit une source S
1
sans mmoire dlivrant des symboles {s
0
, s
1
, s
2
, s
3
, s
4
}
avec des probabilits respectives 1/16, 1/16, 1/8, 1/4, 1/2. Sans faire appel
un graphe de type Huffman, proposer un code dcodage instantan qui ait une
efcacit de 100%. Justier vos choix et expliquez bien pourquoi lefcacit est de
100%.
Exercice 3.5.18
On considre la squence suivante que lon veut encoder par lalgorithme de
Lempel-Ziv.
010110111011110111110111111
On considre que 0 est le premier mot code et que 1 est le second mot code. On
considre dautre part que les mots code sont numrots partir de 1.
1. Calculer la squence code par lalgorithme de Lempel-Ziv.
2. Calculer le taux de compression obtenu.
3. Vriez que la squence obtenue est bien juste en procdant au dcodage de
la squence.
TBA1 41
Codage de source H. Dedieu
42 TBA1
4
Codes dtecteurs et correcteurs
derreur
CONTENU
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2 Prliminaires pour les codes linaires par blocs . . . . . 44
4.2.1 Champ de Galois CG(2) . . . . . . . . . . . . . . . . . 44
4.2.2 Distance de Hamming . . . . . . . . . . . . . . . . . . 45
4.2.3 Matrice dlments binaires . . . . . . . . . . . . . . . 46
4.3 Principe gnral des codes dtecteurs-correcteurs . . . . 48
4.3.1 Gnralits . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.2 Capacit de dtection dun code . . . . . . . . . . . . . 49
4.3.3 Capacit de correction dun code . . . . . . . . . . . . . 50
4.3.4 Rendement dun code . . . . . . . . . . . . . . . . . . 51
4.4 Codes linaires par blocs (n, k) . . . . . . . . . . . . . 51
4.4.1 Principe et proprits . . . . . . . . . . . . . . . . . . . 51
4.4.2 Codes blocs gnrs par des matrices systmatiques . . 53
4.5 Dtection derreur avec un code linaire par bloc . . . . 54
4.6 Correction derreurs avec les codes blocs linaires . . . . 56
4.7 Code de Hamming . . . . . . . . . . . . . . . . . . . . 57
4.8 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 58
Rsum Ce chapitre introduit le principe des codes dtecteurs et correcteurs
derreurs.
c 2010 HEIG-VD.
43
Codes dtecteurs et correcteurs H. Dedieu
4.1 Introduction
La probabilit derreur dun systme de transmission est une fonction du rapport
Signal Bruit de la liaison. Pour augmenter ce rapport on est amen augmenter
la puissance du signal mis. Malheureusement ceci nest pas toujours possible car
on se heurte trs vite une limitation dordre technologique ou conomique.
Pour amliorer la qualit de transmission on fait usage du codage de canal
qui consiste ajouter de la redondance au signal de source. Cette redondance
est ajoute de manire intelligente de faon pouvoir dtecter et ventuellement
corriger des erreurs. Le codage dtecteur et correcteur derreur est lappellation
plus commune du codage de canal. La redondance que lon ajoute peut tre vue
comme une signature que lon impose sur linformation, cette signature est dyna-
mique dans le sens o elle dpend de linformation. A la rception on vrie la
signature du messsage, si elle est correcte, on dcide quil ny a pas derreur de
transmission. Si la signature est incorrecte, on dtecte une erreur que lon peut cor-
riger dans certains cas. Il existe deux grandes familles de codes : les codes par
blocs et les codes convolutionnels. Lorsquon utilise des codes par blocs, les bits
de redondance sont calculs partir des bits dinformation provenant du mme
bloc. Lorsquon utilise des codes convolutionnels, les bits de redondance sont cal-
culs partir des bits dinformation de plusieurs blocs prcdant le bloc courant.
4.2 Prliminaires pour les codes linaires par blocs
4.2.1 Champ de Galois CG(2)
On considrera un espace vectoriel form par des vecteurs v = (v
1
, v
2
, . . . v
n
)
o les v
i
sont gaux 0 o 1. Ces vecteurs seront dsigns dans la suite comme
des n uples. Lespace vectoriel considr est un espace vectoriel de dimension n
puisquil existe une base orthonorme de n vecteurs (1, 0, . . . 0), (0, 1, 0, . . . 0),
. . ., (0, 0, . . . , 0, 1). Le produit scalaire de deux vecteurs u et v se dnit comme
u.v = u
1
v
1

u
2
v
2

u
3
v
3

. . . u
n
v
n
(4.1)
o le symbole

est laddition modulo 2 , i.e.
0

0 = 0
0

1 = 1
1

0 = 1
1

1 = 0
4.2.1.1 Exemple
Soit u = (1, 0, 1, 0, 1) et v = (1, 1, 1, 1, 0) on a u.v = 1

0 =
0, dautre part ||u|| = 3 et ||v|| = 4.
44 TBA1
H. Dedieu Codes dtecteurs et correcteurs
4.2.2 Distance de Hamming
La distance de Hamming entre deux vecteurs u et v se dnit comme le nombre
de positions o les bits de u et de v diffrent.
4.2.2.1 Exemple
Soit u = (1, 0, 1, 0, 1) et v = (1, 1, 1, 1, 0) on a d(u, v) = 3.
TBA1 45
Codes dtecteurs et correcteurs H. Dedieu
4.2.3 Matrice dlments binaires
On dnira par G(n, k) une matrice dlments binaires k lignes et n co-
lonnes avec k < n dont les lments appartiennent CG(2).
4.2.3.1 Exemple
G(4, 2) =
_
0 1 0 1
1 1 0 1
_
La matrice G(n, k) est une matrice de dimension k n qui fera correspondre un
k uple un n uple, i.e
(u
1
, u
2
, . . . u
k
) G(n, k) = (v
1
, v
2
, . . . , v
k
, v
k+1
, . . . v
n
)
1 k k n 1 n
La matrice G(n, k) sera appele dans la suite matrice gnratrice dun code (n, k).
4.2.3.2 Exemple
(1, 0)
_
0 1 0 1
1 1 0 1
_
= (0, 1, 0, 1)
Proprit 1 La matrice G(n, k) engendre un sous-espace vectoriel de dimension
k
Nous pouvons aisment vrier cette proprit sur lexemple prcdent o lon fait
correspondre des 2 uples des 4 uples. Les 2 uples forment un espace
vectoriel de dimension 2 puisquils peuvent tous sexprimer en fonction de la base
2 lments (0, 1) et (1, 0) car
(0, 0) = 0(0, 1) = 0(1, 0)
(0, 1) = 1(0, 1)
(1, 0) = 1(1, 0)
(1, 1) = 1(0, 1) + 1(1, 0)
Les 4 uples engendrs par G(4, 2) ne forment pas un espace vectoriel de dimen-
sion 4 mais un espace vectoriel de dimension 2. Vrions-le
(0, 0)
_
0 1 0 1
1 1 0 1
_
= (0, 0, 0, 0)
(0, 1)
_
0 1 0 1
1 1 0 1
_
= (1, 1, 0, 1)
46 TBA1
H. Dedieu Codes dtecteurs et correcteurs
(1, 0)
_
0 1 0 1
1 1 0 1
_
= (0, 1, 0, 1)
(1, 1)
_
0 1 0 1
1 1 0 1
_
= (1, 0, 0, 0)
On vrie aisment que les 4uples gnrs ne sont pas linairement indpendants
puisque 2 dentre-eux peuvent servir de base ; (1, 1, 0, 1) et (0, 1, 0, 1) forment
une base puisque
(0, 0, 0, 0) = 0 (1, 1, 0, 1) = 0 (0, 1, 0, 1)
(1, 1, 0, 1) = 1 (1, 1, 0, 1)
(0, 1, 0, 1) = 1 (0, 1, 0, 1)
(1, 0, 0, 0) = 1 (1, 1, 0, 1) + 1 (0, 1, 0, 1)
Proprit 2 Soit G

une matrice engendre par combinaison linaire des lignes de


G, le sous-espace vectoriel engendr par G

est le mme que celui engendr par G.


Pour sen convaincre soient les matrices G et G

suivantes
G =
_
0 1 0 1
1 1 0 1
_
G

=
_
0 1 0 1
1 0 0 0
_
La premire ligne de G

est identique la premiere ligne de Gtandis que la deuxime


ligne de G

rsulte de laddition des 2 lignes de G. On saperoit maintenant quen


appliquant G

tous les 2 uples on obtient les mmes 4 uples darrive que


par G, i.e
(0, 0)
_
0 1 0 1
1 0 0 0
_
= (0, 0, 0, 0)
(0, 1)
_
0 1 0 1
1 0 0 0
_
= (1, 0, 0, 0)
(1, 0)
_
0 1 0 1
1 0 0 0
_
= (0, 1, 0, 1)
(1, 1)
_
0 1 0 1
1 0 0 0
_
= (1, 1, 0, 1)
TBA1 47
Codes dtecteurs et correcteurs H. Dedieu
Proprit 3 Par combinaison des lignes (et ventuellement des colonnes) de G, on
peut toujours convertir G sous la forme canonique systmatique
G
S
= ( I
k
..
, P
..
)
k k k n k
(4.2)
avec I
k
matrice identit k k, et o P est une matrice k n k.
G =
_
0 1 0 1
1 1 0 1
_
G

=
_
1 1 0 1
0 1 0 1
_
G
S
=
_
1 0 0 0
0 1 0 1
_
La transformation a eu lieu en des tapes, G

est dabord fabrique par change des


lignes de G. G
S
est constitu en gardant la deuxime ligne de G

puis en addition-
nant les deux lignes de G

pour former la premire lignes de G


S
.
Proprit 4 Soit G
S
= (I
k
P), il existe une matrice
H
S
=
_
P
T
, I
nk
_
(4.3)
H
S
= ( P
T
..
, I
nk
. .
)
n k k n k n k
(4.4)
telle que
G
S
H
T
S
= 0 (4.5)
Dmonstration :
G
S
H
T
S
= (I
k
, P)
_
P
I
nk
_
= P

P = 0
4.3 Principe gnral des codes dtecteurs-correcteurs
4.3.1 Gnralits
Supposons une source qui fournit de k symboles binaires (k uples)
X = (x
1
, x
2
, . . . x
k
) avec x
i
= 0 ou 1 pour i = 1 . . . n
Il y a donc 2
k
messages X possibles. Pour rduire les erreurs de transmissions on
ajoute de la redondance au message en remplaant les 2
k
mots k bits par 2
k
mots
n bits, i.e
X = (x
1
, x
2
, . . . x
k
) Y = (y
1
, y
2
, . . . y
k
, y
k+1
, . . . , y
n
)
48 TBA1
H. Dedieu Codes dtecteurs et correcteurs
avec n > k. BIEN QUIL Y AIT 2
n
mots possibles pour Y ON NUTILISE AU
CODAGE QUE 2
k
MOTS PARMI les 2
n
mots possibles. On parle de code (n, k)
o k est le nombre de bits dinformation et n k est le nombre de bits de contrle.
Le code Y fait apparatre des codes possibles et des codes impossibles (Cf. Figure
4.1). Ds lors, si au cours dune transmission, le nombre derreur gnres la
rception dun mot Y fait glisser le code Y dun code possible un code impossible,
on sait que le mot reu nest pas correct, il y a dtection derreur. On pourra aussi
dans certains cas corriger le faux Y en le remplaant par le Y possible le plus
proche. Toute lintelligence des codes dtecteurs correcteurs sera contenue dans la
manire daffecter les bits de contrle en fonction des bits dinformation.
2
n
2
k
_

x
x
x
x
x
x
x
x

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
_

{X} {Y }
FIGURE 4.1 Correspondance entre les X et les Y
4.3.2 Capacit de dtection dun code
Si le mot transmis est entach dune erreur et sil est tel que le mot reu nappar-
tienne pas au code alors la dtection derreur est immdiate. La question qui vient
immdiatement lesprit est de savoir combien derreurs binaires on peut dtecter
au plus. Soit d
min
la plus petite distance qui existe entre deux mots du code Y et
soit q le nombre derreurs que lon peut faire tel que le code possible devienne un
code impossible. De faon claire
q = d
min
1
car ds que q atteint d
min
il y a possibilit de passer dun code possible un autre
code possible tout en ayant fait d
min
erreurs. Dautre part tant que q est infrieur
d
min
il est certain que le code reu est un code impossible. La quantit q = d
min
1
est appele capacit de dtection dun code.
TBA1 49
Codes dtecteurs et correcteurs H. Dedieu
Codes possibles

(1, 0)
(0, 1)
(0, 0)
(1, 1)

FIGURE 4.2 Exemple de code (2, 1)


4.3.2.1 Exemple
Soit le code (2, 1) tel que 0 (0, 0) et 1 (1, 1). Un tel code est schmatis
la gure 4.2 Un seul bit derreur fait passer dun code possible un code impos-
sible. Deux bits derreurs font passer dun code possible un autre code possible
et donc on ne peut videmment dtecter deux bits derreurs. La distance minimum
entre deux mots du code est d
min
= 2 et on vrie bien que q = d
min
1 = 1 est
bien le nombre derreurs dtectables.
4.3.2.2 Exemple
Soit le code (3, 1) tel que 0 (0, 0, 0) et 1 (1, 1, 1). Un tel code est
schmatis la gure 4.3. Clairement la capacit de dtection dun tel code est
q = 2.
4.3.3 Capacit de correction dun code
On aborde la question de savoir si lorsquon a dtect une erreur, il est possible
de la corriger. Et dabord, sur quel principe devrait-on la corriger ? Sur la base du
mot possible le plus proche du mot impossible que lon a reu. (Le plus proche
au sens de la distance de Hamming). Voyons dabord sur les exemples que nous
venons de considrer. Dans le code (2, 1) de la gure 4.2 on voit que lorsque lon
est en erreur, on ne peut dcider du mot possible le plus proche puisque les deux
mots possibles sont tous deux une distance de 1. Ds lors il est clair que la capacit
de correction du code considr est 0. Avec le code (3, 1), on voit quune erreur
simple peut tre corrige par le fait que lon reste plus proche du mot possible
juste que du mot possible faux. Si lon fait deux erreurs simples alors le mot reu
est plus proche du mot possible faux que de celui qui tait juste, si lon corrige,
50 TBA1
H. Dedieu Codes dtecteurs et correcteurs
(1, 1, 1)
(0, 0, 0)

Codes possibles

FIGURE 4.3 Exemple de code (3, 1)


on corrigera faussement. La capacit de correction du code considr est donc 1.
Raisonnons maintenant de faon gnrale. Posons comme t le nombre derreurs
qui sont telles que lon reste toujours plus proche du mot possible originel que de
tout autre mot possible. Il faut donc que t soit plus petit que la moiti de la distance
minimale entre deux points du code. Ds lors
2t d
min
1 (4.6)
t est appel capacit de correction du code .
4.3.4 Rendement dun code
On appelle rendement dun code le rapport entre le nombre de bits dinforma-
tion et le nombre de bits par bloc.
=
k
n
(4.7)
4.4 Codes linaires par blocs (n, k)
4.4.1 Principe et proprits
On engendre ces codes laide de matrices gnratrices (n, k). Comme nous
lavons vu ces matrices gnratrices sont des matrices k lignes de n uples li-
nairement indpendants (n > k). Ces matrices vont nous permettre de transformer
des blocs de k bits en blocs de n bits.
TBA1 51
Codes dtecteurs et correcteurs H. Dedieu
4.4.1.1 Exemple
Soit une matrice gnratrice (7, 3), i.e.
G =
_
_
_
1 1 1 0 1 0 0
0 1 1 1 0 1 1
0 0 1 1 1 0 0
_
_
_
Cette matrice transforme donc des blocs de 3 bits en blocs de 7 bits. Comme il y a
2
3
= 8 messages possibles, le code sera form des 8 blocs de 7 bits suivants
(0 0 0) G = (0 0 0 0 0 0 0)
(0 0 1) G = (0 0 1 1 1 0 0)
(0 1 0) G = (0 1 1 1 0 1 1)
(0 1 1) G = (0 1 0 0 1 1 1)
(1 0 0) G = (1 1 1 0 1 0 0)
(1 0 1) G = (1 1 0 1 0 0 0)
(1 1 0) G = (1 0 0 1 1 1 1)
(1 1 1) G = (1 0 1 0 0 1 1)
Proprit 1 Toute combinaison linaire des mots du code est encore un mot du
code.
La dmonstration de cette proprit est quasi-vidente. Soit u et v deux mots codes
(2 n uples). Une combinaison linaire de ces 2 mots codes scrit
s = u + v
Or u et v tant des mots codes, ils sont issus de k uples et scrivent u = u
d
G et
v = v
d
G o u
d
et v
d
sont deux des 2
k
k uples possibles. Ds lors
s = u
d
G + v
d
G =
_
u
d
+ v
d
_
G
Or dans lespace des k uples, la somme de 2 k uples est encore un k uple
puisque laddition est modulo-2. De mme la combinaison linaire de 2 k uples
est encore un k uple. (En fait un champ de Galois est tel que muni de ces
oprations daddition et de multiplication on ne sorte jamais du champ). Donc
_
u
d
+v
d
_
est encore un k uple, appelons-le w
d
, do
s = w
d
G
Do lon tire que s est bien un mot code.
Proprit 2 La distance minimale entre deux mots du code est gale au poids du
vecteur le plus faible du code (en exceptant le vecteur nul).
52 TBA1
H. Dedieu Codes dtecteurs et correcteurs
Cette proprit se dmontre partir de la prcdente. Comme toute combinaison
linaire des mots du code est encore un mot du code, la diffrence de 2 mots du
code (qui est donc aussi une combinaison linaire) est encore un mot du code. Par
consquent les diffrences entre mots du code sont des mots de code. Il sensuit
que la distance d
min
entre 2 mots du code est le vecteur de moindre poids dans tous
les mots codes (except le vecteur nul qui est la diffrence entre deux mmes mots
du code).
4.4.1.2 Exemple
Soient les 8 mots codes dnis dans lexemple prcdent. Trouver la distance
minimale entre les mots du code. En dduire la capacit de dtection et de correc-
tion du code. On voit donc que d
min
= 3. Par suite la capacit de dtection est
u
1
= (0 0 0 0 0 0 0 ) ||u
1
|| = 0
u
2
= (0 0 1 1 1 0 0 ) ||u
2
|| = 3
u
3
= (0 1 1 1 0 1 1 ) ||u
3
|| = 5
u
4
= (0 1 0 0 1 1 1 ) ||u
4
|| = 4
u
5
= (1 1 1 0 1 0 0 ) ||u
5
|| = 4
u
6
= (1 1 0 1 0 0 0 ) ||u
6
|| = 3
u
7
= (1 0 0 1 1 1 1 ) ||u
7
|| = 5
u
8
= (1 0 1 0 0 1 1 ) ||u
8
|| = 4
d
min
1 = 2. La capacit de correction est telle que 2t = d
min
1, do lon
dduit que lon peut corriger une seule erreur simple.
4.4.2 Codes blocs gnrs par des matrices systmatiques
On crit en gnral les matrices gnratrices sous forme systmatique, ceci dans
le but que les k bits den-tte du bloc de codage soient exactement les k bits din-
formation. En effet, la matrice systmatique scrivant sous la forme (I
k
, P) o I
k
est la matrice identit k k, les k premiers bits ne sont pas affects par G
S
4.4.2.1 Exemple
G =
_
_
_
1 1 1 0 1 0 0
0 1 1 1 0 1 1
0 0 1 1 1 0 0
_
_
_ G
S
=
_
_
_
1 0 0 1 1 1 1
0 1 0 0 1 1 1
0 0 1 1 1 0 0
_
_
_
Dans cet exemple, la premire ligne de G
S
est la somme des 2 premires lignes
de G. La deuxime ligne de G
S
est la somme de la deuxime et de la troisime
ligne de G. La troisime ligne de G
S
est la troisime ligne de G.
TBA1 53
Codes dtecteurs et correcteurs H. Dedieu
Soit la correspondance
(x
1
, x
2
, x
3
) (y
1
, y
2
, y
3
, y
4
, y
5
, y
6
, y
7
) = (x
1
, x
2
, x
3
)G
S
On voit que
y
1
= x
1
y
2
= x
2
y
3
= x
3
_
_
_bits d

information
y
4
= x
1
+ x
3
y
5
= x
1
+ x
2
+x
3
y
6
= x
1
+ x
2
y
7
= x
1
+ x
2
_
_
_
_
_
bits de contr ole
Lide sous-jacente la dtection derreur, est donc de vrier la rception que
les relations de contrle sont bien remplies. Si elles le sont, on conclut la non
prsence derreurs. On notera toutefois que pour un nombre derreurs suprieur
la capacit de dtection du code on peut conclure faussement la non prsence
derreurs.
4.5 Dtection derreur avec un code linaire par bloc
Le principe de dtection derreur est simple. On a des bits dinformation et des
bits de contrle. Les bits de contrle sont calculs partir des bits dinformation
selon une loi dencodage (matrice gnratrice) a priori connue par le rcepteur. A
la rception, on fait la vrication que les bits de contrle et les bits dinformation
sont bien en correspondance au travers de la loi dencodage. Voyons comment cela
se traduit dune manire algbrique. Le message transmis partir de linformation
x est
y = xG
S
(4.8)
Or on sait quil existe une matrice dite de contrle H
S
, dduite de G
S
selon lqua-
tion (4.5) telle que
G
S
H
T
S
= 0 (4.9)
Par consquent, si lon multiplie le message y par H
S
on obtient
yH
T
S
= xG
S
H
T
S
= 0 (4.10)
La technique de dtection est donc simple, le message reu est multipli par la
matrice H
T
S
, si le rsultat est nul, on dcide que le mot transmis ne contient pas
derreur. Il est toutefois vident que si le nombre derreurs est suprieur la ca-
pacit de dtection du code, on pourra se retrouver dans un cas ou cest un code
54 TBA1
H. Dedieu Codes dtecteurs et correcteurs
possible diffrent du code possible mis qui est reu, la dtection derreur est dans
ce cas inoprante.
Admettons que x soit le mot coder, et que y = xG
S
soit son code. Si des
erreurs se produisent pendant la transmission cest un mot derreur e qui se rajoute
y si bien que lon reoit effectivement
y = y + e (4.11)
Lorsquon reoit y, on multiplie donc par H
S
, i.e.
s = yH
T
S
= yH
T
S
. .
+ eH
T
S
= eH
T
S
0
(4.12)
s est appel syndrome pour la raison quil dtecte une anomalie de transmission.
En effet, sil ny a pas derreur de transmission e = 0 et daprs (4.12) s = 0.
4.5.0.2 Exemple
Soit G
S
la matrice systmatique
G
S
=
_
_
_
1 0 0 1 1 1 1
0 1 0 0 1 1 1
0 0 1 1 1 0 0
_
_
_
calculer le syndrome associ G
S
. Construisons H
S
selon lquation ( 4.4), il vient
H
S
=
_
_
_
_
_
1 0 1 1 0 0 0
1 1 1 0 1 0 0
1 1 0 0 0 1 0
1 1 0 0 0 0 1
_
_
_
_
_
Le syndrome s scrit donc
s = yH
T
S
= ( y
1
, y
2
, y
3
, y
4
, y
5
, y
6
, y
7
)
_
_
_
_
_
_
_
_
_
_
_
_
_
1 1 1 1
0 1 1 1
1 1 0 0
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
_
_
_
_
_
_
_
_
_
_
_
_
_
=
_
_
_
_
_
y
1
+ y
3
+ y
4
y
1
+ y
2
+ y
3
+ y
5
y
1
+ y
2
+ y
6
y
1
+ y
2
+ y
7
_
_
_
_
_
T
(4.13)
TBA1 55
Codes dtecteurs et correcteurs H. Dedieu
4.5.0.3 Remarque :
Le mme exemple avait t trait prcdemment et on avait vu que les bits de
contrle scrivaient au codage
y
4
= x
1
+ x
3
= y
1
+ y
3
y
5
= x
1
+x
2
+ x
3
= y
1
+y
2
+y
3
y
6
= x
1
+ x
2
= y
1
+ y
2
y
7
= x
1
+ x
2
= y
1
+ y
2
(4.14)
On vriera quil ny a aucune contradiction entre (4.13) et (4.14). En effet en
addition modulo 2 on a forcment y
4
+ y
4
= 0, y
5
+ y
5
= 0, etc. en somme que
lquation (4.14) est quivalente
y
1
+ y
3
+ y
4
= 0
y
1
+y
2
+ y
3
+ y
5
= 0
y
1
+ y
2
+ y
6
= 0
y
1
+ y
2
+ y
7
= 0
(4.15)
donc la relation de dcodage des erreurs (4.13) est bien quivalente (4.15) quand
s = 0.
4.6 Correction derreurs avec les codes blocs linaires
Soit e le vecteur derreur lors de la transmission, i.e
e = (e
1
, e
2
, . . . , e
n
) (4.16)
Lorsque lon calcule le syndrome par lquation (4.12), il vient
s = e
1
h
1
+ e
2
h
2
+ . . . + e
n
h
n
(4.17)
o les h
i
sont les vecteurs colonnes de H
S
. On remarque que le syndrome est une
combinaison linaire des n colonnes de la matrice H
S
. Cette relation peut tre
utilise pour corriger le mot reu sil est possible de retrouver de manire univoque
les coefcients e
i
qui vrient (4.17). On remarque ainsi que si les n colonnes de
H
S
sont toutes distinctes et non nulles, un code linaire peut corriger toutes les
erreurs simples. En effet une seule erreur la kime position produit un syndrome
s = h
k
. Par consquent si toutes les colonnes de H
S
sont distinctes, lerreur peut
tre localise.
56 TBA1
H. Dedieu Codes dtecteurs et correcteurs
4.6.0.4 Exemple
Supposons dans lexemple prcdent que s = (0, 1, 0, 0). On constate alors
que s est la cinquime colonne de H
S
, do lon dduit que e
5
= 1 et donc
e = (0, 0, 0, 0, 1, 0, 0). Le mot reu peut tre corrig en retranchant lerreur,
i.e. y = y +e (On rappelle quen addition modulo 2, laddition est quivalente la
soustraction.)
4.7 Code de Hamming
On ne sintresse ici quaux codes linaires corrigeant toutes les erreurs simples
(d
min
= 3). En vue de maximiser le rendement =
k
n
, on peut se demander quelle
est la valeur maximale n des mots de code corrigeant toute erreur simple si le
nombre de bits de contrle n k est x. Comme les vecteurs colonnes de la
matrice H
S
sont des nkuples, on peut en former 2
nk
1 au plus qui soient tous
non nuls et distincts. On a vu prcdemment quun code bloc peut corriger toute
erreur simple si les n colonnes sont non nulles et distinctes. Il faut donc que
n 2
nk
1 (4.18)
et la longueur maximale des mots est atteinte lorsque les deux membres de cette in-
galit sont gaux. Le code est alors un code de Hamming. Le tableau suivant donne
quelques-uns des codes de Hamming et leurs rendements : Un code de Hamming
n k 2 3 4 5 6 7
n 3 7 15 31 63 127
k 1 4 11 26 57 120
0.333 0.571 0.733 0.839 0.905 0.945
TABLE 4.1 Codes de Hamming et rendements associs
prsente une matrice de contrle H (non systmatique) o la colonne h
i
est la re-
prsentation binaire du nombre i. Dautre part les bits de contrle sont xs aux
positions 2
i
. Par exemple pour le code (7, 4) on a
H =
_
_
_
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
_
_
_
La dtection derreur simple devient alors aisment implmentable puisque une
erreur la position i va tre signale par la valeur du syndrome. Par exemple si
TBA1 57
Codes dtecteurs et correcteurs H. Dedieu
s = (1, 0, 1) on sait que lerreur sest produite la position 5. A partir de H on
calcule la matrice gnratrice. Pour la matrice H(7, 4) on trouverait
G =
_
_
_
_
_
1 1 1 0 0 0 0
1 0 0 1 1 0 0
0 1 0 1 0 1 0
1 1 0 1 0 0 1
_
_
_
_
_
4.8 Exercices
Problme 4.8.1
Soit une code linaire dont les mots code sont engendrs par la matrice gnra-
trice G suivante
G =
_
1 1 0 1
0 1 1 0
_
1. Donner le nombre de bits dinformation et le nombre de bits par bloc (par
mot-code) pour un tel code.
2. Donner lensemble des mots code gnrs par G.
3. Quelle est la distance minimale entre deux mots du code ?
4. Quelle est la capacit de dtection du code ?
5. Quelle est la capacit de correction du code ?
6. On dcide de mettre G sous sa forme systmatique G
S
, trouver G
S
.
7. Quel est, de faon gnrale, lintrt de mettre un code sous sa forme syst-
matique ?
8. Donner lensemble des mots-code gnrs par G
S
. Cet ensemble est-il diff-
rent de lensemble gnr par G? Si oui ou non, dites pourquoi.
Problme 4.8.2
En observant les mots transitant au travers dun canal de communication, vous
observez que lon retrouve toujours les 4 mots suivants
0 0 0 0 0 0
0 1 1 1 0 1
1 0 0 1 1 0
1 1 1 0 1 1
58 TBA1
H. Dedieu Codes dtecteurs et correcteurs
1. Votre sagacit vous incite penser quun code bloc (6, 2) a t utilis. Pour-
quoi ? Pourquoi le code utilis est-il linaire ?
2. Donner la matrice systmatique G
S
dun tel code.
3. Quelle est la capacit de dtection du code ?
4. Quelle est la capacit de correction du code ?
5. En crivant
[y
1
, y
2
, y
3
, y
4
, y
5
, y
6
] = [x
1
, x
2
] G
S
donner toutes les lois de calcul des y
i
pour i = 1 . . . 6. Prenez soin de calculer
exactement les bits de contrle, y
3
, y
4
, y
5
et y
6
.
6. Calculez partir de la matrice gnratrice G
S
la matrice de contrle H
S
dun
tel code.
7. En crivant la relation habituelle de contrle
[y
1
, y
2
, y
3
, y
4
, y
5
, y
6
] H
T
S
= 0
montrez que vous arrivez aux 4 relations de contrle que vous aviez dcouvert
en 5).
8. Vous recevez le mot 111111 que vaut le syndrome ?
9. En tudiant le syndrome (obtenu prcdemment) et en supposant quune er-
reur simple se soit produite, quelle position du mot-code sest produite
lerreur ? Corrigez le mot code. En observant les mots-code possibles, dites
si votre bon sens vous indiquerait le mme rsultat que lalgbre des codes
blocs linaires.
Problme 4.8.3
On dcide de construire un code bloc linaire, non pas partir de sa matrice
gnratrice G mais partir de sa matrice de contrle H. Par exemple on dcide
quun code (7, 4) sera form dune matrice H sous la forme
H =
_
_
_
0 0 0 1 1 1 1
0 1 1 0 0 1 1
1 0 1 0 1 0 1
_
_
_
Lide sous-jacente est que chaque colonne de la matrice est "code" par des nombres
croissants 1, 2, 3, . . . 7
1. Quel pourrait tre votre avis lutilit pratique dune telle matrice en cas
dune erreur simple lorsquon calcule le syndrome ? On voudrait calculer la
matrice gnratrice correspondant H. On dcide pour ce faire de ne pas tra-
vailler avec une matrice G systmatique et de mettre tous les bits de contrle
TBA1 59
Codes dtecteurs et correcteurs H. Dedieu
des positions qui soient des puissances de 2. En somme que si lon doit
coder
x = [x
1
, x
2
, x
3
, x
4
]
on transmette
y = [y
1
, y
2
, x
1
, y
3
, x
2
, x
3
, x
4
]
(Les bits de contrle sont aux positions 2
0
= 1, 2, 4)
2. A partir de la relation de contrle standard
yH
T
= 0
dduire les 3 relations de contrle qui grent les y
i
pour i = 1 . . . 3
3. Dduire de la question prcdente la matrice gnratrice G.
4. On reoit 1101000 que vaut le syndrome ?
5. Dduire la position de lerreur daprs le syndrome si lon suppose une erreur
simple.
60 TBA1
5
Dtection et correction derreur par
codes polynmiaux cycliques
CONTENU
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2 Proprits fondamentales des codes cycliques . . . . . . 62
5.3 Encodage dun code cyclique (n, k) sous forme syst-
matique . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.4 Dcodage dun code cyclique (n, k) . . . . . . . . . . . 66
5.5 Ralisation dun encodage de code cyclique . . . . . . . 67
5.5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 67
5.5.2 Prliminaires . . . . . . . . . . . . . . . . . . . . . . . 67
5.5.3 Circuit de division . . . . . . . . . . . . . . . . . . . . 68
5.5.4 Codeur dun code cyclique . . . . . . . . . . . . . . . . 70
5.5.5 Ralisation matrielle du dcodage dun code cyclique
systmatique . . . . . . . . . . . . . . . . . . . . . . . 71
5.6 Proprits des codes polynmiaux (cycliques ou non) . . 72
5.7 Quelques polynmes gnrateurs normaliss . . . . . . . 73
5.7.1 Le code CCITT V.41 . . . . . . . . . . . . . . . . . . . 73
5.7.2 Le code CRC-16 . . . . . . . . . . . . . . . . . . . . . 74
5.7.3 Le code CRC-12 . . . . . . . . . . . . . . . . . . . . . 74
5.7.4 Le code ARPA . . . . . . . . . . . . . . . . . . . . . . 74
5.7.5 Le code ETHERNET . . . . . . . . . . . . . . . . . . . 74
5.8 Codes cycliques BCH . . . . . . . . . . . . . . . . . . . 75
5.8.1 Description des codes BCH . . . . . . . . . . . . . . . 75
5.9 Elments thoriques ncessaires au dveloppement des
codes BCH . . . . . . . . . . . . . . . . . . . . . . . . 76
5.9.1 Construction des champs de Galois CG(2
m
) . . . . . . 76
c 2010 HEIG-VD.
61
Codes polynmiaux cycliques H. Dedieu
5.9.2 Proprits des champs de Galois CG(2
m
) . . . . . . . . 80
5.9.3 Construction des codes BCH . . . . . . . . . . . . . . . 82
5.9.4 Exemple de construction de code BCH . . . . . . . . . 83
5.9.5 Calcul du syndrome dun code BCH . . . . . . . . . . . 84
5.9.6 Dcodage dun code BCH . . . . . . . . . . . . . . . . 87
5.10 Codes de Reed-Solomon . . . . . . . . . . . . . . . . . 87
5.11 Quelques codes cycliques remarquables . . . . . . . . . 88
5.11.1 Le code de Golay . . . . . . . . . . . . . . . . . . . . . 88
5.11.2 Les codes de Fire . . . . . . . . . . . . . . . . . . . . . 89
5.12 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.1 Introduction
Les codes polynmiaux sont des codes linaires par blocs qui ont une impor-
tance particulire en tlinformatique o ils sont utiliss pour la dtection derreur.
Ils prsentent lavantage de saccommoder dune longueur variable des mots din-
formation et ont une bonne capacit de dtection des salves derreur. Les codes
cycliques forment une importante sous-classe des codes polynmiaux. Un fait re-
marquable est que la plupart des codes blocs importants connus peuvent tre re-
formuls en tant que codes blocs cycliques ou apparents. Ces codes possdent
des proprits algbriques qui simplient les oprations de codage et de dcodage.
Nous aborderons les principales proprits des codes cycliques et donnerons un
aperu des codes cycliques les plus remarquables, les codes BCH.
Dnition 1 Par dnition un code linaire (n, k) est dit code cyclique si tout
dcalage cyclique dun mot code est encore un mot code.
5.1.0.5 Exemple
On montrera dans la suite quun code cyclique (4, 2) est de la forme telle que
dnie par la table 5.1. On constate bien que tout dcalage cyclique de 0000 en-
gendre 0000, tout dcalage cyclique de 1111 engendre 1111, tout dcalage cyclique
de 0101 engendre soit 1010, soit 0101.
5.2 Proprits fondamentales des codes cycliques
An de dvelopper les proprits algbriques des codes cycliques, on les traite
dans la suite comme des polynmes, ainsi un n-uple (v
n1
, v
n2
, v
n3
, . . . , v
0
)
62 TBA1
H. Dedieu Codes polynmiaux cycliques
Message Mot Code
00 0000
01 0101
10 1010
11 1111
TABLE 5.1 Code cyclique (4, 2)
on fera correspondre le polynme
(v
n1
, v
n2
, v
n3
, . . . , v
0
) v
0
+ v
1
X + v
2
X
2
+ . . . + v
n1
X
n1
Proprit 1 Le code polynomial non nul de degr minimal dun code cyclique
(n, k) est de degr n k et il scrit sous la forme
g(X) = 1 + g
1
X +g
2
X
2
+ . . . + g
nk1
X
nk1
+ X
nk
(5.1)
5.2.0.6 Exemple
Pour le code cyclique (4, 2) dni la table 5.1, le code polynomial non nul de
degr minimal correspond au code 0101 et scrit donc 0X
3
+ 1X
2
+ 0X + 1 =
1 + X
2
qui est bien de degr 4 2 = 2
Proprit 2 Le code polynomial non nul de degr minimal dun code cyclique
(n, k) divise le polynme 1 +X
n
5.2.0.7 Exemple
Pour le code cyclique (4, 2) dni la table 5.1, le code polynomial non nul de
degr minimal 1 +X
2
divise bien 1 + X
4
. En effet
(1 + X
2
)(1 + X
2
) = 1 + 2X
2
+X
4
= 1 + X
4
+ (1 + 1)X
2
= 1 + X
4
(On rappelle que les additions se font modulo 2)
Proprit 3 Si g(X) est un polynme de degr n k et divise 1 + X
n
, alors
g(X) engendre un code cyclique (n, k), g(X) est appel polynme gnrateur .
An dengendrer le code on multiplie les polynmes correspondant aux messages
dinformation par le polynme gnrateur.
Cette proprit est trs importante puisquelle indique comment gnrer un code
cyclique.
TBA1 63
Codes polynmiaux cycliques H. Dedieu
5.2.0.8 Exemple
Soit gnrer le code cyclique (4, 2). Ce code cyclique existera si lon peut
trouver un polynme de degr 4 2 = 2 qui divise 1 + X
4
. Or un tel polynme
existe, il sagit de 1 +X
2
. Pour gnrer le code, on opre suivant le principe donn
par la proprit prcdente ; ce principe est illustr la table 5.2.
Message Poly. message Poly. gnrateur Poly. message Rsultat Mot Code
00 0 (1 +X
2
)0 0 0000
01 1 (1 +X
2
)1 X
2
+ 1 0101
10 X (1 + X
2
)X X
3
+X 1010
11 X + 1 (1 + X
2
)(X + 1) X
3
+ X
2
+ X + 1 1111
TABLE 5.2 Code cyclique (4, 2)
Proprit 4 Les k dcalages cycliques du mot code correspondant au polynme
non nul de degr minimal forment une base du code.
5.2.0.9 Exemple
Pour le code cyclique (4, 2) dni la table 5.1, le code polynomial non nul de
degr minimal est (1 + X
2
) auquel correspond le mot code 0101. Les 2 dcalages
cycliques du code sont 1010 et 0101 qui engendrent bien une base du code, en
effet 0000 = 0 1010 = 0 0101, 1010 = 1 1010, 0101 = 1 0101 et
1111 = 1 0101 + 1 1010.
5.3 Encodage dun code cyclique (n, k) sous forme systma-
tique
Lorsquon doit encoder un message dinformation, i.e. un k-uple (i
k1
, . . . , i
0
)
on a vu que cela consistait multiplier le polynme i
0
+i
1
X +. . . +i
k1
X
k1
par
le polynme gnrateur g(X), puis retrouver les bits du mot code associ au
polynme produit. En effectuant un tel produit, les bits dinformation sont affects
par le codage et dans la plupart des cas, le code obtenu nest pas systmatique. An
dobtenir un code systmatique on opre de la faon suivante.
On multiplie le polynme i(X) du message dinformation par X
nk
, i.e.
i(X) X
nk
i(X) (5.2)
64 TBA1
H. Dedieu Codes polynmiaux cycliques
Remarquons que le polynme X
nk
i(X) a ses monmes qui stendent de X
nk
X
n
puisque i(X) est au plus de degr k. Divisons le rsultat par le polynme
gnrateur g(X) et lon obtient
X
nk
i(X) = a(X)g(X) + r(X) (5.3)
o r(X) est le reste de la division de X
nk
i(X) par g(X). On voit donc que r(X)
est de degr infrieur n k. Additionnons maintenant r(X) aux 2 membres de
(5.3), il vient compte tenu des proprits de laddition modulo 2.
X
nk
i(X) + r(X) = a(X)g(X) (5.4)
On a donc les deux rsultats fondamentaux suivants. Dune part daprs ( 5.4), la
quantit X
nk
i(X) + r(X) est bien un multiple de g(X) (ce qui est la proprit
dsire du code cyclique). Dautre part les deux polynmes X
nk
i(X) et r(X) ont
des monmes qui ne peuvent sadditionner puisque ceux de r(X) stendent de 0
n k 1 au plus alors que ceux de X
nk
i(X) stendent de n k n au plus.
Les bits dinformation se trouvent en tte du message alors que les bits de r(X)
qui seront les bits de contrle du code occuperont les nk premires positions. Le
mot code sera en effet de la forme
i
k1
X
n
+ i
k2
X
n1
+. . . i
0
X
nk
+ r
nk1
X
nk1
+ . . . + r
1
X + r
0
ce qui correspondra au n-uple
(i
k1
, i
k2
, . . . , i
0
, r
nk1
, r
nk2
, . . . , r
1
, r
0
)
5.3.0.10 Exemple
Trouver pour un code cyclique (7, 4) lencodage systmatique ainsi quun en-
codage non systmatique de 1010.
5.3.0.11 Solution
Il faut dabord trouver le polynme gnrateur du code. Le degr de ce po-
lynme gnrateur est daprs la proprit 1, n k = 7 4 = 3. Dautre part
daprs la proprit 2, le polynme gnrateur doit diviser 1 + X
7
. Si lon essaie
de factoriser 1 +X
7
on trouve
1 +X
7
= (1 + X)(1 + X + X
3
)(1 + X
2
+ X
3
)
On saperoit quil y a deux candidats comme polynme gnrateur de degr 3.
Lequel choisir ? La rponse nest pas vidente demble. A priori on ne peut savoir
lequel des deux codes est le meilleur. Prenons comme polynme gnrateur
g(X) = 1 + X +X
3
TBA1 65
Codes polynmiaux cycliques H. Dedieu
Lencodage non systmatique de linformation donnerait
g(X)i(X) = (1 + X + X
3
)(X + X
3
) = X + X
2
+ X
3
+ X
6
soit
(1010) (1001110)
Lencodage systmatique de linformation donnerait
X
nk
i(X) = X
3
(X + X
3
) = X
4
+ X
6
X
4
+ X
6
= (X
3
+ X + 1)(X
3
+ 1) + X + 1
Soit r(X) = X + 1. Lencodage systmatique est donc X
6
+ X
4
+ r(X) = X
6
+
X
4
+ X + 1 soit
(1010) (1010011)
5.4 Dcodage dun code cyclique (n, k)
Quand il ny a pas derreur, le rcepteur reoit un mot de la forme
c(X) = X
nk
i(X) + r(X) = a(X)g(X)
Lorsque des erreurs de transmissions se produisent on reoit
c(X) = X
nk
i(X) + r(X) + e(X) = a(X)g(X) + e(X)
Pour dtecter une erreur, on voit donc quil suft de vrier si le mot reu est divi-
sible par g(X). Le syndrome que nous calculerons est donc le reste de la division
par g(X). Si le syndrome est nul cela veut dire que e(X) = 0. (Cela pourrait vouloir
dire que e(X) est un des codes cycliques auquel cas on ne pourrait dtecter lerreur
car lerreur serait telle que lon soit pass dun mot code possible un autre mot
code possible.)
Il existe deux mthodes quivalentes pour le calcul du correcteur.
1. On calcule le reste de la division de c(X) par g(X), (s(X) = e(X)).
2. On calcule les bits de contrle correspondants aux bits dinformation reus
et on les additionne aux bits de contrle rellement reus. Soit
c(X) = X
nk

i(X) + r(X)
le mot reu. On calcule
r

(X) = reste
_
X
nk

i(X)
g(X)
_
Le syndrome scrit alors
s(X) = r

(X) + r(X)
66 TBA1
H. Dedieu Codes polynmiaux cycliques
5.4.0.12 Fonctionnement en dtecteur derreur seul
En pratique on prfre souvent la deuxime mthode parce quelle permet duti-
liser la mme structure au codeur et au dcodeur. Si on utilise le code en dtecteur
derreur seul, le dcodeur prend la dcision mot erron-mot correct et demande ou
ne demande pas la retransmission.
5.4.0.13 Fonctionnement en correcteur derreur
Il y a plusieurs possibilits de fonctionnement. Soit on dispose dun tableau de
correspondance archiv dans une ROM entre toutes les erreurs possibles et toutes
leurs corrections. Soit on calcule en temps rel la correction grce un algorithme
adquat.
5.5 Ralisation dun encodage de code cyclique
5.5.1 Introduction
Nous avons vu prcdemment que lencodage dun code cyclique (n, k) consis-
tait en trois tapes
1. multiplication du message i(X) par X
nk
2. division de X
(nk)
i(X) par g(X) an dobtenir le reste r(X)
3. formation du code par addition de r(X) et X
(nk)
i(X)
Il se trouve que ces trois tapes peuvent tre ralises de manire simple sous une
forme matrielle. Nous allons essayer dexpliquer pourquoi dans la suite.
5.5.2 Prliminaires
On doit raliser sous forme matrielle des multiplications et des divisions poly-
nomiales. Or les bits que nous mettons ou recevons apparaissent de faon srielle
et le formalisme polynomial introduit par pure commodit algbrique tient compte
de la squencialit dans le temps. Que se passe-t-il lorsque lon multiplie un poly-
nme par X ? Soit par exemple le message 100111 auquel correspond un polynme
1 + X + X
2
+ X
5
. Implicitement cela veut dire quau temps 0 apparat le 1, alors
qu linstant davant -1 avait apparu 1, et quau temps -2 avait apparu le bit 1, au
temps -4 le bit 0, etc, au temps -5 le bit 1. Multiplier le polynme par X, cest
dcaler vers la gauche le message qui devient 1001110. Le bit qui tait au temps
i apparat maintenant au temps i 1. Autrement dit une multiplication par X se
traduit par un dcalage temporel dune unit de temps. Ce dcalage correspond
TBA1 67
Codes polynmiaux cycliques H. Dedieu
D
m1
D
1
D
0
y(X)
u(X)

g
m
= 1 g
m1
g
2 g
1 g
0
= 1

` ` `

`
`
_
`
_
`
_
`
_
FIGURE 5.1 Circuit de division
u(X)
g(X)
m-1 1 0
X
1
X
1
X
1
y(X)
u(X)

g
m
= 1 g
m1 g
2
g
1
g
0
= 1

` ` `

`
`
_
`
_
`
_
`
_
FIGURE 5.2 Schma quivalent au circuit de division
u(X)
g(X)
une anticipation dun coup dhorloge. Inversement on pourrait monter quune di-
vision par X se traduit par une retard dun coup dhorloge. Un retard de m coups
dhorloge correspond donc une division par X
m
5.5.3 Circuit de division
On donne ci-dessous le schma dun diviseur par g(X) de degr m = n k.
Dans ce schma les bascules D sont des lments retard dune unit de temps.
Du fait que chaque retard correspond une multiplication par X
1
, on peut simpli-
er le schma de la gure 5.1 pour lui trouver le schma quivalent de la gure 5.2.
Montrons tout dabord que le circuit divise u(X) par g(X). En partant du schma
5.2 on obtient
y(X) = (u(X)+y(X))X
m
+g
1
y(X)X
(m1)
+g
2
y(X)X
(m2)
+. . . +g
m1
X
1
En tenant compte du fait que laddition modulo 2 est quivalente la soustraction
modulo 2,
y(X)(1 + g
m1
X
1
+ g
m2
X
2
+ . . . + g
1
X
(m1)
+ X
m
) = u(X)X
m
68 TBA1
H. Dedieu Codes polynmiaux cycliques
g
1
= 1
2

g
3
= 1 g
2
= 0
1 0
X
1
X
1
X
1
y(X) u(X)

g
0
= 1

` `
`
_
`
_
FIGURE 5.3 Circuit de division
u(X)
X
3
+X+1)
Do en multipliant numrateur et dnominateur par X
m
,
y(X) =
u(X)
1 + g
1
X + g
2
X
2
+. . . +g
m1
X
(m1)
+ X
m
Le circuit propos divise bien u(X) par g(X). Soit
u(X) = q(X)g(X) + r(X)
Alors si u(X) est de degr n aprs n coups dhorloge on a calcul les coefcients
de q(X). On peut montrer par ailleurs que le reste de la division r(X) se trouve
stock dans les bascules aprs n + 1 coups dhorloge. Lexercice suivant illustre
cette proprit.
5.5.3.1 Exercice
Soient les polynmes u(X) = X
5
+ X + 1 et g(X) = X
3
+X + 1
1. Calculer le quotient et le reste de la division de u(X) par g(X).
2. Donner le schma du circuit de division.
3. Analyser le fonctionnement du circuit de division.
5.5.3.2 Solution
La division ne pose aucun problme, on trouve
X
5
+ X + 1 = (X
2
+ 1)g(X) + X
2
On a donc q(X) = X
2
+ 1 et r(X) = X
2
Le circuit ralisant la division est
reprsent la gure 5.3 Lanalyse du comportement temporel du circuit est donn
au tableau 5.5.3.2
TBA1 69
Codes polynmiaux cycliques H. Dedieu
Coup dhorloge u
i
D
0
D
1
D
2
q
i
0 u
5
= 1 0 0 0
1 u
4
= 0 1 0 0
2 u
3
= 0 0 1 0
3 u
2
= 0 0 0 1 q
2
= 1
4 u
1
= 1 1 1 0 q
1
= 0
5 u
0
= 1 1 1 1 q
0
= 1
6 0 0 = r
0
0 = r
1
1 = r
2

`
_
`
_
`
_
`

` ` `

g
0
= 1
g
1
g
2 g
m1
D
0
D
1
D
m1
c(X)
i(X)

m
k

`
_
g
m
= 1
FIGURE 5.4 Encodage dun code cyclique systmatique
5.5.4 Codeur dun code cyclique
Le schma de codage dun code cyclique se fait en respectant la relation
c(X) = i(X)X
nk
+ r(X)
o r(X) est le reste de la division de i(X)X
nk
par g(X). Le codeur doit effectuer
les trois oprations suivantes : multiplication de i(x) par X
nk
, puis division par
g(X), puis addition du produit au reste. Le schma du circuit ralisant ces trois
oprations est donn la gure 5.4 Tant que le commutateur se trouve en position
k donc pendant k coups dhorloge, les k bits dinformation sont en mme temps
envoy vers le circuit et vers le rcepteur. On bascule ensuite en position m o
pendant m = n k coups dhorloge on va envoyer les bits de contrle (reste) vers
le rcepteur. Montrons quen position k le circuit effectue la division de i(X)X
nk
par g(X). Le schma quivalent de lencodeur cyclique lorsquil est en position k
est donn la gure 5.5. Soit y(X) le signal au point not A sur le schma. On voit
70 TBA1
H. Dedieu Codes polynmiaux cycliques
X
1
X
1
X
1
X
1

`
_
`
_
`
_
`

` ` `

g
0
= 1
g
1
g
2 g
m1
i(X)


`
_
g
m
= 1
y(X)
A
FIGURE 5.5 Schma quivalent de lencodeur cyclique systmatique
que
y(X) = i(X) + X
m
y(X) + g
1
X
(m1)
y(X) + . . . + g
m1
X
1
y(X)
Soit
y(X)(1 + g
m1
X
1
+ g
m2
X
2
+ . . . + g
1
X
m1
+X
m
) = i(X)
Soit encore
y(X) =
i(X)
1 +g
m1
X
1
+g
m2
X
2
+. . . +g
1
X
m1
+ X
m
y(X) =
X
m
i(X)
X
m
+ g
m1
X
m1
+ g
m2
X
m2
+. . . +g
1
X + 1
Ce qui prouve que le circuit effectue bien la division requise.
5.5.5 Ralisation matrielle du dcodage dun code cyclique sys-
tmatique
Une des deux mthodes consiste calculer le reste de la division de c(X) par
g(X). Comme le reste apparat aprs n + 1 coups dhorloge sur les registres des
bascules D, on peut utiliser le premier circuit de division et laide dune porte OU
qui somme toutes les sorties des bascules cet instant l. Si la sortie vaut 0, il ny
aura pas derreur dtecte, si la sortie vaut 1, cest quil y a au moins une erreur.
TBA1 71
Codes polynmiaux cycliques H. Dedieu
5.6 Proprits des codes polynmiaux (cycliques ou non)
Lorsquaucune erreur de transmission survient on sait que le rcepteur reoit un
"mot polynmial" de la forme
c(X) = a(X)g(X)
o g(X) est le polynme gnrateur du code. Cette proprit est vraie que le code
soit cyclique ou non. Lorsquune ou plusieurs erreurs surviennent pendant la trans-
mission le mot reu c(X) est la somme du mot code mis et dun certain polynme
derreur e(X), i.e.
c(X) = a(X)g(X) + e(X)
Au dcodage, c(X) est divis par g(X) et la transmission est dclare sans erreurs si
le reste de la division est nul. Le systme de dcodage dtecte toute erreur telle que
g(X) ne divise pas e(X) ; les proprits de dtection du code polynomial (cyclique
ou non) peuvent tre values en fonction des proprits du polynme gnrateur
g(X).
Proprit 1 Un code polynomial dtecte toute erreur simple.
Une erreur simple sur le ime bit se traduit par un polynme e(X) = X
ni
. Comme
g(X) contient au moins deux coefcients qui sont non nuls (le premier et le der-
nier), g(X) ne peut tre de la forme X
p
et ne peut donc diviser X
ni
. Par cons-
quent lorsquune erreur simple survient,la division de e(X) par g(X) est non nulle
et lerreur est dtecte.
Proprit 2 Un code polynomial dtecte toute erreur double si son polynme g-
nrateur g(X) ne divise pas X
l
+1 o l peut prendre nimporte quelle valeur entre
1 et n 1.
Une erreur double en positions i et j (1 i < j n1)se traduit par un polynme
gnrateur
e(X) = X
ni
+ X
nj
= X
nj
(1 + X
ji
)
Comme g(X) possde deux coefcients non nuls il ne peut diviser X
ni
. Si de plus
g(X) ne peut diviser 1 + X
p
pour 1 p n 1, il ne pourra diviser (1 + X
ji
).
Par consquent on est sr que g(X) ne peut diviser X
nj
(1 + X
ji
).
Proprit 3 Lerreur sur un message comportant un nombre impair derreurs est
toujours dtecte si le polynme gnrateur g(X) contient un facteur X + 1.
Si les erreurs sont en nombre impair, le polynme e(X) contient un nombre im-
pair de coefcients non nuls. Par consquent e(1) = 1. Dautre part comme g(X)
contient le facteur X +1, g(1) = 0. Ceci montre que e(X) ne peut tre un multiple
de g(X) car dans ce cas e(1) devrait valoir 0. Le polynme e(X) nest donc pas
divisible par g(X) et tout nombre impair derreurs est dtect.
72 TBA1
H. Dedieu Codes polynmiaux cycliques
Proprit 4 Un code polynomial (n, k) dtecte toutes les salves derreurs de lon-
gueur infrieure ou gale n k.
Une salve derreurs de longueur j est dnie comme un vecteur dont les compo-
santes non nulles peuvent tre connes sur j positions conscutives.
Par exemple le vecteur e = (0 0 0 1 0 1 1 0 1 0 0 0) est une salve derreur de
longueur 6. Une salve derreurs de longueur j n k est donc reprsentable par
un polynme
e(X) = X
ni
+e
i+1
X
ni1
+. . .+e
i+j2
X
nij+2
+X
nij+1
= X
nij+1
(X
j1
+X
j2
+. . .+X+1)
o j 1 n k 1. g(X) ne divise pas X
nij+1
car g(X) contient deux
coefcients non nuls. Dautre part g(X) de degr n k ne peut diviser (X
j1
+
X
j2
+ . . . + X + 1) qui est degr infrieur. Par consquent e(X) ne peut tre
divisible par g(X) et la salve derreurs de longueur infrieure ou gale n k est
dtecte. De faon gnrale on peut montrer que les salves derreurs de longueur
suprieure n k sont dtectes avec une probabilit trs leve.
Ces proprits montrent que les codes polynmiaux (cycliques ou non) peuvent
tre aisment conus pour dtecter les erreurs simples, les erreurs doubles, les er-
reurs en nombre impair. De plus les codes polynmiaux (cycliques ou non) d-
tectent les erreurs par salves de faon sre si les salves sont de longueur infrieure
ou gale n k et avec une probabilit grande si les salves sont de longueur sup-
rieure n k. Cette dernire caractristique, particulirement importante pour la
transmission sur le canal tlphonique, o les erreurs se produisent le plus souvent
par salves, a conduit la normalisation de plusieurs codes polynmiaux pour la
tlinformatique.
5.7 Quelques polynmes gnrateurs normaliss
On numre ici quelques codes polynmiaux trs couramment utiliss en tl-
informatique. On donne ici le polynme gnrateur ( dordre n k) associ ces
codes normaliss. Ces polynmes peuvent tre utiliss pour diffrentes longueurs
de bloc n. Suivant la valeur de n choisi on aura affaire un code cyclique ou non.
On rappelle que pour que le code polynmial soit cyclique il faut que son polynme
gnrateur dordre n k divise 1 + X
n
.
5.7.1 Le code CCITT V.41
Ce code a pour polynme gnrateur
g(X) = 1 + X
5
+ X
12
+ X
16
(5.5)
TBA1 73
Codes polynmiaux cycliques H. Dedieu
On peut montrer aisment que la distance minimale entre deux mots du code est
d
min
= 4. Ce code peut donc dtecter toutes les erreurs simples, doubles et triples,
toutes les erreurs en nombre impair ainsi que toutes les salves derreurs de longueur
infrieure ou gale 16 (degr de g(X)). Ce code est utilis dans les procdures de
lignes orientes bit, en particulier la procdure HDLC .
5.7.2 Le code CRC-16
Le polynme gnrateur de ce code est donn par
g(X) = 1 + X
2
+ X
15
+ X
16
(5.6)
Ce code est utilis dans les procdures de transmission orientes caractres telles
BSC Binary Synchronous Communication lorsque lalphabet utilis est lEBCDIC
.
5.7.3 Le code CRC-12
Le polynme gnrateur est
g(X) = 1 + X + X
2
+ X
3
+ X
11
+ X
12
(5.7)
Ce code est aussi utilis dans les procdures de transmission orientes caractres
telles BSC lorsque lalphabet utilis comporte des mots de 6 bits.
5.7.4 Le code ARPA
Le polynme gnrateur est de la forme
g(X) = 1+X
3
+X
5
+X
8
+X
9
+X
10
+X
11
+X
12
+X
13
+X
15
+X
16
+X
17
+X
23
+X
24
(5.8)
5.7.5 Le code ETHERNET
Ce code est utilis dans le rseau local ETHERNET, son polynme gnrateur
scrit
g(X) = 1+X+X
2
+X
4
+X
5
+X
7
+X
8
+X
10
+X
11
+X
12
+X
16
+X
22
+X
23
+X
26
+X
32
(5.9)
74 TBA1
H. Dedieu Codes polynmiaux cycliques
5.8 Codes cycliques BCH
Les codes de Bose, Chaudhuri et Hocquenghem (BCH) forment une classe trs
importante et trs puissante de codes cycliques dtecteurs et correcteurs derreurs.
Ils gnralisent les codes de Hamming pour la correction derreurs multiples. Les
codes binaires BCH ont t dcouverts indpendemment par Hocquenghem (1959)
et Bose et Chaudhuri (1960).
5.8.1 Description des codes BCH
Les codes BCH sont construits pour corriger t erreurs. Pour tout couple den-
tiers positifs m ( m 3 et t ( t < 2
m1
) on peut montrer quil existe un code
binaire BCH avec les paramtres suivants :
Longueur de bloc n n = 2
m
1
Nombre de bits de contrle n k mt
Distance minimale entre mots-code d
min
2t + 1
5.8.1.1 Exemple
Analyser la potentialit des codes BCH (511, 421) et (1023, 923) en terme de
correction derreur. Comparer le rendement de ces deux codes.
5.8.1.2 Solution
Le code BCH (511, 421) est tel que n = 511 = 2
9
1 do lon dduit
que m = 9. Le nombre de bits de contrle est n k = 511 421 = 90. Do
lon dduit que t
nk
m
=
90
9
= 10. Un tel code peut donc corriger 10 erreurs
sur un bloc de 511 bits. Son rendement est =
k
n
=
421
511
= 0.823. Pour le code
BCH (1023, 923) on trouverait m = 10. Comme le nombre de bits de contrle
est n k = 1023 923 = 100, on en dduirait quun tel code est capable de
corriger t
nk
m
=
100
10
= 10 erreurs. Le rendement du code BCH (1023, 923)
est =
k
n
=
923
1023
= 0.902. On voit donc que les deux codes ont la mme capacit
de correction par bloc, puisque 10 erreurs par bloc peuvent tre corriges. Le code
BCH (1023, 923) offre un meilleur rendement que le code BCH (511, 421). Il faut
toutefois remarquer que la capacit de correction en terme de nombre derreurs
corriges par longueur de bloc est meilleure pour le code BCH (511, 421) (elle est
de
10
511
) que pour le code BCH (1023, 923) (
10
1023
).
TBA1 75
Codes polynmiaux cycliques H. Dedieu
5.9 Elments thoriques ncessaires au dveloppement des codes
BCH
Les codes BCH peuvent tre dcrits partir de leur polynme gnrateur, ou de
faon plus commode partir des racines de leur polynme gnrateur. Ces racines
prennent leurs valeurs dans le champ de Galois CG(2
m
) dont nous navons pas
encore parl jusquici. An dexpliquer la construction des codes BCH nous allons
introduire ici les lments thoriques minimaux. Avant dintroduire le champ de
Gallois CG(2
m
), le thorme suivant nous sera ncessaire.
Thorme 1 Tout polynme irrductible sur CG(2) de degr m divise X
2
m
1
+1.
(On rappelle quun polynme est dit irrductible sil ne possde aucun diviseur de
degr suprieur 0.)
5.9.0.3 Exemple
P(X) = X
3
+ X + 1 na pas de racine sur CG(2) car P(1) = 1 et P(0) =
0. Comme 2
m
1 = 2
3
1 = 7 on peut vrier que X
7
+ 1 est divisible par
X
3
+ X + 1. Aprs division, on obtient bien
X
7
+ 1
X
3
+ X + 1
= X
4
+ X
2
+ X + 1
On appelle priode dun polynme P(X) le plus petit entier l tel que P(X) divise
X
l
+ 1. Un polynme irrductible P(X) de degr m est dit polynme primitif si
lentier positif n le plus petit pour lequel P(X) divise X
n
+ 1 est n = 2
m
1.
Daprs le thorme prcdent, un polynme primitif a donc pour priode 2
m
1.
5.9.0.4 Exemple
Le polynme X
4
+ X + 1 est un polynme irrductible de CG(2). Daprs
le thorme, P(X) doit diviser X
2
m
1
+ 1 = X
15
+ 1. Pour savoir si P(X) est
primitif, il faudra vrier que P(X) ne divise pas X
n
+ 1 pour 1 n 15.
La table 5.3 donne quelques polynmes primitifs
5.9.1 Construction des champs de Galois CG(2
m
)
Le champ de Galois CG(2) est constitu des 2 lments 0 et 1. Le champ de
Galois CG(2
m
) est constitu des 2
m
lments suivants
G

=
_
0, 1, ,
2
,
3
, . . . ,
2
m
2
_
(5.10)
76 TBA1
H. Dedieu Codes polynmiaux cycliques
m P(X) m P(X)
3 1 + X +X
3
14 1 +X + X
6
+ X
10
+ X
14
4 1 + X +X
4
15 1 +X + X
15
5 1 + X
2
+X
5
16 1 +X + X
3
+ X
12
+ X
16
6 1 + X +X
6
17 1 +X
3
+ X
17
7 1 + X
3
+X
7
18 1 +X
7
+ X
18
8 1 + X
2
+X
3
+ X
4
+ X
8
19 1 +X + X
2
+ X
5
+X
19
9 1 + X
4
+X
9
20 1 +X
3
+ X
20
10 1 + X
3
+X
10
21 1 +X
2
+ X
21
11 1 + X
2
+X
11
22 1 +X + X
22
12 1 + X +X
4
+ X
6
+ X
12
23 1 +X
5
+ X
23
13 1 + X +X
3
+ X
4
+ X
13
24 1 +X + X
2
+ X
7
+X
24
TABLE 5.3 Polynme primitifs pour 3 m 24
Le champ de Galois CG(2
m
) est donc form par 0 et par les puissances croissantes
de de lordre 0 jusqu lordre 2
m
2. Quelle valeur de doit-on choisir ?
nest pas quelconque, en effet, an que le champ soit "ferm sur lui-mme" pour
la multiplication il faut que les puissances de suprieures 2
m
2 nous ramne
dans le champ. Pour ce faire on rajoute la condition

2
m
1
= 1 (5.11)
En addition modulo-2, la condition ( 5.11) est quivalente

2
m
1
+ 1 = 0 (5.12)
Thorme 2 Soit P(X) le polynme primitif dordre m. Soit une racine de ce
polynme primitif ( est dit lment primitif de CG(2
m
) de CG(2
m
). Alors G

=
_
0, 1, ,
2
,
3
, . . . ,
2
m
2
_
constitue un ensemble ferm pour la multiplication.
La dmonstration de ce thorme est aise. Sachant que P(X) est un polynme
primitif, on sait daprs le thorme 1 que
X
2
m
1
+ 1 = P(X)q(X)
En remplaant X par il vient

2
m
1
+ 1 = P()q()
Comme par hypothse P() = 0, on a donc

2
m
1
+ 1 = 0
TBA1 77
Codes polynmiaux cycliques H. Dedieu
Soit daprs les proprits de laddition modulo-2

2
m
1
= 1
Il sensuit que le produit de deux lments de G

est un lment de G

. En effet
soient deux entiers i et j tels que 0 i 2
m
2 et 0 j 2
m
2. Si i+j < 2
m
1,
alors
i

j
=
i+j
qui est un lment non nul de G

. Si i + j 2
m
1, on peut
toujours crire i + j = (2
m
1) + r avec 0 r < 2
m
1. Ds lors

j
=
i+j
=
2
m
1

r
= 1
r
=
r
Ce qui prouve bien que G

est ferm sous la multiplication. Pour disposer dun


champ, il faut maintenant trouver une opration daddition qui ferme aussi le champ.
A cette n, pour 0 i 2
m
1, on divise X
i
par P(X) et lon obtient
X
i
= q
i
(X)P(X) + a
i
(X) 0 i 2
m
1 (5.13)
Comme X et P(X) nont pas de facteur commun (car P(X) est un polynme
irrductible), X
i
et P(X) sont premiers entre eux. Le reste a
i
(X) de la division par
P(X) est donc non nul et cest un polynme de degr m1 au plus sur CG(2) qui
prend la forme
a
i
(X) = a
i,0
+ a
i,1
X + a
i,2
X
2
+ . . . + a
i,m1
X
m1
(5.14)
On peut montrer facilement, compte tenu du fait que P(X) est un polynme primi-
tif, que a
i
(X) = a
j
(X) si i = j.
En remplaant X par dans lquation (5.13) on obtient

i
= q
i
()P() + a
i
() 0 i 2
m
1 (5.15)
Comme P() = 0, (5.15) devient

i
= a
i
() = a
i,0
+a
i,1
+a
i,2

2
+. . . +a
i,m1

m1
0 i 2
m
1 (5.16)
qui peut aussi se reprsenter sous forme de muple

i
= (a
i,m1
a
i,m2
. . . a
i,1
a
i,0
) 0 i 2
m
1 (5.17)
Les 2
m
1 a
i
(X) pour 0 i 2
m
1 sont donc tous diffrents, avec llment nul
ils forment 2
m
polynmes de degr m1 (polynmes m coefcients). Montrons
maintenant que G

est ferm sous laddition. On a

i
+
j
= (a
i,0
+ a
j,0
) + (a
i,1
+ a
j,1
) + . . . + (a
i,m1
+ a
j,m1
)
m1
(5.18)
Pour i = j, en tenant compte des proprits de laddition modulo-2, lquation
(5.18) donne

i
+
i
= 0 + 0 + . . . + 0
m1
= 0 (5.19)
Pour i = j, du fait que a
i
(X) = a
j
(X),
i
+
j
est non nul, cest donc forcment
un des 2
m
1 lments non nuls de G

.
78 TBA1
H. Dedieu Codes polynmiaux cycliques
5.9.1.1 Exemple
Construire le champ de Galois CG(2
4
) en donnant la reprsentation de tous ses
lments sous forme polynmiale et sous forme de 4 uples.
5.9.1.2 Solution
Les 2
4
= 16 lments du champ de Galois CG(2
4
) peuvent tre dtermins
ds lors que lon connat le polynme primitif dordre 4. Daprs la table 5.3, le
polynme primitif dordre 4 est
P(X) = 1 + X + X
4
Pour trouver la reprsentation des
i
, sous forme polynomiale, on calcule le reste
de la division par P(X) de X
i
. Par exemple pour X
7
, on trouve
X
7
= P(X)(X
3
+ 1) + X
3
+ X + 1
Daprs lquation (5.16) on en dduit que

7
=
3
+ + 1
Une autre faon quivalente est de partir de P() = 0 et donc de 1 + +
4
= 0.
Do lon dduit
4
= 1 +. Par suite on peut dterminer par rcurrence toutes les
puissances de de 4 14 en fonction de 1, ,
2
,
3
. Ainsi

5
=
4
= (1 + ) = +
2

6
=
5
= ( +
2
) =
2
+
3

7
=
6
= (
2
+
3
) =
3
+
4
=
3
+ + 1
En procdant ainsi par rcurrence on arriverait

14
=
3
+ 1
On remarquera que conformment la thorie

15
=
14
= (
3
+ 1) =
4
+ = 1 + + = 1
Finalement la reprsentation des 16 lments de CG(2
4
) tant sous forme polyno-
miale que sous forme de 4 uples est donne la table 5.4.
TBA1 79
Codes polynmiaux cycliques H. Dedieu

i
Reprsentation Reprsentation
polynomiale par 4-uples
0 0 (0 0 0 0)
1 1 (0 0 0 1)
(0 0 1 0)

2
(0 1 0 0)

3
(1 0 0 0)

4
+ 1 (0 0 1 1)

2
+ (0 1 1 0)

3
+
2
(1 1 0 0)

3
+ + 1 (1 0 1 1)

2
+ 1 (0 1 0 1)

3
+ (1 0 1 0)

10

2
+ + 1 (0 1 1 1)

11

3
+
2
+ (1 1 1 0)

12

3
+
2
+ + 1 (1 1 1 1)

13

3
+
2
+ 1 (1 1 0 1)

14

3
+ 1 (1 0 0 1)
TABLE 5.4 Trois reprsentations des 16 lments de CG(2
4
)
5.9.2 Proprits des champs de Galois CG(2
m
)
En algbre ordinaire un polynme coefcients rels peut trs bien navoir
pas de racines dans le champ des nombres rels mais avoir ses racines dans le
champ des nombres complexes qui contient le champ des nombres rels comme
sous-champ. Une proprit similaire existe pour les polynmes coefcients dans
CG(2). Un polynme coefcients dans CG(2) peut trs bien navoir pas ses
racines dans CG(2) mais dans un champ qui est une extension de CG(2). Par
exemple, le polynme X
4
+ X
3
+ 1 est irreductible dans CG(2) puisque ni 0 ni 1
ne sont racines. Si nous substituons X des lments de CG(2
4
) on peut vrier
que
7
,
11
,
13
et
14
sont racines de X
4
+X
3
+1 ; pour sen convaincre pour
7
(en utilisant les lments donns par la table 5.4), il vient
(
7
)
4
+(
7
)
3
+1 =
28
+
21
+1 =
13
+
6
+1 = (
3
+
2
+1)+(
3
+
2
)+1 = 0
Thorme 3 Les 2
m
1 lments non nuls de CG(2
m
) sont forms de toutes les
racines de X
2
m
1
+ 1.
On a donc le corollaire suivant
Corollaire 4 Les 2
m
lments de CG(2
m
) sont forms de toutes les racines de
X
2
m
+ X.
80 TBA1
H. Dedieu Codes polynmiaux cycliques
Elments de CG(2
4
) Polynmes minimaux
0 X
1 X + 1
,
2
,
4
,
8
X
4
+ X + 1

3
,
6
,
9
,
12
X
4
+X
3
+ X
2
+ X + 1

5
,
10
X
2
+ X + 1

7
,
11
,
13
,
14
X
4
+ X
3
+ 1
TABLE 5.5 Polynmes minimaux associs aux lments de CG(2
4
) gnrs par
P(X) = X
4
+ X + 1
Il rsulte du corollaire que tout lment de CG(2
m
) est une racine X
2
m
+X. Par
consquent doit tre racine dun polynme de degr infrieur 2
m
. Soit m(X)
le polynme de degr le plus petit sur CG(2) tel que m() = 0, m() est dit
polynme minimal de .
5.9.2.1 Exemple de polynmes minimaux
Pour le champ de Galois CG(2
4
) le polynme minimal associ = 0 est
m(X) = X (m() = = 0). Le polynme minimal associ = 1 est m(X) =
X + 1, en effet m() = + 1 = 1 + 1 = 0. On peut montrer que lensemble des
polynmes minimaux associs aux 16 lments de CG(2
4
) est donn par la table
5.5.
Thorme 5 Le polynme minimal m(X) associ un lment de CG(2
4
) est
un polynme irrductible.
Thorme 6 Soit m(X) le polynme associ un lment de CG(2
m
). Soit p le
plus petit entier tel que
2
p
= . Ds lors
m(X) =
p1

i=0
(X +
2
i
) (5.20)
Ce dernier thorme offre le moyen de construire le polynme minimal associ
tout lment de CG(2
m
).
5.9.2.2 Exemple de construction de polynme minimal
Construire dans CG(2
4
) le polynme minimal associ llment =
9
.
TBA1 81
Codes polynmiaux cycliques H. Dedieu
5.9.2.3 Solution
On calcule dabord p tel
2
p
= . On a

2
=
18
=
3

4
=
36
=
6

8
=
72
=
12

16
=
144
=
9
(Ces calculs sont effectus en tenant compte que
2
4
1
=
15
= 1 et que toutes
les puissances de peuvent tre rduites par leur expression en modulo-15, par
exemple 144=9 modulo-15) On dduit donc que 2
p
= 16, soit p = 4. Le polynme
associ =
9
est donc daprs le thorme prcdent
m(X) = (X+)(X+
2
)(X+
4
)(X+
8
) = (X+
9
)(X+
3
)(X+
6
)(X+
12
)
En dveloppant on obtient
m(X) = (X
2
+ X(
3
+
9
) +
12
)(X
2
+X(
6
+
12
) +
18
)
En tenant compte des rsultats sur CG(2
4
) exprims dans la table 5.4 il vient
m(X) = (X
2
+X +
12
)(X
2
+ X(1 + ) +
3
)
Soit
m(X) = X
4
+X
3
(1++) +X
2
(
12
+
3
++
2
) +X(
4
+
12
+
13
) +
15
soit encore
m(X) = X
4
+X
3
+ X
2
+ X + 1
5.9.3 Construction des codes BCH
Un code BCH longueur de bloc n = 2
m
1 capable de corriger t erreurs
(d
min
= 2t + 1) est spci laide des racines de son polynme gnrateur dans
le champ de Galois CG(2
m
). Soit un lment primitif de CG(2
m
), le polynme
gnrateur du code BCH est dni comme le polynme de plus petit degr sur
CG(2) qui possde comme racines ,
2
,
3
, . . . ,
2t
. On rappelle ici la notion
de polynme minimal ; le polynme minimal associ llment
i
(0 i 2t)
est le polynme de degr minimal qui possde
i
comme racine. Par consquent
le code BCH qui possde comme racines ,
2
,
3
, . . . ,
2t
a pour polynme
gnrateur
g(X) = Plus Petit Commun Multiple(m
1
(X), m
2
(X), m
3
(X), . . . , m
2t
(X))
(5.21)
o les m
i
(X) 0 i 2t sont les polynmes minimaux associs aux
i
. Les po-
lynmes minimaux possdent un certain nombre de facteurs communs, en somme
quil peut tre montr que lquation (5.21) est quivalente
g(X) = Plus Petit Commun Multiple(m
1
(X), m
3
(X), . . . , m
2t1
(X))
(5.22)
82 TBA1
H. Dedieu Codes polynmiaux cycliques
Dans CG(2
m
) les polynmes minimaux sont au plus de degr m et il y a t facteurs
dans lquation (5.22), par consquent le degr de g(X) est au plus mt. Comme le
degr de g(X) reprsente le nombre de bits de contrle n k, on a
n k mt (5.23)
Lquation (5.23) spcie le nombre de bits de contrle. Il ny a pas de formule
simple pour calculer n k, en gnral lorsque t est petit, n k est gal mt.
Il resterait prouver que le code BCH dni par (5.22) a une distance minimale
d
min
= 2t + 1 (capacit de corriger t erreurs). A cette n on peut commencer par
montrer que si v est un n uple appartenant au code alors il est tel que
vH
T
= 0 (5.24)
avec
H =
_

_
1
2

3
. . .
n1
1 (
2
) (
2
)
2
(
2
)
3
. . . (
2
)
n1
1 (
3
) (
3
)
2
(
3
)
3
. . . (
3
)
n1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 (
2t
) (
2t
)
2
(
2t
)
3
. . . (
2t
)
n1
_

_
(5.25)
o H est la matrice de contrle du code (chaque
i
pouvant tre reprsent par un
muple, cest une matrice 2tm lignes et n colonnes). Pour prouver que le code
a une distance minimum de 2t +1 on suppose quun code v pourrait avoir un poids
infrieur ou gal 2t, puis on prouve par contradiction que ceci nest pas possible.
5.9.4 Exemple de construction de code BCH
Construire le code cyclique capable de corriger t = 3 erreurs dans des blocs de
n = 15 bits.
5.9.4.1 Solution
Les codes BCH sont de longueur n = 2
m
1. Dans le cas prsent, on a donc
m = 4. Trouver le code BCH revient trouver les racines du polynme primitif de
CG(2
m
) = CG(2
4
). Daprs la table 5.3, ce polynme gnrateur est
P(X) = 1 + X + X
4
Llment primitif de CG(2
4
) est donc tel 1 + +
4
= 0. Daprs le thorme
5.22 le polynme gnrateur g(X) du code capable de corriger t = 3 erreurs est tel
que
g(X) = Plus Petit Commun Multiple(m
1
(X), m
3
(X), m
5
(X))
TBA1 83
Codes polynmiaux cycliques H. Dedieu
Les polynmes minimaux peuvent tre trouvs par application du thorme 6. Dans
CG(2
4
) ces polynmes sont donns par la table 5.5, i.e m
1
(X) = X
4
+ X + 1
(polynme minimal associ ), m
3
(X) = X
4
+ X
3
+ X
2
+ X + 1 (polynme
minimal associ
3
), m
5
(X) = X
2
+ X + 1 (polynme minimal associ
5
).
Par consquent
g(X) = Plus Petit Commun Multiple(X
4
+X+1, X
4
+X
3
+X
2
+X+1, X
2
+X+1)
Comme ni X
4
+X + 1, ni X
4
+X
3
+X
2
+ 1 ne sont divisibles par X
2
+X + 1,
on a
g(X) = (X
4
+X+1) (X
4
+X
3
+X
2
+X+1) (X
2
+X+1) = X
10
+X
8
+X
5
+X
4
+X
2
+X+1
Le degr de g(X) est n k = 10, do lon dduit que k = 5. Le polynme
gnrateur trouv est donc celui du code cyclique BCH (15, 5).
5.9.5 Calcul du syndrome dun code BCH
Si lon suppose que le mot code transmis est de la forme v(X) = v
0
+ v
1
X +
v
2
X
2
+. . .+v
n1
X
n1
. Dnissons par e(X) = e
0
+e
1
X+e
2
X
2
+. . .+e
n1
X
n1
le n-uple erreur en somme que le mot reu soit
r(X) = v(X) + e(X)
On sait que la matrice de contrle H dnie par la relation (5.25) est telle que
vH
T
= 0 (5.26)
o H
T
est une matrice n2t et v est la reprsention du polynme v(X) sous forme
de n uple 1 n.
Le syndrome est donc le 2t uple
s = (s
1
, s
2
, s
3
, . . . s
2t
) = rH
T
= eH
T
(5.27)
Par application des quations (5.27) et (5.25), la ime composante du syndrome est
donc
s
i
= r(
i
) = r
0
+r
1

i
+r
2

2i
+r
3

3i
+. . . +r
n1

(n1)i
1 i 2t (5.28)
ou encore
s
i
= e(
i
) = e
0
+e
1

i
+e
2

2i
+e
3

3i
+. . . +e
n1

(n1)i
1 i 2t (5.29)
Remarquons que s
i
est nul si
i
est racine de r(X) ou de faon quivalente si r(X)
est divisible par le polynme minimal associ
i
. Donc si lon divise r(X) par
m
i
(X), i.e.
r(X) = a
i
(X)m
i
(X) + b
i
(X) (5.30)
84 TBA1
H. Dedieu Codes polynmiaux cycliques
on a
r(
i
) = a
i
(
i
)m
i
(
i
) + b
i
(
i
) == a
i
(
i
)0 + b
i
(
i
) = b
i
(
i
) (5.31)
Ainsi la ime composante du syndrome peut tre calcule simplement. On divise
r(X) par m
i
(X) et le reste obtenu b
i
(X) sert calculer r(
i
) = e(
i
) = b
i
(
i
).
5.9.5.1 Exemple de calcul de syndrome pour un code BCH
Soit le code BCH (15, 5) dont le polynme gnrateur est donn par
g(X) = X
10
+ X
8
+ X
5
+ X
4
+X
2
+ X + 1
Calculer lencodage systmatique du 5-uple (0 0 1 0 0) par le code BCH (15, 5).
Soit s le 15-uple aprs encodage. Une erreur se produit au niveau du bit 11, calcu-
ler le syndrome et vrier que lon puisse dtecter et corriger lerreur partir du
syndrome.
5.9.5.2 Solution
Le code BCH (15, 5) est tel que n = 15 = 2
4
1, do lon dduit que m = 4.
De la relation n k mt on dduit que ce code peut corriger t = 3 erreurs. Le
polynme gnrateur a ses trois racines dans CG(2
4
).
Au 15-uple dinformation (0 0 1 0 0) correspond le polynme i(X) = X
2
.
Lencodage systmatique consiste trouver le reste de la division de i(X)X
nk
par g(X), puis rajouter au rsultat i(X)X
nk
. Comme nk = 10, il faut trouver
le reste de la division de X
12
par g(X). Or
X
12
= (X
2
+ 1)g(X) + X
8
+ X
7
+X
6
+ X
5
+ X
3
+X + 1
Linformation encode sous forme systmatique est donc
t(X) = X
12
+ X
8
+ X
7
+X
6
+ X
5
+ X
3
+ X + 1
qui correspond au 15-uple :
t = (0 0 1 0 0 0 1 1 1 1 0 1 0 1 1)
Les 2t = 6 polynmes minimaux de CG(2
4
) qui servent calculer le syndrome
sont donns par la table 5.5. Soit
m
1
(X) = m
2
(X) = m
4
(X) = X
4
+X+1 m
3
(X) = m
6
(X) = X
4
+X
3
+X
2
+X+1
m
5
(X) = X
2
+ X + 1
TBA1 85
Codes polynmiaux cycliques H. Dedieu
On pourrait vrier que le syndrome de t(X) est bien nul car
t(X) = (X
8
+X
5
+X
3
+1)m
1
(X), t(X) = (X
8
+X
7
+X
4
+X
3
+X
2
+1)m
3
(X)
t(X) = (X
10
+ X
9
+ X
7
+ X
4
+ X
2
+ 1)m
5
(X)
Une erreur sur le bit en position 11 correspond au 15-uple
r = (0 0 1 1 0 0 1 1 1 1 0 1 0 1 1)
ou au polynme r(X)
r(X) = X
12
+ X
11
+ X
8
+ X
7
+ X
6
+X
5
+ X
3
+ X + 1
Pour calculer les 6 composantes du syndrome il faut calculer les restes des divisions
de r(X) par les 3 polynmes m
1
(X), m
3
(X) et m
5
(X). Aprs calculs on a
r(X) = (X
8
+ X
7
+X
5
+ X
4
+ X + 1)m
1
(X) + X
3
+ X
2
+ X
r(X) = (X
8
+ X
6
+ X + 1)m
3
(X) + X
r(X) = (X
10
+ X
8
+X
7
+ X
6
+ X
5
+ X
4
+ X
3
)m
5
(X) + X + 1
Les restes des des divisions de r(X) par m
1
(X), m
3
(X) et m
5
(X) scrivent donc
respectivement
b
1
(X) = X
3
+ X
2
+ X b
3
(X) = X b
5
(X) = X + 1
On en dduit maintenant (avec laide de la table 5.4) les expressions des 6 compo-
santes du syndrome
s
1
= b
1
() =
3
+
2
+ =
11
s
2
= b
2
(
2
) = b
1
(
2
) =
6
+
4
+
2
= (
3
+
2
)+(+1)+
2
=
3
++1 =
7
s
3
= b
3
(
3
) =
3
s
4
= b
4
(
2
) = b
1
(
4
) =
12
+
8
+
4
= (
3
+
2
++1)+(
2
+1)+1 =
3
+1 =
14
s
5
= b
5
(
5
) =
5
+ 1 =
2
+ + 1 =
10
s
6
= b
6
(
6
) = b
3
(
6
) =
6
Lexpression du syndrome est donc
S = (
11
,
7
,
3
,
14
,
10
,
6
)
On voit que lexpression du syndrome est cohrente avec une erreur en position 11.
En effet
S = (e(), e(
2
), e(
3
), e(
4
), e(
5
), e(
6
))
Do e() =
11
signale une erreur en position 11. Remarquons que e(
2
) =

11
2
=
22
=
7
, que e(
3
) =
11
3
=
33
=
3
, etc..., e(
6
) =
11
6
=
66
=
6
.
86 TBA1
H. Dedieu Codes polynmiaux cycliques
5.9.6 Dcodage dun code BCH
Supposons que erreurs se produisent lors de la transmission dun n-uple dun
code BCH (n, k) et que ces erreurs se trouvent aux positions 0 j
1
j
2

j
3
. . . j

< n. On a donc
e(X) = e
j
1
X
j
1
+ e
j
2
X
j
2
+ . . . + e
j

X
j

= X
j
1
+ X
j
2
+ . . . + X
j

(5.32)
Daprs lquation (5.29) on a les 2t quations suivantes
s
1
=
j
1
+
j
2
+
j
2
+ . . . +
j

s
2
= (
j
1
)
2
+ (
j
2
)
2
+ (
j
2
)
2
+ . . . + (
j

)
2
s
3
= (
j
1
)
3
+ (
j
2
)
3
+ (
j
2
)
3
+ . . . + (
j

)
3
(5.33)
.
.
.
.
.
.
s
2t
= (
j
1
)
2t
+ (
j
2
)
2t
+ (
j
2
)
2t
+ . . . + (
j

)
2t
Dans lquation (5.33), les
j
1
,
j
2
,
j
2
, . . . ,
j

sont les inconnues. Une fois ces


inconnues trouves, on en dduit les positions des erreurs j
1
, , j
2
, . . . , j

. Toute
mthode capable de rsoudre lquation (5.33) constitue un algorithme de dcodage
des codes BCH. On dispose de plusieurs algorithmes pour le dcodage des codes
BCH. La mthode la plus simple, quand n nest pas trod grand est bas sur la cor-
respondance entre le syndrome et le correcteur qui est stocke en mmoire ROM.
5.10 Codes de Reed-Solomon
Dcouverts avant les codes BCH, les codes de Reed-Solomon ne sont pourtant
quun cas particulier des codes BCH; ils forment une classe importante des codes
correcteurs que lon utilise principalement pour traiter les salves derreurs. Les
codes de Reed-Solomon (ainsi dnomms en honneur leurs dcouvreurs en 1960)
sont des codes BCH particuliers dont les polynmes gnrateurs sont non binaires
et obissent une relation de la forme
g(X) = (X + )(X +
2
)(X +
3
) . . . (X +
2t
) (5.34)
o est llment primitif de CG(2
m
). Avec de tels codes on traite des lments
(symboles) de CG(2
m
) et par consquent des m-uples. Les codes de Reed-Solomon
ont la proprit remarquable de pouvoir corriger des blocs de t symboles avec seule-
ment 2t symboles de contrle. Les paramtres des codes de Reed-Solomon sont les
suivants
TBA1 87
Codes polynmiaux cycliques H. Dedieu
Longueur de bloc n symboles n = (2
m
1) symboles (2
m
1) m bits par bloc
Nombre de bits de contrle n k = 2t symboles 2t m bits de contrle
Distance minimale entre mots-code d
min
= 2t + 1 symboles
5.10.0.1 Exemple
Trouver le polynme gnrateur du code de Reed-Solomon (15, 11).
5.10.0.2 Solution
Le code de Reed-Solomon (15, 11) possde nk = 15 11 = 4 symboles de
contrle. Les symboles sont des lments de CG(2
4
) car m = 4, (n = 2
m
1 =
15 = 2
4
1). Un tel code est donc capable de corriger t =
nk
2
= 2 symboles dans
des blocs de n = 15 symboles en utilisant 11 symboles dinformation et 8 symboles
de contrle. Selon lquation (5.34), le polynme gnrateur est de la forme
(X + )(X +
2
)(X +
3
)(X +
4
)
Soit
(X
2
+ ( +
2
)X +
3
)(X
2
+ (
3
+
4
)X +
7
)
En utilisant les rsultats de la table 5.4 concernant les lments de CG(2
4
) on
trouve
(X
2
+
5
X +
3
)(X
2
+
7
X +
7
)
Puis en dveloppant
g(X) = X
4
+
13
X
3
+
6
X
2
+
3
X +
10
5.11 Quelques codes cycliques remarquables
5.11.1 Le code de Golay
Le code de Golay (23, 12) est un code cyclique qui peut tre gnr soit par
g
1
(X) = 1 + X
2
+X
4
+ X
5
+ X
6
+X
10
+ X
11
(5.35)
ou par
g
2
(X) = 1 + X +X
5
+ X
6
+ X
7
+ X
9
+X
11
(5.36)
On remarque en effet que
X
23
+ 1 = (X + 1)g
1
(X)g
2
(X) (5.37)
88 TBA1
H. Dedieu Codes polynmiaux cycliques
Ce code est capable de corriger nimporte quelle combinaison de trois erreurs ou
moins dans un bloc de n = 23 bits. Ce code possde 23 12 = 11 bits de re-
dondance, le syndrome peut donc reprsenter 2
11
= 2048 combinaisons derreurs
diffrentes. Or le nombre de combinaisons possibles correspondant respectivement
labsence derreurs, une, deux et trois erreurs possibles sont respectivement.
C
0
23
= 1 C
1
23
= 23 C
2
23
=
23 22
2
= 253 C
2
23
=
23 22 21
2 3
= 1771
Le nombre de combinaisons derreurs possibles pour un nombre derreurs variant
entre 0 et 3 est
C
0
23
+ C
1
23
+ C
2
23
+ C
3
23
= 2048
Le code de Golay est ce que lon appelle un code parfait car lensemble des com-
binaisons derreurs que le code peut corriger correspond au nombre de combinai-
sons permises par le syndrome. La correction, une fois le syndrome calcul, peut
tre effectue par inspection dune table 2048 entres puisquil existe une corres-
pondance bi-univoque entre le syndrome et lerreur commise. Dun point de vue
thorique le code de Golay a inspir un large ventail de recherches, puisquil est
avec le code de Hamming le seul code parfait. Malheureusement le code de Golay
ne peut tre gnralis une famille de codes plus large.
5.11.2 Les codes de Fire
Les codes de Fire appartiennent la premire classe de codes qui ont t
construits de faon corriger les salves derreurs. Ces codes prsentent un poly-
nme gnrateur de la forme
g(X) = (1 + X
2l1
)p(X) (5.38)
o p(X) est un polynme gnrateur irrductible de degr r et 2l 1 ne doit pas
tre divisible par r. Si p(X) est primitif, pour que le code soit cyclique, il faut que
n soit le petit commun multiple de 2l 1 et de 2
r1
. Comme tout code polynomial,
un code de Fire est capable de dtecter les salves derreur de longueur infrieure
ou gale n k = 2l 1 + r. On peut montrer quun code de Fire est capable de
corriger des salves derreurs de longueur l
5.11.2.1 Exemple
laide du polynme primitif de degr 5, p(X) = 1 + X
2
+ X
5
. Construire le
code Fire capable de corriger des salves de longueur l = 5 laide du polynme
primitif de degr 5, p(X) = 1 + X
2
+ X
5
.
TBA1 89
Codes polynmiaux cycliques H. Dedieu
5.11.2.2 Solution
Comme p(X) est un polynme primitif de degr 5 sa priode est 2
5
1 = 31.
(On rappelle que la priode est lentier le plus petit pour lequel p(X) divise
1 + X

). On doit corriger des salves derreur de longueur maximum l = 5 et


2l 1 = 9 et 31 sont bien premier entre eux. Le polynme gnrateur est donc
g(X) = (1 + X
9
)(1 + X
2
+ X
5
)
Comme un code cyclique doit tre tel que son polynme gnrateur (de degr nk)
divise 1 + X
n
, n est forcment le plus petit commun multiple entre 9 et 31 soit
n = 279. Or nk = 9+5 = 14. Do lon tire que le code est un code (279, 265).
90 TBA1
H. Dedieu Codes polynmiaux cycliques
5.12 Exercices
Exercice 5.1
Soit g(X) un polynme gnrateur dun code bloc (n, k). Montrer que si g(X)
divise (1 + X
n
), alors si C
1
(X) = c
0
+ c
1
.X + c
2
.X
2
+ . . . + c
n1
.X
n1
est un
mot-code (correspondant au n-uple ([c
n1
, c
n2
, . . . , c
0
]) alors C
2
(X) = c
n1
+
c
0
.X + c
1
.X
2
+ . . . + c
n2
.X
n1
est aussi un mot-code (correspondant au n-uple
([c
n2
, c
n1
, . . . , c
0
, c
n1
]). En dduire quune condition ncessaire et sufsante
lobtention dun code cyclique est la divisibilit de (1 + X
n
) par g(X).
Exercice 5.2
Pourquoi le polynme gnrateur dun code (n, k) est-il de degr nk ? Com-
bien de mots-code pourra-t-on gnrer avec un polynme gnrateur dun tel de-
gr ?
Exercice 5.3
1. Trouver le polynme gnrateur dun code cyclique (7, 4) et donner len-
semble des mots-code.
2. Trouver la distance minimale entre les mots-codes et en dduire la capacit
de dtection et la capacit de correction du code.
3. Trouver une matrice gnratrice systmatique dun tel code (7, 4).
4. La matrice gnratrice que vous avez trouve garde-t-elle les mmes corres-
pondances entre les mots dinformation et les mots-codes que celles trouves
la question 1.
Exercice 5.4
Soit un code cyclique (n, k) dont le polynme gnrateur est g(X).
1. Montrer que pour l = 1, 2, . . . k, X
nl
peut scrire sous la forme X
nl
=
A
l
(X).g(X) + R
l
(X) et indiquer le degr maximum de R
l
(X).
2. En dduire que X
nl
+ R
l
(X) est divisible par g(X).
3. Indiquer laide dun bloc de bits jusquo vont stendre les bits correspon-
dants X
nl
et ceux correspondants R
l
(X). Montrer que ces deux types
de bits ne peuvent jamais interfrer la mme position.
TBA1 91
Codes polynmiaux cycliques H. Dedieu
4. Montrer quune matrice systmatique G
S
peut tre constitue en prenant k
lignes induites par les polynmes X
nl
+R
l
(X) pour l = 1, 2, . . . k.
5. En reprenant lexemple prcdent o le polynme gnrateur du code valait
soit g
1
(X) = (X
3
+ X
2
+ 1) ou soit g
2
(X) = (X
3
+ X + 1), construire
les matrices gnratrices G
S1
et G
S2
des deux codes. Montrer que les deux
codes ont les mmes capacits de dtection et de correction.
Exercice 5.5
Soit un code cyclique ou non (n, k) dont le polynme gnrateur est g(X).
Montrer que si le polynme gnrateur contient un facteur X+1 alors tout message
de longueur n comportant un nombre impair derreurs est dtect.
Exercice 5.6
Soit le circuit de la gure 5.6 dans lequel tous les additionneurs sont modulo 2
(OU exclusif). Soit U(X) un polynme de degr k1 tel que U(X) = u
0
+u
1
X+
. . . + u
k1
X
k1
correspondant au k-uple [u
k1
, u
k2
, . . . , u
0
] dans lesquels les
u
i
pour [i = 0 . . . k 1] appartiennent CG(2). On suppose que lon prsente
lentre du circuit de la gure 5.6 les bits u
i
dans lordre suivant, u
k1
est envoy
au temps 0, u
k2
au temps 1, . . . u
0
au temps k 1.
1. Montrer que Y (X) est gal Q(X) =
U(X)
1+X+X
3
.
2. En dduire la valeur de y
i
chaque temps i pour i = 0 . . . k 1 en fonction
des termes q
i
du polynme quotient Q(X) (Q(X) = q
0
+q
1
.X+q
2
.X
2
+. . .).
3. Dduire de la question prcdente les composantes du 3-uple qui se trouve
la sortie des bascules au temps k en fonction de u
0
, u
1
, u
2
, q
0
, q
1
et q
2
.
4. En calculant le reste de la division polynmiale de U(X) par 1 + X + X
3
dduire que ce reste se trouve stock la sortie des bascules linstant n.
5. Soit k = 7 et U(X) = X + X
2
+ X
3
+ X
4
+ X
6
, trouver le quotient et le
reste de la division polynmiale de U(X) par 1 + X +X
3
6. Prsenter maintenant lentre du circuit de la gure 5.6 le 7-uple corres-
pondant au polynme U(X) = X + X
2
+ X
3
+ X
4
+ X
6
et vrier que
vous obtenez bien par le circuit le quotient et le reste de la division par
g(X) = 1 + X + X
3
en calculant les sorties des bascules de linstant 0
linstant 7.
7. Que se passe-t-il en sortie du circuit si lon continue itrer jusqu n = 9
en mettant 0 lentre depuis litration 7 (i.e. u
7
= u
8
= u
9
= 0) ?
8. De manire gnrale, soit le circuit de la gure 5.7 dans lequel les g
i
valent 0
ou 1. Dans le cas o g
i
= 1, cela veut dire quil existe un rebouclage unitaire
92 TBA1
H. Dedieu Codes polynmiaux cycliques
entre la sortie y
i
et lentre de ladditionneur correspondant g
i
, dans le cas
o g
i
= 0 le rebouclage correspondant nexiste pas. Montrer que le circuit
divise U(X) par g(X) = 1 + g
1
X + g
2
X
2
+. . . g
m1
X
m1
+ X
m
.
9. Expliquez comment on calcule le reste de la division polynmiale de U(X)
par g(X) laide du circuit de la gure 5.7.
D
0
D
1
D
2
+
+
u
i
y
i
+
+
codecycliqueexocircuit61.pdI 1 05/06/05 10:46:01
FIGURE 5.6 Figure associe lexercice 5.6 (questions 1 7)
D
0
D
1
D
2
+
+
u
i
y
i
+
+ +
+
D
m-1
+
+
+
+
1 1 g
2
g
1 g
3
g
m-1
codecycliqueexocircuit62.pdI 1 05/06/05 12:37:24
FIGURE 5.7 Figure associe lexercice 5.6 (questions 8 et 9)
TBA1 93
Codes polynmiaux cycliques H. Dedieu
Exercice 5.7
Dans le protocole de liaison de donnes HDLC (High-level Data Link Control)
on utilise une structure de trame qui a la forme dcrite la gure 5.8.
Fanion
01111110
(8 bits)
Fanion
01111110
(8 bits)
Adresse
(8 bits)
Contrle
(8 bits)
CRC
(16 bits)
Donnes
(8.K
d
bits)
hdlctrame.pdI 1 05/07/05 21:04:22
FIGURE 5.8 Structure dune trame HDLC
Les donnes sont en nombre variable dune trame sa suivante mais elles sont
toujours sur un nombre entier doctets K
d
.
Le champ CRC (Cyclic redundancy check) est calcul laide dun polynme
gnrateur normalis appel CRC-CCITT V.41 de la forme
g(X) = 1 + X
5
+ X
12
+ X
16
Le champ CRC est calcul laide dun polynme gnrateur que lon applique
sur la trame lexception des bits de fanion et du CRC lui-mme. Le CRC est ici
exclusivement utilis en dtection derreurs. Aprs dtection ventuelle derreurs,
la trame sera redemand lexpditeur.
1. En appelant k le nombre de bits correspondant au champ dadresse, de contrle
et de donnes, calculez la longueur n des mots-code.
2. Combien y-a-t-il de bits de contrle par mot-code ? Est-ce en accord avec la
structure de la trame donne la gure 5.8 ?
3. Comment calculeriez-vous le mot-code et en particulier les bits de contrle ?
(Tenez compte du fait que le code est systmatique)
4. Montrer que si un nombre impair derreurs est prsent alors il sera dtect
par le CRC.
5. Montrer que les salves derreurs de longueur infrieure 16 sont dtectes.
6. Montrer que toutes les erreurs doubles sont dtectes. (Indications : montrer
que le reste de la division de X
17
+1 par g(X) est non nul, puis par rcurrence
montrer que si le reste de la division de X
l
+1 par g(X) est non nul, alors le
reste de la division de X
l+1
+ 1 par g(X) est aussi non nul.
7. Montrer que toutes les erreurs simples et triples sont dtectes.
8. Montrer quil est relativement simple de construire un cas ou une erreur qua-
druple nest pas dtecte.
9. Dduire des 3 questions prcdentes la distance minimale entre les mots du
code.
94 TBA1
H. Dedieu Codes polynmiaux cycliques
10. Quelle est la capacit de dtection du code ?
11. Quelle serait la capacit de correction si le code tait utilis en correcteur ?
12. Vous tes charg de raliser un code CRC-CCITT V.41 sous forme de circuit.
Votre premier rexe est de chercher sur Internet un schma du circuit. Vous
trouvez rapidement le schma de la gure 5.9, cependant les explications
sont lacunaires. Analyser comment devrait fonctionner ce circuit. Vrier
que le circuit est correct et expliquer ce que lon doit faire avec la porte et les
interrupteurs.
13. Aprs que vous ayez cod avec succs vous tes charg du dcodage. Quel
circuit allez-vous proposer ?
D D D D D D D D D D D D D D
+
+ +
+
+
+
Entre
Sortie
D
1
2
D
Porte
h
d
lc
c
o
d
e
u
r.p
d
I 1
0
5
/0
8
/0
5
0
0
:2
0
:2
3

FIGURE 5.9 Structure dun codeur CRC-CCITT V.41
TBA1 95
Codes polynmiaux cycliques H. Dedieu
96 TBA1
6
Codes convolutionnels
6.1 Introduction
Les codes convolutionnels diffrent des codes blocs par le fait que le codeur
possde une mmoire. Ds lors les n valeurs de sortie du codeur un instant donn
sont calcules non seulement avec les k valeurs dentre cet instant mais aussi
partir des m valeurs stockes en mmoire dans le codeur. On parle maintenant de
codes (n, k, m). Un code convolutionnel (n, k, m) peut tre implment laide
dun circuit squentiel k entres, n sorties et m valeurs mmorises. Dans les cas
que nous considrerons dans la suite k = 1 ; les squences dinformations ne seront
pas traites comme des blocs mais seront traites de faon continue.
6.2 Encodage de codes convolutionnels
Un exemple de circuit squentiel implmentant un code convolutionnel (2, 1, 3)
est donn la gure 6.1. Dans cette gure les additionneurs reprsentent des OU-
Exclusifs (additions modulo-2), les rectangles reprsentent des registres mmoires
dcalage qui sont actionns toutes les T secondes, T tant la priode de temps
sparant deux entres conscutives. Les deux sorties v
(1)
et v
(2)
sont calcules
chaque instant et sont entrelaces de faon former le bloc de sortie v = (v
(1)
, v
(2)
).
Considrons le codage de la squence dentre u = (1, 0, 1, 1, 1) laide du
circuit implmentant le code convolutionnel (2, 1, 3) prsent la gure 6.1. Nous
c 2010 HEIG-VD.
97
Codes polynmiaux cycliques H. Dedieu

v
T T T
v
(2)
v
(1)
u

_
_
FIGURE 6.1 Un exemple de code convolutionnel (2, 1, 3)
Itration u s
1
s
2
s
3
v
(1)
v
(2)
v
1 1 0 0 0 1 1 11
2 0 1 0 0 0 1 01
3 1 0 1 0 0 0 00
4 1 1 0 1 0 1 01
5 1 1 1 0 0 1 01
6 0 1 1 1 0 1 01
7 0 0 1 1 0 0 00
8 0 0 0 1 1 1 11
TABLE 6.1 Analyse du circuit prcdent en rponse u = (1, 0, 1, 1, 1)
dsignerons respectivement par s
1
, s
2
, s
3
les sorties des bascules avec lindice s
1
pour la bascule de gauche et s
2
pour la bascule du milieu. Lanalyse du circuit est
donn par la table 6.1
La squence complte de sortie en rponse u = (1, 0, 1, 1, 1) est donc
v = (11, 01, 00, 01, 01, 01, 00, 11)
Une autre faon de calculer la sortie du systme est dutiliser la transforme en z
pour calculer les deux fonctions de transfert
V
(1)
(z)
U(z)
et
V
(2)
(z)
U(z)
. En analysant le circuit
on voit que
V
(1)
(z)
U(z)
= 1 + z
2
+ z
3
V
(2)
(z)
U(z)
= 1 + z
1
+ z
2
+ z
3
Or U(z) = 1 + z
2
+z
3
+z
4
, do
V
(1)
(z) =
_
1 +z
2
+z
3
_ _
1 + z
2
+ z
3
+ z
4
_
98 TBA1
H. Dedieu Codes polynmiaux cycliques
V
(2)
(z) =
_
1 + z
1
+z
2
+ z
3
_ _
1 + z
2
+ z
3
+ z
4
_
Soit en dveloppant
V
(1)
(z) = 1 + z
7
V
(2)
(z) = 1 + z
1
+z
3
+ z
4
+ z
5
+ z
7
En prenant la transforme en z inverse des deux signaux on trouve
v
1
= (1, 0, 0, 0, 0, 0, 0, 1)
v
2
= (1, 1, 0, 1, 1, 1, 0, 1)
En entrelaant v
1
et v
2
on retrouve nalement
v = (11, 01, 00, 01, 01, 01, 00, 11)
6.3 Longueur de contrainte dun code convolutionnel
On appelle longueur de contrainte le nombre
n
c
= n(m + 1) (6.1)
En effet, chaque bit dinformation inuence les n sorties du codeur pendant m+ 1
itrations. En consquence n
c
peut tre interprt comme le nombre maximum de
sorties du codeur qui peuvent tre inuences par un simple bit dinformation.
6.4 Graphe de transition dun code convolutif
Dans lexemple que nous avons trait jusqu prsent, nous avons considr le
codeur vu sous langle dune table de fonctionnement tenant compte dune certaine
squence dentre non exhaustive. Or le codeur tant une machine nombre dtats
nis une reprsentation plus globale et plus fonctionnelle du codeur devrait exister.
Cette reprsentation est donne par le graphe de transition du codeur. On appel-
lera tat du codeur lensemble des variables mmoires du codeur.
1
Soit le codeur
convolutionnel (2, 1, 2) dni par la gure 6.2 Pour un tel codeur il y a 2
2
= 4
tats accessibles possibles et pour chacun de ces tats accessibles il y a 2 entres
possibles. Ds lors une table de 8 lignes spcie de faon exhaustive le comporte-
ment du codeur, (voir table 6.2). Le diagramme de transition de phase de la gure
6.3 spcie de faon complte le comportement du codeur. Dans ce diagramme les
1. On appelle en gnral tat dune machine lensemble minimal de variables qui permet avec
les entres de calculer compltement la sortie de la machine tout instant.
TBA1 99
Codes polynmiaux cycliques H. Dedieu
s
2
s
1

`
v
T T
v
(
2)
v
(
1)
u

`

_
_
FIGURE 6.2 Exemple de codeur convolutionnel (2, 1, 2)
Entre Etat Etat suivant Sorties
u s
1
s
2
u s
1
v
(1)
v
(2)
0 00 00 00
1 00 10 11
0 01 00 11
1 01 10 00
0 10 01 10
1 10 11 01
0 11 01 01
1 11 11 10
TABLE 6.2 Table de fonctionnement du codeur
tats se trouvent dans les cercles, les sorties du codeurs se trouvent indiques lors
des transitions dtats ; par exemple pour la transition entre ltat 00 et ltat 10 on
indique par 1/11 que larrive de lentre 1 a gnr une sortie 11.
6.4.1 Remarque fondamentale concernant le codage
Lorsque lon code laide dun code convolutionnel (n, 1, m) une information
de longueur 1 bit se trouve code par n bits. Cependant si lon considre quun bloc
de L bits pntre squentiellement dans le codeur, ce bloc est encod par un code
de longueur n(L+m) car n.m sorties supplmentaires sont gnres par le codeur
aprs que la dernire information non nulle ait pntre dans le codeur. Si au dbut
du bloc le codeur tait dans son tat initial nul, au bout du temps (L+m), le codeur
reviendra dans son tat initial nul. Pour nous en convaincre, reprenons lexemple du
100 TBA1
H. Dedieu Codes polynmiaux cycliques

0/01
1/01
0/00
1/00
0/10
1/10
1/11
0/11


10
01
00
11
FIGURE 6.3 Diagramme de transition de phase
TBA1 101
Codes polynmiaux cycliques H. Dedieu
codeur (2, 1, 3) de la gure 6.1. On code ici une information u = (1, 0, 1, 1, 1)
de longueur L = 5. On remarque que le code gnr est de longueur n(L + m) =
2(5 + 3) = 16 et que la dure du codage est L + m = 5 + 3 = 8 ; au bout de
8 itrations, le codeur est bien revenu dans son tat initial. Les m = 3 dernires
itrations du codeur correspondent des itrations entre nulle.
Itration Entre Etat Etat suivant Sortie
u s
1
s
2
s
3
u s
1
s
2
v
(1)
v
(2)
v
1 1 0 0 0 1 0 0 1 1 11
2 0 1 0 0 0 1 0 0 1 01
3 1 0 1 0 1 0 1 0 0 00
4 1 1 0 1 1 1 0 0 1 01
5 1 1 1 0 1 1 1 0 1 01
6 0 1 1 1 0 1 1 0 1 01
7 0 0 1 1 0 0 1 0 0 00
8 0 0 0 1 0 0 0 1 1 11
TABLE 6.3 Analyse du circuit de la gure 6.1 en rponse u = (1, 0, 1, 1, 1)
6.4.2 Diagramme en treillis associ un code convolutionnel
Soit un bloc de longueur L que lon veut encoder laide dun code convo-
lutionnel (n, 1, m). On sait daprs la remarque prcdente que les mots codes
rsultants seront de longueur n(L + m) et quaprs L + m itrations, le codeur
sera revenu dans son tat initial. Lensemble des possibilits dencodage peut tre
apprci avec un diagramme en treillis dont lutilit nous apparatra clairement
lorsquon considrera le problme du dcodage. Pour illustrer ce quest un dia-
gramme treillis reprenons lexemple du code convolutionnel (2, 1, 2) associ au
circuit de la gure 6.2. Un tel code 2
m
= 2
2
= 4 tats. Dcidons de noter ltat
00 par S
0
, ltat 01 par S
1
, ltat 10 par S
2
et ltat 11 par S
3
. Considrons main-
tenant lencodage de blocs de L = 3 bits. Le diagramme en treillis de la gure 6.4
montre lensemble des 8 mots codes qui sont gnrs. Par exemple lorsquon veut
coder 111 on voit que larrive du premier 1 gnre une transition S
0
S
2
et que
la sortie gnre est 11, puis larrive du second 1 gnre une transition S
2
S
3
pour une sortie 01, enn larrive du troisime 1 gnre une transition S
3
S
3
.
Toutefois il faut m = 2 itrations de plus pour "dsarmer" la mmoire du codeur en
imposant des entres nulles pendant m itrations. Ds lors une quatrime itration
supplmentaire sera ncessaire pour passer de S
3
S
1
par lintermdiaire dun
0 en entre (01 en sortie) et une cinquime itration pour passer de S
1
S
0
par
102 TBA1
H. Dedieu Codes polynmiaux cycliques
1/00
1/01 1/01
0/01
0/01
0/11 0/11 0/11
0/10
0/10
0/10
1/11 1/11
1/11
0/00
0/00 0/00 0/00 0/00
m = 2 sorties

L = 3 sorties

`
_
`
_
`
_
`
_
`
_

`
`
`
`
`

`
_
`
_
`
_


`
`
`
`
`
`
`
`
`
`
S
2
S
2
S
2
S
3
1/10
S
3
S
1
S
1
S
1
S
0
S
0
S
0
S
0
S
0 S
0

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
_
`
_
`
_
`
_
`
_
`
_
FIGURE 6.4 Diagramme en treillis associ au circuit de la gure 6.2 (code convo-
lutionnel (2, 1, 2))
lintermdiaire dun 0 en entre (10 en sortie). Le codage de 111 est donc selon
111 1101100111
Lensemble des 8 possibilits de codage pour L = 3 est reprsent la table 6.4.
Mot en entre du codeur Mot en sortie du codeur
000 00 00 00 00 00
001 00 00 11 10 11
010 00 11 10 11 00
011 00 11 01 01 11
100 11 10 11 00 00
101 11 10 00 10 11
110 11 01 01 11 00
111 11 01 10 01 11
TABLE 6.4 Codes gnrs pour des mots de longueur L = 3 par le code convolu-
tionnel (2, 1, 2) associ au circuit de la gure 6.2
6.4.2.1 Remarques fondamentales concernant le diagramme en treillis
Le codeur commence coder depuis ltat S
0
(lments mmoires initialiss
0) et revient dans le mme tat S
0
. Les m premires itrations correspondent au
TBA1 103
Codes polynmiaux cycliques H. Dedieu
1/00 1/00
1/00 1/00
0/01 0/01 0/01
0/01
0/01
0/11 0/11
0/11
0/11
0/11 0/11
1/01
1/01
1/01 1/01 1/01
0/10 0/10
0/10
0/10 0/10
0/10
1/11 1/11
1/11 1/11 1/11 1/11
1/10
1/10 1/10 1/10
m = 2

`
_


S
2
S
1
S
1
S
0
S
0 S
0
`
_
`
_
S
3
`
_
`
_
`
_

`
`
`
`

`
_

`
`
`
`

`
`
`
`
`
`
`
`
_
`
_
`
_

`
`
`
`

`
_

`
`
`
`

`
`
`
`
`
`
`
`
_
`
_
`
_

`
`
`
`

`
_

`
`
`
`

`
`
`
`
`
`
`
`
_
`
_
`
_

`
`
`
`

`
_

`
`
`
`

`
`
`
`
`
`
`
0/00 0/00 0/00 0/00
0/00 0/00 0/00 0/00
S
3
S
3
S
3
S
2
S
2
S
2
S
1
S
1
S
1
S
0
S
0
S
0

L = 6

`
_
`
_
`
_

`
_
`
_
`
_
`
_

`
`
`
`
S
2
S
2
S
3
S
1
S
0
S
0
S
0

`
`
`
`
`
`
`
`
`
`
`
`
`
`
FIGURE 6.5 Diagramme en treillis associ au circuit de la gure 6.2 pour L = 6
(code convolutionnel (2, 1, 2))
dpart depuis ltat S
0
et les m dernires au retour vers ltat S
0
. Il sensuit que que
tous les tats ne peuvent tre atteints durant les m1 premires et les m dernires
itrations du codeur. Cependant dans la portion centrale du treillis (itrations m L)
tous les tats sont accessibles. En particulier depuis litration m jusqu litration
L 1 pour chaque tat du treillis il y a 2 branches sortantes et depuis litration
m+ 1 jusqu litration L il y a toujours 2 branches entrantes ; en consquence le
treillis est form dune rplique symtrique de transitions entre les itrations m+1
et L1 Ceci napparat pas directement sur la gure 6.2 car L est trop petit dans ce
cas, pour sen convaincre on pourra observer le diagramme en treillis de la gure
6.5 o L = 6 ; la zone centrale du treillis est indique lintrieur du rectangle.
Pour chacun des 2
L
mots pouvant entrer dans le codeur il existe un chemin unique
travers le treillis ; ce chemin est de longueur n(L + m). En suivant un chemin
particulier on peut directement crire la correspondance entre le mot dentre (L
premires itrations) et le mot code rsultant ; par exemple pour le chemin indiqu
en traits gras la gure 6.6 on a la correspondance
101111 1110000110100111
104 TBA1
H. Dedieu Codes polynmiaux cycliques

-
-
Z
Z
Z
Z~
Z
Z
Z
Z~

3
J
J
J
J
J
J
J^
1/00 1/00
1/00 1/00
0/01 0/01 0/01
0/01
0/01
0/11 0/11
0/11
0/11
0/11 0/11
1/01
1/01
1/01 1/01 1/01
0/10 0/10
0/10
0/10 0/10
0/10
1/11 1/11
1/11 1/11 1/11 1/11
1/10
1/10 1/10 1/10
m = 2

`
_


S
2
S
1
S
1
S
0
S
0 S
0
`
_
`
_
S
3
`
_
`
_
`
_

`
`
`
`

`
_

`
`
`
`

`
`
`
`
`
`
`
`
_
`
_
`
_

`
`
`
`

`
_

`
`
`
`

`
`
`
`
`
`
`
`
_
`
_
`
_

`
`
`
`

`
_

`
`
`
`
`
`
`
`
_
`
_
`
_

`
_

`
`
`
`

`
`
`
`
`
`
`
0/00 0/00 0/00 0/00
0/00 0/00 0/00 0/00
S
3
S
3
S
3
S
2
S
2
S
2
S
1
S
1
S
1
S
0
S
0
S
0

L = 6

`
_
`
_
`
_

`
_
`
_
`
_
`
_

`
`
`
`
S
2
S
2
S
3
S
1
S
0
S
0
S
0
`
`
`
`
`
`
`
FIGURE 6.6 Un chemin particulier pour le diagramme en treillis associ au cir-
cuit de la gure 6.2 pour L = 6 (code convolutionnel (2, 1, 2)) 101111
11 10 00 01 10 10 01 11
6.5 Dcodage dun code convolutionnel
6.5.1 Introduction au dcodage selon lalgorithme de Viterbi
Nous allons envisager ici un dcodage des mots reus selon le principe que les
mots seront corrigs (sil y a lieu) en changeant le mot reu contre le mot code qui
se trouve la distance de Hamming la plus proche.
6.5.1.1 Quand le mot reu appartient au code ...
Si le mot reu appartient un chemin possible travers le treillis on en dduit
que le syndrome est nul et lon peut recomposer facilement la squence de suc-
cession dtats en mme temps que la squence dentre. Par exemple si pour le
diagramme en treillis 6.6, le rcepteur reoit la squence 11 10 00 01 10 10 01 11,
ayant connaissance du diagramme en treillis du codeur, il saperoit que les deux
premiers bits 11 ont t mis lors dune transition S
0
S
2
sous limpulsion dune
entre 1, puis que deux bits suivants 10 ont t mis lors dune transition S
2
S
1
sous limplusion dun 0, etc .... Il reconstitue sans peine le message avant codage
101111.
6.5.1.2 Quand le mot reu nappartient pas au code ...
Il semble a priori quil faille comparer le mot reu au 2
L
mots-code possibles.
Si L devient grand cette faon de faire devient prohibitive du point de vue du cot
TBA1 105
Codes polynmiaux cycliques H. Dedieu
calculatoire et du stockage en mmoire. Cest ici quintervient un algorithme de
dcodage trs puissant introduit par Viterbi en 1967. Nous allons dcrire dabord
cet algorithme, nous justierons ensuite son optimalit ; nous raisonnerons dabord
sur un exemple particulier avant dnoncer et de justier le principe dans sa gn-
ralit. Reprenons lexemple du codeur (2, 1, 2) de la gure 6.2 utilis pour coder
des mots de longueur L = 3. Si nous rcrivons la table de codage en calculant
la distance entre les mots du code on trouve d
min
= 5 ce qui prouve que le code
est capable de dtecter jusqu 4 erreurs et peut en corriger 2. Supposons que lon
reoive le mot 0001111111, ce mot nappartient pas au code et envisageons de le
corriger.
Mot en entre du codeur Mot en sortie du codeur d
000 00 00 00 00 00 -
001 00 00 11 10 11 5
010 00 11 10 11 00 5
011 00 11 01 01 11 6
100 11 10 11 00 00 5
101 11 10 00 10 11 6
110 11 01 01 11 00 6
111 11 01 10 01 11 7
TABLE 6.5 Codes gnrs pour des mots de longueur L = 3 par le code convo-
lutionnel (2, 1, 2) associ au circuit de la gure 6.2, d indique toutes les distances
possibles entre les mots du code
1. Etape 1. Plaons nous dabord litration j = m. Pour chaque tat S
i
,
i = 0 . . . 3, il nexiste quun seul chemin possible conduisant du S
0
initial
(itration 0) ltat S
i
de litration m. On calcule alors la distance entre le
chemin sur le treillis et les n.m premiers bits reus. Par exemple pour ltat
S
0
de litration m (m = 2), les transitions dtats sont S
0
S
0
S
0
, le
chemin optimal est 00 00 alors que lon a reu 00 01. On indique pour S
0
une
distance 1. Pour S
1
, les transitions dtat sont S
0
S
2
S
1
, et le chemin
optimal est 11 10 alors que lon a reu 00 01. On indique pour S
0
une distance
4. Pour S
2
on calcule ainsi la distance entre 00 11 et 00 01 et lon indique une
distance 1. Par le mme principe pour S
3
on calcule la distance entre 1101 et
00 01 qui indique une distance 2. Ces rsultats sont dcrits par la gure 6.7.
2. Etape 2. Accroissons maintenant j j + 1. Pour chaque tat S
i
i = 0 . . . 3
associ litration j on calcule la distance entre le chemin menant de S
0
litration 0 S
i
litration j. On na pas besoin de recalculer toutes
les distances, en effet pour ltat S
0
qui est obtenu litration 3 selon les
transitions dtats S
0
S
0
S
0
S
0
, on devrait calculer la distance
106 TBA1
H. Dedieu Codes polynmiaux cycliques
2
1
4
1
0/10
1/01
1/11
0/00
1/11
0/00
`
_
`
_
`
_
m = 2

L = 3

`
_
`
_
`
_
`
_

`
`
`
`
`
S
2
S
2
S
3
S
1
S
0
S
0
S
0

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
FIGURE 6.7 Dcodage de Viterbi pour le codeur (2, 1, 2) associ au circuit de la
gure 6.2 ; on se place dabord litration m (m = 2)
entre 00 00 00 et le message reu 00 01 11, cette distance donnerait 3. Il est
plus commode et quivalent de cumuler la distance entre 00 00 et 00 01 dj
calcule prcdemment et indique sur le diagramme en treillis partiel 6.7.
En effet d(00 00 00, 00 01 11) = 1 + d(00, 11) = 3. Comme il y a deux
faons daccder chaque tat S
i
, on note la paire de distances associe
chaque chemin menant S
i
. Ceci est dcrit par la gure 6.8. Pour chaque tat
S
i
litration j il existe donc deux chemins, lun des deux est sous-optimal
puisquil montre une distance suprieure ; on peut donc laguer le treillis en
supprimant pour chaque tat le chemin qui est sous-optimal, chaque tat se
trouve maintenant associ une seule mtrique. Ceci est montr la gure
6.9.
3. Etape 3. Tant que j < L + m on revient ltape 2. Dans le cas contraire
on arrte. Lensemble de ltape 2 est reprsent aux gures 6.10 6.12. A
ltape 3 il ne reste plus quun chemin optimal reprsent la gure 6.13. Ce
chemin indique un mot code corrig 00 00 11 10 11. Le mot avant codage
peut tre aussi lu sur le diagramme en considrant les entres associs aux
L = 3 premires transitions dtat, on trouve un mot avant codage gal 001.
TBA1 107
Codes polynmiaux cycliques H. Dedieu
bits reus
2
3
`
`
`
`
`
1/10
3
2
0/10
0/01

`
6
1
S
3
S
2
S
1
1/00
1/11
`
`
`
`
`
4
`
`
`
`
`
`
`
`
3
0/11

0/00
11 01 00
`
_
`
_

`
_
S
0
`
_

2
1
4
1
0/10
1/01
1/11
0/00
1/11
0/00
`
_
`
_
`
_
m = 2

L = 3

`
_
`
_
`
_
`
_

`
`
`
`
`
S
2
S
2
S
3
S
1
S
0
S
0
S
0

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
FIGURE 6.8 Dcodage de Viterbi pour le codeur (2, 1, 2) associ au circuit de la
gure 6.2 ; on se place litration j = m+ 1 = 3
1/01
1/01
0/10 0/10
1/11
1/11
1/11
0/00 0/00 0/00

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

S
0
S
0
S
0
S
1
S
3
S
2
S
2
`
`
`
`
`

`
_
`
_
`
_
`
_

L = 3

m = 2
`
_
`
_
`
_ 1
4
1
2

`
_
S
0
`
_
`
_
`
_
00 01 11
3
`
`
`
`
`
`
`
`
S
1
S
2
S
3
1
2
`
`
`
`
`
2
bits reus
FIGURE 6.9 Dcodage de Viterbi pour le codeur (2, 1, 2) associ au circuit de
la gure 6.2 ; on se place litration j = m + 1 = 3, on lague les chemins
sous-optimaux.
108 TBA1
H. Dedieu Codes polynmiaux cycliques
3
2
2
5
0/01

`
1/00
S
1
S
0
0/11
0/10
0/00

`
_
11
`
_

1/01
1/01
0/10 0/10
1/11
1/11
1/11
0/00 0/00 0/00

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

S
0
S
0
S
0
S
1
S
3
S
2
S
2
`
`
`
`
`

`
_
`
_
`
_
`
_

L = 3

m = 2
`
_
`
_
`
_ 1
4
1
2

`
_
S
0
`
_
`
_
`
_
00 01 11
3
`
`
`
`
`
`
`
`
S
1
S
2
S
3
1
2
`
`
`
`
`
2
bits reus
FIGURE 6.10 Dcodage de Viterbi pour le codeur (2, 1, 2) associ au circuit de
la gure 6.2 ; on se place litration j = 4.
TBA1 109
Codes polynmiaux cycliques H. Dedieu
2
2
S
1
S
0
0/11
0/10

`
_
11
`
_
1/01
1/01
0/10 0/10
1/11
1/11
1/11
0/00 0/00 0/00

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

S
0
S
0
S
0
S
1
S
3
S
2
S
2
`
`
`
`
`

`
_
`
_
`
_
`
_

L = 3

m = 2
`
_
`
_
`
_ 1
4
1
2

`
_
S
0
`
_
`
_
`
_
00 01 11
3
`
`
`
`
`
`
`
`
S
1
S
2
S
3
1
2
`
`
`
`
`
2
bits reus
FIGURE 6.11 Dcodage de Viterbi pour le codeur (2, 1, 2) associ au circuit de la
gure 6.2 ; on se place litration j = 4 aprs lagage des chemins sous-optimaux.
S
0
2
4
0/11
0/00
11

`
_

2
2
S
1
S
0
0/11
0/10

`
_
11
`
_
1/01
1/01
0/10 0/10
1/11
1/11
1/11
0/00 0/00 0/00

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

S
0
S
0
S
0
S
1
S
3
S
2
S
2
`
`
`
`
`

`
_
`
_
`
_
`
_

L = 3

m = 2
`
_
`
_
`
_ 1
4
1
2

`
_
S
0
`
_
`
_
`
_
00 01 11
3
`
`
`
`
`
`
`
`
S
1
S
2
S
3
1
2
`
`
`
`
`
2
bits reus
FIGURE 6.12 Dcodage de Viterbi pour le codeur (2, 1, 2) associ au circuit de
la gure 6.2 ; on se place litration j = L + m = 5.
110 TBA1
H. Dedieu Codes polynmiaux cycliques
- -
J
J
J
J
J
J
J
J^

3
S
0
2
0/11
11
`
_
2
2
S
1
S
0
0/11
0/10

`
_
11
`
_
1/01
1/01
0/10 0/10
1/11
1/11
1/11
0/00 0/00 0/00

`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`

S
0
S
0
S
0
S
1
S
3
S
2
S
2
`
`
`
`
`
`
_
`
_
`
_
`
_

L = 3

m = 2
`
_
`
_
`
_ 1
4
1
2

`
_
S
0
`
_
`
_
`
_
00 01 11
3
S
1
S
2
S
3
1
2
`
`
`
`
`
2
bits reus
FIGURE 6.13 Dcodage de Viterbi pour le codeur (2, 1, 2) associ au circuit de
la gure 6.2 ; on se place litration j = L + m = 5, aprs lagage du dernier
chemin sous-optimal on trouve le mot code corrig 00 00 11 10 11 qui correspond
au mot avant codage 001
TBA1 111
Codes polynmiaux cycliques H. Dedieu
6.5.2 Algorithme de Viterbi pour un codeur (n, 1, m)
On nonce maintenant le fonctionnement de lalgorithme de Viterbi dans le cas
gnral. Cette algorithme se dcompose en 3 tapes principales.
6.5.2.1 Etape 1
On se place litration j = mo les 2
m
tats sont "visits" par un seul chemin.
Pour chaque tat cette itration on indique la distance entre le chemin accdant
ltat et la squence des n.m premiers bits reus. On mmorise cette distance pour
chaque tat. On note d
(m)
i
la distance entre le chemin menant de ltat initial ltat
i de litration j = m et la squence des n.m bits reus.
6.5.2.2 Etape 2
On accrot j dune unit, j j +1. Pour chaque tat, il existe maintenant deux
chemins daccs. On calcule par rcurrence les 2 distances entres les 2 chemins
possibles et la squence des n.j premiers bits reus. Pour ce faire, sil existe une
transition possible entre un tat k litration j 1 et un tat l litration j, on
calcule
d
(j)
l
= d
(j1)
k
+ d(o
k l
, r
j
) (6.2)
o o
k l
est la sortie de n bits associe la transition entre ltat k litration j 1
et ltat l litration j et r
j
est la squence de n bits reus situs aux positions (j
1)n+1 j.n. Pour l = 1 . . . 2
m
chacun des tats S
(j)
l
possde 2 mtriques associes
2 chemins daccs permettant de visiter S
(j)
l
. On supprime alors pour chaque tat
le chemin daccs sous-optimal qui possde la mtrique la plus grande. Aprs cette
opration dlagage il nexiste plus quun chemin pour accder chacun des S
(j)
l
et quune mtrique associe chacun des S
(j)
l
.
6.5.2.3 Etape 3
On teste si j = L + m et on revient ltape 2 tant que cela nest pas vrai.
Lorsque cela est vrai on dispose dun seul chemin permettant de parcourir le treillis
et ce chemin est forcment le chemin optimal car tous les sous-chemins limins
ltape 2 ne peuvent faire partie du chemin optimal.
6.5.3 Dcodage selon le principe du maximumde vraisemblance
On suppose ici aussi quon utilise un codeur (n, 1, m) et quon code une s-
quence de L bits
u = u
0
, u
1
, u
2
, . . . , u
L1
112 TBA1
H. Dedieu Codes polynmiaux cycliques
en une squence de longueur N = n(L + m) de la forme
v = v
0
, v
1
, v
2
, . . . , v
N1
Supposons maintenant que la squence v soit envoye sur un canal discret sans
mmoire et que lon chantillonne les donnes v
i
entaches de bruit sur Q niveaux.
On dispose alors dune squence r de la forme
r = r
0
, r
1
, r
2
, . . . , r
N1
Pour chaque r
i
sur Q niveaux on peut supposer que par mesure on peut modliser
leffet du canal sous la forme de la probabilit de recevoir r
i
sachant que lon a
mis v
i
. Lorsque les v
i
sont binaires et les r
i
sur Q niveaux, la modlisation du
canal se fait par lintermdiaire dune table p(r
i
|v
i
) 2 lignes et Q colonnes. On se
pose maintenant la question de savoir, tant donn un message reu r, de trouver
le message mis v le plus probable
2
. On veut donc minimiser la probabilit de se
tromper cest--dire que lon cherchera v qui minimise
p( v = v|r)
Ceci revient donc maximiser la probabilit
p( v = v|r)
Or ceci revient encore trouver le v qui parmi tous les v possibles va maximiser
p(v|r) =
p(r|v)p(v)
p(r)
(6.3)
Pour une source entropie maximale, p(v) est la mme pour tous les v, dautre
part r tant reu p(r) est une constante qui nintervient pas dans la maximisation
de lquation (6.3). Il sensuit que maximiser (6.3) revient trouver le v qui parmi
tous les v possibles va maximiser
p(r|v) (6.4)
Si lon suppose que le canal est un canal qui superpose au signal v
i
un bruit blanc
Gaussien on a
p(r|v) =
N1

i=0
p(r
i
|v
i
) (6.5)
(Cette dernire quation est valide car le canal et sans mmoire et que les chan-
tillons de bruits sont indpendants entre eux par hypothse.) Ds lors le problme
2. Les v et les u tant en correspondance bi-univoque, trouver le v le plus probable est quivalent
trouver le u le plus probable.
TBA1 113
Codes polynmiaux cycliques H. Dedieu
de trouver le v le plus probable revient celui de trouver les v
i
i = 0 . . . N 1
qui vont maximiser (6.5). Cette mthode est appele mthode du maximum de
vraisemblance et un dcodeur qui maximise (6.5) est dit dcodeur maximum de
vraisemblance . Pour des raisons de commodit dimplmentation, on choisit sou-
vent de maximiser le logarithme de la fonction (6.5) enn dchanger une somme
par un produit, i.e
log (p(r|v)) =
N1

i=0
log
_
p(r
i
|v
i
)
_
(6.6)
6.5.4 Algorithme de Viterbi pour la mthode du maximum de
vraisemblance
On a prsent jusqu prsent lalgorithme de Viterbi avec des mtriques qui
utilisaient la distance de Hamming. Ceci quivalait faire lhypothse implicite que
le canal avait certaines bonnes proprits, par exemple qil tait binaire symtrique.
Dans un cas plus gnral on remplacera la distance de Hamming qui intervient dans
lalgorithme de Viterbi par la fonction de log-vraisemblance. Cest--dire que la
rcurrence ( 6.2) sera remplac par lquation
d
(j)
l
= d
(j1)
k
+ log(p(r
j
|v
j
= o
k l
)) (6.7)
Mis part ce changement de mtrique, lalgorithme de Viterbi sapplique de faon
identique.
Problme 1
Un codeur convolutionnel de type (3, 1, 2) est donn la Figure 6.14.
D D x
y
1
y
2
y
3
+
+
+
+
+
+
FIGURE 6.14 Codeur convolutionnel (3, 1, 2)
1. Donner la table de fonctionnement du codeur convolutionnel.
114 TBA1
H. Dedieu Codes polynmiaux cycliques
2. En dduire la diagramme de transistion dtats.
3. Quelle squence de sortie correspondra la squence dentre 0101100
4. On reoit le message 111010001011011111011, corrigez ce message si n-
cessaire avec un algorithme de Viterbi et trouvez le mot dinformation le plus
probable lui correspondant.
6.6 Exercices
Problme 2
Soit le codeur convolutionnel (3, 1, 2) qui est dcrit par la Figure 6.15.
T T
+ +
+
+
+
+
+
u
v
( 1)
v
(2 )
v
(3 )
FIGURE 6.15 Figure associe au problme 2
Pour un tel codeur
1. Trouver la table de fonctionnement du codeur.
2. Trouver le graphe de transition de phase du codeur.
3. Soit une squence dentre de la forme
101010000011
trouver la rponse du codeur.
TBA1 115
Codes polynmiaux cycliques H. Dedieu
T T
+ +
+
+
+
u
v
( 1)
v
(2 )
FIGURE 6.16 Figure associe au problme 3
Problme 3
Soit le codeur convolutionnel (2, 1, 2) qui est dcrit par la Figure 6.16.
Pour un tel codeur
1. Trouver sa table de fonctionnement.
2. Trouver le graphe de transition de phase du codeur.
3. Dessiner le diagramme en treillis associ au codeur pour un message dentre
de longueur L = 3 bits (on veillera dsarmer le codeur).
4. Parcourez le diagramme en treillis pour le message dentre 110 et donnez la
mot en sortie du codeur.
5. Sachant que vous recevez une squence (ventuellement entache dune er-
reur) de la forme
0011111100
encode laide du codeur de la Figure 3. Dcodez cette squence laide
dun algorithme de Viterbi et donnez la squence dentre la plus plausible.
116 TBA1
7
Modulations numriques
CONTENU
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . 118
7.2 Technique par saut de phase . . . . . . . . . . . . . . . 118
7.2.1 Technique par saut de phase binaire (BPSK) . . . . . . . 118
7.2.2 Dmodulation optimale (BPSK) . . . . . . . . . . . . . 119
7.2.3 Probabilit derreur avec un systme BPSK en prsence
de bruit blanc Gaussien additif . . . . . . . . . . . . . . 121
7.2.4 Gnration dune modulation BPSK . . . . . . . . . . . 125
7.2.5 Occupation spectrale dune modulation BPSK . . . . . . 125
7.2.6 Technique par saut de phase quadriphase (QPSK) . . . . 128
7.2.7 Exemple de construction de signaux QPSK . . . . . . . 130
7.2.8 Gnration de signaux QPSK . . . . . . . . . . . . . . 132
7.2.9 Dtection optimale de signaux QPSK . . . . . . . . . . 133
7.2.10 Probabilit derreur des systmes QPSK . . . . . . . . . 135
7.2.11 Occupation spectrale dune modulation QPSK . . . . . 136
7.2.12 Exercice 1 (PSK) . . . . . . . . . . . . . . . . . . . . . 138
7.2.13 Exercice 2 (PSK) . . . . . . . . . . . . . . . . . . . . . 138
7.2.14 Exercice 3 (PSK) . . . . . . . . . . . . . . . . . . . . . 138
7.2.15 Exercice 4 (ASK) . . . . . . . . . . . . . . . . . . . . . 139
7.2.16 Exercice 5 (PSK) . . . . . . . . . . . . . . . . . . . . . 139
Rsum
c 2010 HEIG-VD.
117
Modulations numriques H. Dedieu
7.1 Introduction
On sest intress jusqu prsent des transmissions numriques en bande de
base. On sintresse maintenant des transmissions numriques dans lesquelles le
ot de donnes numriques est le signal modulant dune porteuse gnralement
sinusodale dont la frquence est dans la bande dun canal passe-bande.
Cette manire de moduler les signaux numriques correspond au plus grand
nombre dapplications.
Il y a trois faons de procder pour ces modulations numriques.
1. Soit on modie lamplitude dune porteuse en fonction du bit ou du sym-
bole transmettre (modulation par saut damplitude - (ASK) Amplitude Shift
Keying).
2. Soit on modie la phase de la porteuse en fonction du bit ou du symbole
transmettre (modulation par saut de phase - (PSK) Phase Shift Keying).
3. Soit on modie la frquence de la porteuse en fonction du bit ou du symbole
transmettre (modulation par saut de frquence - (FSK) Frequency Shift
Keying).
Ces trois faons de moduler peuvent tre interprtes comme des cas particu-
liers des modulations damplitude, de phase et de frquence. Notons que dans de
nombreux on utilise en fait des combinaisons de ces trois mthodes.
7.2 Technique par saut de phase
On va tudier ici les mthodes au saut de phase soit binaire (BPSK), soit qua-
ternaire (QPSK) ainsi que leurs variantes. Nous serons particulirement intresss
leur probabilit derreur, consommation en bande passante et efcacit spectrale.
Ces trois termes seront dnis plus avant.
7.2.1 Technique par saut de phase binaire (BPSK)
Dans cette technique (Binary Phase Shift Keying), on module le signal porteur
par un saut de phase (0 ou ). De faon plus prcise, une paire de signaux s
0
(t) et
s
1
(t) est utilise an de reprsenter les bits 0 ou 1. Soit E
b
lnergie dun bit durant
un temps T
b
, le signal associ au 0 sera dni par
s
0
(t) =

2E
b
T
b
cos(2f
c
t) 0 t < T
b
, (7.1)
118 TBA1
H. Dedieu Modulations numriques
0 1 2 3 4 5 6
1
0.5
0
0.5
1
S
a
u
t

d

a
m
p
l
i
t
u
d
e
0 1 2 3 4 5 6
1
0.5
0
0.5
1
S
a
u
t

d
e

p
h
a
s
e
0 1 2 3 4 5 6
1
0.5
0
0.5
1
S
a
u
t

d
e

f
r

q
u
e
n
c
e
FIGURE 7.1 Exemple de modulation du train de bits [0, 1, 1, 0, 1, 0] selon une
modulation damplitude, de phase ou de frquence.
le signal associ au 1 scrira quant lui
s
1
(t) =

2E
b
T
b
cos(2f
c
t +) =

2E
b
T
b
cos(2f
c
t) = s
0
(t) 0 t < T
b
,
(7.2)
An dassurer qu chaque bit transmis est associ un nombre entier de priodes
de la porteuse, la frquence de la porteuse est choisie de telle manire que f
c
=
n
c
T
b
o n
c
est un nombre entier. Les deux signaux sinusodaux s
0
(t) et s
1
(t) tels que
dnis en (7.1) et (7.2) tant dphass de sont appels signaux antipodaux.
7.2.2 Dmodulation optimale (BPSK)
On aimerait trouver une fonction nergie unitaire
0
(t) telle que lon ait (au
sens dun produit scalaire dnir)
s
0
(t)
_

0
(t) = K
0
, (7.3)
Si lquation (7.3) est vrie, comme s
1
(t) = s
0
(t), on a bien sr
TBA1 119
Modulations numriques H. Dedieu
s
1
(t)
_

0
(t) = K
0
, (7.4)
avec K
0
le plus grand possible an que la discrimination soit la meilleure pos-
sible. Comment choisir maintenant le produit scalaire et la fonction
0
(t) ?
On choisit en gnral comme produit scalaire de deux fonctions lintgrale du
produit de deux fonctions sur la dure du bit, ainsi on dnit le produit scalaire par
x(t)
_
y(t) =
_
T
b
0
x(t).y(t)dt (7.5)
(Remarquons que lorsque x(t) est gal y(t), lquation 7.5 reprsente lner-
gie de x(t) durant le temps T
b
.)
Lune des faons de maximiser K
0
est de prendre une fonction
0
(t) proportion-
nelle s
0
(t) et donc sinusodale. Une fonction nergie unitaire sur un intervalle
de temps T
b
doit avoir une amplitude
_
2
T
b
, la fonction
0
(t) vaut donc

0
(t) =

2
T
b
cos(2f
c
t) (7.6)
Lapplication du produit scalaire de la fonction
0
(t) au signal s
0
(t) ou s
1
(t)
permettra la discrimination des deux fonctions s
0
(t) et s
1
(t) condition que K
0
soit sufsamment grand.
Que vaut K
0
? On a,
K
0
=
_
T
b
0
s
0
(t).
0
(t)dt = 2

E
b
T
b
_
T
b
0
cos
2
(2f
c
t)dt =
_
E
b
(7.7)
Lensemble de lopration de dmodulation est schmatis la Figure 7.2.
cos(2Sf
0
t)
s
0
(t)
s
1
(t)
b
T
2

b
T
0
Eb
Eb

FIGURE 7.2 Suivant le signal s


0
(t) ou s
1
(t) appliqu lentre du dmodulateur,
apparatra en sortie +

E
b
ou

E
b
aprs un temps T
b
.
Lopration de dtection ou dmodulation peut tre interprte comme une op-
ration qui effectue une correspondance (mapping) entre un signal de dure T
b
,
s
0
(t) 0 t < T
b
(resp. s
1
(t)) avec un point qui vaut +

E
b
(resp.

E
b
). La
coordonne du "point de message" est donc

E
b
. Lensemble de lopration de
dmodulation est schmatise la Figure 7.3.
120 TBA1
H. Dedieu Modulations numriques
b
b
T
E 2
Eb Eb

b
b
T
E 2
b
b
T
E 2
b
b
T
E 2
-
-
Tb
Tb 0 0
s
0
(t)
s
1
(t)
Frontire de
dcision
FIGURE 7.3 Suivant le signal s
0
(t) ou s
1
(t) appliqu lentre du dmodulateur,
apparatra dans un cas idal en sortie +

E
b
ou

E
b
aprs un temps T
b
. En pra-
tique, en raison du bruit de canal, si le nombre dtect est positif on conclura un
bit "0" transmis. La frontire de dcision arbitre la dtection du bit transmis.
7.2.3 Probabilit derreur avec un systme BPSK en prsence
de bruit blanc Gaussien additif
Si lon suppose quun bruit blanc Gaussien de variance
N
0
2
et de moyenne nulle
se superpose la dtection optimale, les signaux obtenus en sortie du dtecteur sont
des signaux alatoires de moyenne

E
b
et de variance
2
b
=
N
0
2
. Ainsi lorsque
lon envoie un signal s
0
(t) lentre du modulateur, on dtecte en sortie un nombre
alatoire X
0
dont la densit de probabilit est
p
X
0
(x
0
|0) =
1

2
b
exp
_

1
2
2
b
(x
0

_
E
b
)
2
_
(7.8)
Cette fonction sinterprte comme la densit de probabilit de recevoir un nombre
alatoire X
0
dans un voisinage de x
0
petit sachant quun "0" a t mis, de faon
TBA1 121
Modulations numriques H. Dedieu
plus prcise la densit de probabilit est telle que
p(x
1
X
0
< x
0
+ dx
0
) = p
X
0
(x
0
|0)dx
0
(7.9)
De la mme manire lorsque lon envoie un signal s
1
(t) lentre du modu-
lateur, on dtecte en sortie un nombre alatoire X
1
dont la densit de probabilit
est
p
X
1
(x
1
|1) =
1

2
b
exp
_

1
2
2
b
(x
1
+
_
E
b
)
2
_
(7.10)
Les densits de probabilit associes aux deux variables alatoires X
0
et X
1
sont reprsentes la Figure 7.4 pour un cas particulier o

E
b
= 1.5 et
b
= 0.6.
4 3 2 1 0 1 2 3 4
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Nombres alatoires dtects la sortie du dmodulateur
D
e
n
s
i
t

s

d
e

p
r
o
b
a
b
i
l
i
t

s
FIGURE 7.4 Les deux densits de probabilit associes aux variables alatoires
X
0
et X
1
reprsentes pour un cas particulier o

E
b
= 1.5 et
b
= 0.6.
Que vaut la probabilit derreur lorsque lon met un "1" ?
La probabilit derreur est la probabilit de dtecter un nombre positif en sortie
du dmodulateur (idalement le nombre obtenu devrait tre

E
b
). Or la densit
de probabilit du nombre obtenu la sortie du dmodulateur sachant quun "1" a t
mis est p
X
1
(x
1
|1). Par consquent, la probabilit de dtecter un "0" sachant quun
"1" a t mis que nous appellerons p
01
est lintgrale de la densit de probabilit
sur la demi-droite des nombres positifs, i.e
p
01
=
_
+
0
p
X
1
(x
1
|1)dx
1
(7.11)
Lillustration de cette intgrale est donne la Figure 7.5. Dtaillons maintenant le
122 TBA1
H. Dedieu Modulations numriques
Eb

FIGURE 7.5 La probabilit de dtecter un "0" sachant quun "1" a t mis est
donne par lintgrale de la densit de probabilit sur lensemble des nombres rels
positifs.
calcul de p
01
, il vient
p
01
=
_
+
0
1

2
b
exp
_

1
2
2
b
(x
1
+
_
E
b
)
2
_
dx
1
, (7.12)
soit en tenant de
2
b
=
N
0
2
,
p
01
=
_
+
0
1

N
0
exp
_

1
N
0
(x
1
+
_
E
b
)
2
_
dx
1
, (7.13)
En posant z =
1

N
0
(x
1
+

E
b
) et donc dz =
1

N
0
dx
1
, la probabilit derreur scrit
p
01
=
1

_
+

E
b
/N
0
exp
_
z
2
_
dz, (7.14)
Cette fonction nest pas calculable analytiquement mais elle est tabule, en effet on
a coutume dappeler, fonction erreur complmentaire la fonction suivante
erfc(a) =
2

_
+

a
exp
_
z
2
_
dz, (7.15)
On a donc
p
01
=
1
2
erfc
_

E
b
N
0
_
, (7.16)
TBA1 123
Modulations numriques H. Dedieu
De manire symtrique si lon voulait calculer la probabilit de dtecter un "1"
lorsquun "0" est mis, on trouverait
p
10
=
1
2
erfc
_

E
b
N
0
_
. (7.17)
Si lon admet une quiprobabilit des "0" et des "1" mis, la probabilit derreur est
p
eBPSK
=
1
2
p
01
+
1
2
p
10
=
1
2
erfc
_

E
b
N
0
_
. (7.18)
La probabilit derreur dun systme de type BPSK est donne la Figure 7.6. On
observera, conformment au bon sens qu niveau de bruit donne N
0
, le fait dac-
crotre E
b
, et donc daccrotre la discrimination entre les deux messages, diminue
la probabilit derreur. Lorsquon connat le niveau de bruit, on ajuste si cela est
possible lnergie par bit E
b
de faon pouvoir atteindre une probabilit derreur
prescrite (e.g 10
5
).
5 2.5 0 2.5 5 7.5 10
10
6
10
5
10
4
10
3
10
2
10
1
10
0
Eb/No
P
e
FIGURE 7.6 Probabilit derreur dun systme BPSK
124 TBA1
H. Dedieu Modulations numriques
7.2.4 Gnration dune modulation BPSK
Daprs la forme temporelle des signaux BPSK (Cf. quations (7.1) et (7.2)),
on peut les considrer comme rsultant dune mise en forme de type NRZ bipo-
laire damplitude
_
2E
b
T
b
, cette mise en forme tant elle-mme module par une
porteuse frquence f
c
. Lensemble de lopration de modulation est schmatise
la Figure 7.7.
cos(2Sf
c
t)
T
E
b
b 2
1, 0, 1, 1, .....
NRZ bipolaire
m(t)
Message
binaire toutes
les Tb sec.
x(t)
y(t)
x(t)
t
Squence NRZ
bipolaire
Tb
Squence
BPSK
T
E
b
b 2

FIGURE 7.7 Probabilit derreur dun systme BPSK


7.2.5 Occupation spectrale dune modulation BPSK
Il est essentiel maintenant de se poser la question de loccupation spectrale re-
lative une modulation BPSK. Daprs la Figure 7.7, on voit que loccupation
spectrale dun signal BPSK pourra se dduire de loccupation spectrale dune s-
quence NRZ en bande de base. En effet, loccupation spectrale dune signal NRZ
en bande de base, il correspondra un signal BPSK dont loccupation spectrale se
dduira par un dcalage frquenciel centr sur f
c
pour les frquences positives et
sur f
c
pour les frquences ngatives.
Que vaut maintenant loccupation spectrale dune squence NRZ dont la dure
de chaque bit est T
b
et donc lamplitude est
_
2E
b
T
b
?
Comme la squence NRZ est une squence pseudo-alatoire, le spectre de la
squence est la transforme de Fourier de la fonction dautocorrlation de cette
squence. Calculons cette fonction dautocorrlation. Posons A =
_
2E
b
T
b
.
TBA1 125
Modulations numriques H. Dedieu
R
X
() = E[x(t)x(t + )] (7.19)
Il y a deux cas considrer, soit || < T
b
, ou || T
b
. Nous supposerons que les
bits successifs sont indpendants et que lon a quiprobabilit des "1" et des "0".
1) Supposons dabord que 0 < T
b
. On saperoit que de T
b
, x(t) et
x(t + ) ont la mme polarit. De 0 , les polarits de x(t) et x(t + ) peuvent
tre quelconques puisquelles appartiennent deux symboles conscutifs indpen-
dants. En moyenne, ces polarits se compenseront du fait de lquiprobabilit des
symboles. Ds lors
R
X
() =
1
T
b
_
T
b

A
2
dt =
1
T
b
A
2
[t]
T
b

= A
2
[1

T
b
] si 0 < T
b
(7.20)
2) Supposons maintenant que T
b
< 0. On saperoit que de 0 T
b
+
, x(t) et x(t + ) ont la mme polarit. De T
b
+ T
b
, les polarits de x(t)
et x(t + ) peuvent tre quelconques puisquelles appartiennent deux symboles
conscutifs indpendants. En moyenne, ces polarits se compenseront du fait de
lquiprobabilit des symboles. Ds lors
R
X
() =
1
T
b
_
T
b
+
0
A
2
dt =
1
T
b
A
2
[t]
T
b
+
0
= A
2
[1+

T
b
] si T
b
< 0 (7.21)
3) Supposons maintenant que || > T
b
. Dans ce cas, x(t) et x(t + ), peuvent
avoir des polarits quelconques linstant t puisque x(t) et x(t + ) appartiennent
des bits diffrents. La moyenne des polarits sera nulle du fait de lindpendance
des bits et de lquiprobabilit des "0" et des "1".
R
X
() = 0 si || T
b
(7.22)
On peut rsumer ltude de la fonction dautocorrlation sous la forme de la for-
mule suivante,
R
X
() =
_
A
2
.[1
||
T
b
] || < T
b
0 || T
b
(7.23)
La transforme de Fourier de la fonction dautocorraltion scrit alors
S
X
(f) = T.F.[R
X
()] =
_
0
T
b
A
2
[1+
t
T
b
] exp
j2ft
dt+
_
T
b
0
A
2
[1
t
T
b
] exp
j2ft
dt
(7.24)
Aprs manipulation de cette dernire quation, on trouve,
S
X
(f) = A
2
.T
b
sin
2
(fT
b
)
(fT
b
)
2
, (7.25)
soit en remplaant A par
_
2E
b
T
b
,
126 TBA1
H. Dedieu Modulations numriques
S
X
(f) = 2E
2
b
sin
2
(fT
b
)
(fT
b
)
2
= 2E
2
b
sinc
2
(T
b
f) (7.26)
Ceci correspond ce que lon pourrait appeler le spectre BPSK en bande de
base. Le spectre BPSK rel correspondra un double dcalage tel que donn la
Figure 7.8.
TBA1 127
Modulations numriques H. Dedieu
5 4 3 2 1 0 1 2 3 4 5
0
0.5
1
1.5
2
Tb.f
S
p
e
c
t
r
e

B
P
S
K

e
n

b
a
n
d
e

d
e

b
a
s
e
5 4 3 2 1 0 1 2 3 4 5
0
0.2
0.4
0.6
0.8
1
Tb.f
S
p
e
c
t
r
e

B
P
S
K


(
e
x
e
m
p
l
e

a
v
e
c

f
c
=
3
/
T
b
)
FIGURE 7.8 Spectre dun signal BPSK (en bande de base) et en bande relle pour
un exemple avec f
c
=
3
T
b
.
7.2.6 Technique par saut de phase quadriphase (QPSK)
On va voir ici que lon peut mieux exploiter le canal en utilisant une technique
quadriphase en lieu de la technique biphase utilise jusqualors. Dans la technique
QPSK(Quadriphase Phase Shift Keying), la phase de la porteuse peut prendre lune
des quatre valeurs

4
,
3
4
,
5
4
ou
7
4
. On peut alors dnir le signal QPSK comme
tant lun des quatre signaux suivants
s
i
(t) =

2E
T
cos
_
2f
c
t + (2i 1)

4
_
0 t < T i = 1 . . . 4, (7.27)
o E est lnergie par bit, T est la dure dun symbole correspondant lun des
quatre tats de phase et f
c
est un multiple de
1
T
. Comme un symbole pourra prendre
quatre valeurs, il sera donc cod sur deux bits.
Une faon alternative dcrire lquation (7.27) est
s
i
(t) =

2E
T
cos(2f
c
t) cos
_
(2i 1)

4
_

2E
T
sin
_
2f
c
t) sin((2i 1)

4
_
i = 1 . . . 4,
(7.28)
Ce jeu dcriture fait apparatre le signal QPSK comme tant un signal avec une
double modulation, les deux porteuses tant en quadrature.
128 TBA1
H. Dedieu Modulations numriques
Soient maintenant les fonctions
1
(t) et
2
(t) reprsentant ces deux porteuses
en quadrature et prenons comme amplitude des deux porteuses un nombre tel que
leur nergie soit unitaire sur le temps T. Il vient

1
(t) =

2
T
cos(2f
c
t)
2
(t) =

2
T
sin(2f
c
t), (7.29)
Remarquons par ailleurs que
1
(t)
2
(t) au sens du produit scalaire suivant

1
(t)
_

2
(t) =
_
T
0

1
(t)
2
(t)dt = 0 (7.30)
On peut alors daprs (7.28) et (7.29) rcrire s
i
(t) sous la forme
s
i
(t) =

E
1
(t) cos
_
(2i 1)

4
_
+

E
2
(t) sin
_
(2i 1)

4
_
i = 1 . . . 4,
(7.31)
lensemble des quatre signaux possibles est alors
s
i
(t) =

E
2

1
(t) +

E
2

2
(t) i = 1 . . . 4, (7.32)
On peut alors convenir dun diagramme dtats pour la modulation QPSK en
dcrivant le message s
i
(t) suivant sa dcomposition sur les axes
1
(t) et
2
(t). Ce
diagramme est donn la Figure 7.9.
2
Eb

2
Eb

2
Eb
2
Eb
I
1
I
2
FIGURE 7.9 Diagramme de lespace signal QPSK.
On peut tablir une correspondance entre les phases et les bits du message de la
manire suivante :
Avec le choix de la Table 7.1, la correspondance entre le diagramme de lespace
signal et le message est donn la Figure 7.10.
TBA1 129
Modulations numriques H. Dedieu
Message Coordonnes du Message QPSK Phase QPS
0 0
_
E
2
,
_
E
2
5
4
0 1
_
E
2
, +
_
E
2
3
4
1 0 +
_
E
2
,
_
E
2
7
4
1 1 +
_
E
2
, +
_
E
2

4
TABLE 7.1 Exemple de codage possible QPSK.
2
Eb

2
Eb

2
Eb
2
Eb
I
1
I
2
11
10
01
00
FIGURE 7.10 Correspondance entre le diagramme de lespace signal QPSK et le
message (dibit) avec le codage de la Table 7.1.
7.2.7 Exemple de construction de signaux QPSK
Soit par exemple le message [01 10 10 00], avec le choix de codage la Table 7.1,
comment seront construits les signaux QPSK correspondants ce message ?
Le message est constitu de 4 dibits conscutifs formant 4 symboles trans-
mettre. On peut noter que le signal QPSK est la somme dun signal
1
(t)
_
E
2
et dun signal
2
(t)
_
E
2
. Le premier signal est appel voix I (pour in-phase)
alors que le second est appel voix Q (pour voix en quadrature). On peut aussi noter
que lorsque le premier bit du symbole (dibit) est "1", alors le signal sur la voix I
est
1
(t)
_
E
2
, si le premier bit du symbole est "0" alors le signal sur la voix I est

1
(t)
_
E
2
. De mme lorsque le deuxime bit du symbole (dibit) est "1", alors le
signal sur la voix Q est
2
(t)
_
E
2
, si le deuxime bit du symbole est "0" alors le
signal sur la voix Q est
2
(t)
_
E
2
. Le signal QPSK correspondant au message
[01 10 10 00] est donn la Figure 7.11.
130 TBA1
H. Dedieu Modulations numriques
0 0.5 1 1.5 2 2.5 3 3.5 4
1
0.5
0
0.5
1
V
o
i
x

I
0 0.5 1 1.5 2 2.5 3 3.5 4
1
0.5
0
0.5
1
V
o
i
x

Q
0 0.5 1 1.5 2 2.5 3 3.5 4
1.5
1
0.5
0
0.5
1
1.5
S
i
g
n
a
l

Q
P
S
K
FIGURE 7.11 Exemple de construction de signaux QPSK.
TBA1 131
Modulations numriques H. Dedieu
7.2.8 Gnration de signaux QPSK
On peut maintenant gnraliser lexemple prcdent sous forme dun schma
bloc gnral. On saperoit que lon peut considrer que la squence binaire est en-
code par une squence NRZ bipolaire damplitude
_
2
T
. Chaque bit est de dure
T
2
. Puis un dmultiplexeur envoie la valeur chantillonne de la squence NRZ cor-
respondant au premier bit du dibit courant sur la voix I et la valeur chantillonne
de la squence NRZ correspondant au second bit du dibit courant sur la voix Q. Les
signaux sont maintenus pendant T secondes et sont moduls par les fonctions por-
teuses
1
(t) et
2
(t). Les rsultats sont enn somms pour former le signal QPSK.
Lensemble de la procdure est prsente la Figure 7.12 sous forme de schma
bloc.
cos(2Sf
c
t)
Squence
binaire
Encodeur
NRZ
bipolaire
Dmultiplexeur
sin(2Sf
c
t)
T
2
1

I
T
2
2

I
0 1 1 0 1 0
0 1 1 0 1 0
2
E
2
E

Signal BPSK
2
E
2
E

0 1 1
2
E
2
E

1 0 0
T
T
b
T T
T T T
T=2T
b
FIGURE 7.12 Diagramme bloc quivalent dune modulation QPSK.
132 TBA1
H. Dedieu Modulations numriques
7.2.9 Dtection optimale de signaux QPSK
Rappelons dabord lorthogonalit des fonctions de base
1
(t) et
2
(t) au sens
du produit scalaire dni par lquation (7.30), i.e.
_
T
0

2
1
(t)dt = 1
_
T
0

2
2
(t)dt = 1
_
T
0

1
(t)
2
(t)dt = 1 (7.33)
Partant de lquation (7.31) que nous rcrivons par commodit de raisonnement,
s
i
(t) =

E
1
(t) cos
_
(2i 1)

4
_
+

E
2
(t) sin
_
(2i 1)

4
_
i = 1 . . . 4.
(7.34)
Multipliant les membres de droite et de gauche de (7.34) par
1
(t) et intgrons de
0 T, il vient,
_
T
0
s
i
(t)
1
(t)dt =

E
_
_
T
0

2
1
(t)dt
_
cos
_
(2i 1)

4
_
+

E
_
_
T
0

2
(t)
1
(t)dt
_
sin
_
(2i 1)

4
_
,
(7.35)
soit en tenant compte de lorthogonalit de
1
(t) et
2
(t) telle que dcrite par
lquation (7.33), il vient,
_
T
0
s
i
(t)
1
(t)dt =

E cos
_
(2i 1)

4
_
=

E
2
. (7.36)
De manire similaire, en utilisant
2
(t) au lieu de
1
(t), on trouverait,
_
T
0
s
i
(t)
1
(t)dt =

E sin
_
(2i 1)

4
_
=

E
2
. (7.37)
Autrement dit, les produits scalaires de s
i
(t) par les fonctions
1
(t) et
2
(t)
redonnent les composantes de lespace du signal selon les axes
1
(t) et
2
(t). Cha-
cune de ces deux composantes ncessite un calcul qui dure T secondes correspon-
dantes lintgration de 0 T. Par multiplexage de ces deux composantes on peut
retrouver la squence NRZ bipolaire qui avait t utilise la modulation. Len-
semble de la dmodulation est schmatise la Figure 7.13.
TBA1 133
Modulations numriques H. Dedieu
cos(2Sf
c
t)
Dcision
toutes les T
sec.
Dmultiplexeur
T
b
=T/2
sin(2Sf
c
t)
T
2
1

I
T
2
2

I
0 1 1 0 1 0
2
E
2
E

2
E
2
E

2
E
2
E

1 0 0
T
T
b
T T
T T T

T
0

T
0
Dcision
toutes les T
sec.
s
i
(t)
Dcodeur
NRZ
message
binaire
0 1 1 0 1 0
0 1 1
FIGURE 7.13 Diagramme bloc quivalent dune dmodulation QPSK.
134 TBA1
H. Dedieu Modulations numriques
7.2.10 Probabilit derreur des systmes QPSK
Lobjectif est ici de comparer la probabilit derreur dun systme QPSK par
rapport un systme BPSK. Nous comparerons la probabilit derreur obtenu pour
un mme niveau de bruit et pour une mme vitesse en bits par secondes. On aura
donc
2
b
=
N
0
2
, et T = 2T
b
o T
b
est la dure dun bit la fois pour le systme
BPSK et pour le systme QPSK.
On part de lhypothse que le signal s
i
(t) reu est entach dun bruit Gaussien
de variance
2
b
=
N
0
2
, en sorte que lon reoive en fait,
x(t) = s
i
(t) + w(t) 0 t < T i = 1 . . . 4 (7.38)
o
E[w(t)]
2
=
N
0
2
(7.39)
Aprs dmodulation sur la voie I, on trouve linstant T o se fait la dcision,
x
I
=
_
T
0
s
i
(t)
1
(t)dt +
_
T
0

1
(t)w(t)dt = cos
_
(2i 1)

4
_
+
_
T
0

1
(t)w(t)dt,
(7.40)
soit
x
I
=

E
2
+
_
T
0

1
(t)w(t)dt (7.41)
De mme sur la voie Q, on trouverait,
x
Q
=

E
2
+
_
T
0

2
(t)w(t)dt (7.42)
Posons pour les bruits entachant x
I
et x
Q
,
w
1
=
_
T
0

1
(t)w(t)dt w
2
=
_
T
0

2
(t)w(t)dt (7.43)
Les nombres alatoires w
1
et w
2
reprsentent le bruit de dmodulation sur les
deux voies. Quelle est la variance de chacun de ces deux bruits ?
On a
E[w
2
1
] = E
_
_
T
0

1
(t)w(t)dt
_
2
=
_
T
0

2
1
(t)E[w(t)]
2
dt =
N
0
2
(7.44)
On trouverait de mme
E[w
2
2
] =
N
0
2
(7.45)
TBA1 135
Modulations numriques H. Dedieu
En conclusion, les deux composantes x
I
et x
Q
ont une nergie
E
2
et sont enta-
ches dun bruit de variance
N
0
2
. Chaque voie I ou Q pouvant tre assimile un
systme BPSK, la probabilit de faire une erreur sur chaque voie, cest--dire sur
un bit est connue, cest donc
P
e
QPSK
=
1
2
erfc
_
_

E/2
N
0
_
_
(7.46)
Or comme un bit dure la moiti du temps dun symbole, on a
E
b
=
E
2
(7.47)
La probabilit derreur dun systme QPSK est donc
P
e
QPSK
=
1
2
erfc
_

E
b
N
0
_
(7.48)
Or cette expression est identique celle de P
e
BPSK
telle que trouve en (7.28). Si
les probabilits derreurs niveau de bruit donn et vitesse de transfert donn sont
quivalentes pour un systme BPSK et QPSK, quel est lintrt dutiliser un sys-
tme QPSK? Ltude de ltendue spectrale des systmes QPSK va nous permettre
de comparer plus avant ces deux types de modulation et prouver la supriorit des
modulations QPSK.
7.2.11 Occupation spectrale dune modulation QPSK
On sait daprs (7.26) quune voie BPSK denergie A par bit et de dure T
b
par
bit a un spectre
S
BPSK
= 2Asinc
2
(T
b
f)
Or notre signal QPSKest form de la somme de deux spectres de signaux BPSK
indpendants (voies I et Q). Chacune de ces voies BPSK a une nergie
E
2
par bit et
une dure T secondes. Les deux spectres sadditionnant, on trouve
S
QPSK
= 2
E
2
sinc
2
(Tf) + 2
E
2
sinc
2
(Tf) (7.49)
Soit en tenant compte de E = 2E
b
et T = 2T
b
,
S
QPSK
= 4E
b
sinc
2
(2T
b
f) (7.50)
La comparaison de ltendue spectrale des modulations BPSK et QPSK montre
que pour un mme T
b
, la bande QPSK est la moiti de la bande BPSK. La Fi-
gure 7.14 illustre les deux occupations spectrales.
Autrement dit, entre une modulation BPSK et une modulation QPSK, mme
dbit binaire, mme niveau de bruit, on choisira toujours une modulation QPSK
car elle utilise peu prs deux fois moins de bande.
136 TBA1
H. Dedieu Modulations numriques
4 3 2 1 0 1 2 3 4
0
0.5
1
1.5
2
2.5
3
3.5
4
Tb.f
C
o
m
p
a
r
a
i
s
o
n

d
e
s

s
p
e
c
t
r
e
s

B
P
S
K

e
t

Q
P
S
K

e
n

b
a
n
d
e

d
e

b
a
s
e
BPSK
QPSK
FIGURE 7.14 Comparaison des tendues spectrales BPSK et QPSK en bande
passante.
TBA1 137
Modulations numriques H. Dedieu
7.2.12 Exercice 1 (PSK)
Soit un signal BPSK dni par
s(t) = {

E
b
.(t) 0 t T
b
(symbole 1)

E
b
.(t) 0 t T
b
(symbole 0)
o la fonction (t) est telle que :
(t) =

2
T
b
cos(2f
c
t)
Dterminer la probabilit derreur dun tel systme de transmission lorsque lon ef-
fectue une dmodulation cohrente avec une erreur de phase , cest--dire lorsque
le systme de synchronisation produit un signal
r(t) =

2
T
b
cos(2f
c
t + )
On supposera un bruit de dmodulation w(t) Gaussien de variance
2
b
=
N
0
2
. On
supposera que f
c
est un multiple de
1
T
b
.
7.2.13 Exercice 2 (PSK)
Soit une boucle verrouillage de phase constitue par un multiplicateur, un
ltre de boucle et un VCO.
Le signal idal (sans bruit) appliqu lentre de la boucle de verrouillage phase
est de la forme
s(t) = A
c
cos(2f
c
t + k
p
m(t))
dans lequel k
p
est la sensibilit de phase et m(t) prend les valeurs +1 pour le
symbole 1 et 1 pour le symbole 0. La sortie du VCO, une fois la boucle accroche
scrit
r(t) = A
c
sin(2f
c
t + (t))
1. Evaluez la sortie du ltre de boucle en supposant que la composante 2.f
c
soit compltement limine par le ltre de boucle.
2. Montrez que la sortie est proportionnelle lentre si la boucle est ver-
rouille, cest--dire si (t) = 0.
7.2.14 Exercice 3 (PSK)
Dnissez votre diagramme de phase QPSK en veillant ce que deux tats
voisins ne se distinguent que par un seul bit.
138 TBA1
H. Dedieu Modulations numriques
1. Dterminez les composantes Q et I du signal QPSK correspondant la s-
quence
1100100010
(Tracez les deux composantes I et Q en fonction du temps pour un symbole
de dure T
b
.)
2. Tracez la forme donde QPSK en fonction du temps.
7.2.15 Exercice 4 (ASK)
Dans un cas particulier de la modulation par saut damplitude (Amplitude Shift
Keying), le symbole "1" est reprsent par un signal porteur sinusodal damplitude
_
2E
b
T
b
o E
b
est lnergie du symbole "1". Le symbole "0" est quant lui reprsent
par un signal damplitude nulle. On suppose lquiprobabilit des "1" et des "0".
En supposant que le bruit de transmission est Gaussien de variance
N
0
2
, trouvez la
probabilit derreur dun tel systme en supposant quune dtection cohrente soit
possible.
7.2.16 Exercice 5 (PSK)
Le signal dune modulation PSK non conventionnelle est dcrit par lquation
suivante
s(t) = Ak sin(2f
c
t)

1 k
2
cos(2f
c
t)
o 0 t T
b
, f
c
est un multiple de
1
T
b
, le signe "+" correspond au symbole "1" et
le signe "-" au symbole "0". Le premier terme reprsente un signal porteur facilitant
la synchronisation entre le rcepteur et lmetteur.
1. Dessinez le diagramme dans lespace signal.
2. Montrez quen prsence de bruit additif blanc Gaussien de moyenne nulle et
de variance
N
0
2
, la probabilit derreur est
P
e
=
1
2
erfc
_

E
b
N
0
(1 k
2
)
_
3. Supposez que 10% de la puissance transmise soit dvolue au signal porteur.
Dterminez alors le rapport signal bruit
E
b
N
0
permettant dassurer une proba-
bilit derreur de 10
4
.
4. Comparez la valeur trouve la valeur du rapport signal bruit
E
b
N
0
que lon
devrait assurer pour maintenir une probabilit derreur de 10
4
avec une mo-
dulation PSK conventionnelle.
TBA1 139

You might also like