Académique Documents
Professionnel Documents
Culture Documents
COURS ELE112
BASES DE COMMUNICATIONS NUMERIQUES
Didier LE RUYET
didier.le_ruyet@cnam.fr
1
PROGRAMME
• Cours 1 : Introduction, paradigme de Shannon, rappels de probabilités, notion d’entropie,
Information mutuelle
• Cours 2 : théorème fondamental du codage de source, inégalité de Kraft, codage
d’Huffman, débit d’entropie, codage LZ
• Cours 3 : quantification, loi A et mu, codage pour source analogique
• Cours 4 : Codes en ligne, NRZ
• Cours 5 : filtrage adapté,
• Cours 6 calcul du taux d’erreurs
• Cours 7 : critère de Nyquist
2
PROGRAMME
• Cours 8 : capacité d’un canal de transmission
• Cours 9 : introduction codes en bloc
• Cours 10 : Décodage des codes en bloc (méthode du syndrome, Viterbi, ...)
• Cours 11 : Critère MAP/ML décodage à entrées pondérées
• Cours 12 : Codes cycliques , BCH, RS
• Cours 13 : codes convolutifs
• Cours 14 : introduction aux modulations numériques
3
COURS 1
4
PARADIGME DE SHANNON
CODAGE DE CODAGE DE
SOURCE MODULATEUR
SOURCE CANAL
CANAL DE
TRANSMISSION
DECODAGE DECODAGE
DESTINATAIRE DETECTEUR DEMODULATEUR
DE SOURCE DE CANAL
5
PARADIGME DE SHANNON
CODAGE DE CODAGE DE
SOURCE MODULATEUR
SOURCE CANAL
CANAL DE
TRANSMISSION
DECODAGE DECODAGE
DESTINATAIRE DETECTEUR DEMODULATEUR
DE SOURCE DE CANAL
6
RAPPELS DE PROBABILITES
Probabilité conjointe
Soit deux variables aléatoires X et Y ayant pour espace de réalisations respectif AX =
{x1, x2, . . . , xn} et AY = {y1, y2, . . . , ym}
On appelle P (X = xi, Y = yj ) la probabilité conjointe des évènements X = xi et
Y = yj . On a bien entendu :
X X
P (X = xi, Y = yj ) = 1 (2)
xi ∈Ax yj ∈Ay
Probabilité marginale
Il est possible d’obtenir la probabilité P (X = xi) à partir de la probabilité conjointe
7
P (X = xi, Y = yj ) :
X
P (X = xi) = P (X = xi, Y = yj ) (3)
yj ∈Ay
Probabilité conditionnelle
P (X = xi, Y = yj )
P (X = xi|Y = yj ) = (4)
P (Y = yj )
De la même manière on a :
P (X = xi, Y = yj )
P (Y = yj |X = xi) = (5)
P (X = xi)
Ainsi on a la relation
P (Y = yj , X = xi) = P (X = xi|Y = yj )P (Y = yj )
= P (Y = yj |X = xi)P (X = xi) (6)
8
Loi de Bayes
P (X = xi|Y = yj )P (Y = yj )
P (Y = yj |X = xi) =
P (X = xi)
P (X = xi|Y = yj )P (Y = yj )
= P
yk ∈Ay P (X = xi , Y = yk )
P (X = xi|Y = yj )P (Y = yj )
=P
yk ∈Ay P (X = xi |Y = yk )P (Y = yk )
9
UNE MESURE LOGARITHMIQUE DE L’INFORMATION
11
INFORMATION MUTUELLE
On définit l’information mutuelle i(xi, yj ) comme la quantité d’information que la réal-
isation de l’évènement Y = yj apporte sur l’évènement X = xi :
P (X = xi|Y = yj )
i(xi, yj ) = log (14)
P (X = xi)
Si les deux événements sont indépendants, alors P (X = xi|Y = yj ) = P (X = xi) et
donc i(xi, yj ) = 0.
Si l’événement X = xi est équivalent à l’événement Y = yj , alors P (X = xi|Y =
yj ) = 1 et i(xi, yj ) = h(xi).
L’information que la réalisation de l’évènement Y = yj apporte sur l’évènement X =
xi est identique à l’information que la réalisation de l’évènement X = xi apporte sur
l’évènement Y = yj .
i(xi, yj ) = i(yj , xi) (15)
12
On a également les relations suivantes :
i(xi, yj ) = i(yj , xi)
= h(xi) − h(xi|yj )
= h(xi) + h(yj ) − h(xi, yj )
= h(yj ) − h(yj |xi)
Contrairement à h(xi), l’information mutuelle i(xi, yj ) peut être négative.
13
ENTROPIE ET INFORMATION MUTUELLE MOYENNE
Déterminons l’entropie d’une source décrite par la variable aléatoire X ayant pour
espace de réalisation AX = {x1, x2, . . . , xn} avec les probabilités respectives PX =
{p1, p2, . . . , pn}. La quantité d’information moyenne ou entropie de la source est la
moyenne des informations relatives à chaque réalisation de l’évènement X = xi :
n
X
H(X) = pih(xi)
i=1
n
X 1
= pi log2
i=1
pi
X n
=− pi log2 pi en Sh/symbole (16)
i=1
H(X) mesure l’incertitude sur X.
Propriétés :
15
Exemple : soit une source à 2 états x0 et x1 avec p0 = p et p1 = 1 − p
L’entropie de cette source est la suivante :
H(X) ≡ H(p, 1 − p) = −p log2 p − (1 − p) log2(1 − p) (20)
1
0.9
0.8
0.7
0.6
H(X)
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
probabilité p
16
• Considérons deux variables aléatoires X et Y ayant respectivement pour espace de
réalisations AX = {x1, x2, . . . , xn} et AY = {y1, y2, . . . , ym}.
• L’entropie conjointe H(X, Y ) est définie comme suit :
X n X
m
H(X, Y ) = P (X = xi, Y = yj )h(xi, yj )
i=1 j=1
Xn X m
=− P (X = xi, Y = yj ) log2 P (X = xi, Y = yj ) (21)
i=1 j=1
n X
X m
H(X|Y ) = P (X = xi, Y = yj )h(xi|yj )
i=1 j=1
Xn X m
=− P (X = xi, Y = yj ) log2 P (X = xi|Y = yj ) (22)
i=1 j=1
17
• Ces différentes relations permettent d’exprimer l’entropie conjointe en fonction de
l’entropie et l’entropie conditionnelle :
H(X, Y ) = H(X) + H(Y |X) = H(Y ) + H(X|Y ) (23)
• L’incertitude sur X et Y est égale à l’incertitude sur X plus l’incertitude sur Y sachant
X.
• L’information mutuelle associée à la réalisation d’un événement peut également être
étendue aux variables aléatoires X et Y .
n X
X m
I(X, Y ) = P (X = xi, Y = yj )i(xi, yj )
i=1 j=1
n X m
X P (X = xi|Y = yj )
= P (X = xi, Y = yj ) log2
i=1 j=1
P (X = xi)
n X m
X P (X = xi, Y = yj )
= P (X = xi, Y = yj ) log2 (24)
i=1 j=1
P (X = xi)P (Y = yj )
18
Ainsi, on a les relations suivantes :
I(X, Y ) = H(X) + H(Y ) − H(X, Y ) = H(X) − H(X|Y ) = H(Y ) − H(Y |X) (25)
H(X)
H(Y )
19
COURS 2
20
CODAGE DE SOURCE
• l’opération de codage de source consiste à associer à chaque message issu de la source
un mot composé d’un ou plusieurs symboles q-aire en cherchant à réduire au maximum
le nombre moyen de ces symboles.
• Un message signifiera selon le contexte, soit un symbole Q-aire issu de la source, soit
un ensemble de J symboles Q-aire.
• Nous nous restreindrons au cas où les symboles de sortie du codeur de source sont
des bits (q = 2).
21
CODAGE DE SOURCE
22
CODAGE PAR MOT DE LONGUEUR VARIABLE
exemple 1 :
message mot
a1 1
a2 00
a3 01
a4 10
exemple 2 :
message mot
a1 0
a2 10
a3 110
a4 111
a1 a2 a3
0 0 0
1 1 1
a4
23
INEGALITE DE KRAFT
C1
1 0
C2
1 0
C4 C3
Le choix d’un noeud de degré n1 comme premier mot C1 élimine 2nM −n1 noeuds.
24
La condition pour obtenir un codage instantané devient donc :
M
X
2nM −ni ≤ 2nM
i=1
en divisant les deux termes par 2nM , on obtient bien l’inégalité de Kraft :
:
XM
2−ni ≤ 1 (27)
i=1
25
THEOREME DU CODAGE DE SOURCE
• Soit une source sans mémoire d’entropie par symbole H(X). Il est possible de con-
struire un code instantané dont la longueur moyenne des mots Rmoy satisfait l’inégalité
suivante :
H(X) ≤ Rmoy < H(X) + 1 (28)
démonstration
Soit ni = ⌈− log2 pi⌉ longueur du mot associé au i-ième message.
M
X M
X M
X M
X
2−ni = 2−⌈− log2 pi⌉ ≤ 2log2 pi = pi = 1 (29)
i=1 i=1 i=1 i=1
Ainsi on a vérifié que ce code satisfait l’inégalité de Kraft.
On a alors :
M
X M
X
Rmoy = pi⌈− log2 pi⌉ < pi(− log2 pi + 1) = H(X) + 1 (30)
i=1 i=1
26
THEOREME DU CODAGE DE SOURCE
Théorème : pour toute source stationnaire d’entropie par symbole H(X), il existe un
procédé de codage de source binaire dont la longueur moyenne Rmoy des mots est aussi
voisine que l’on veut de H(X).
H(X)
H ′(X) = (35)
Rmoy
le débit binaire DB′ en sortie du codeur
• On commence par classer la liste des messages de haut en bas par ordre de probabilité
décroissante (chaque message correspond à un nœud).
• On répète cette procédure jusqu’à ce qu’il ne reste plus aucun message. L’arbre ainsi
obtenu décrit graphiquement l’ensemble du code. Les mots sont lus en parcourant chaque
chemin de la droite vers la gauche.
29
exemple 3 : soit une source discrète à 8 messages a1, a2, a3, a4, a5, a6, a7, a8 avec les
probabilités d’apparition respectives {0.16; 0.15; 0.01; 0.05; 0.26; 0.11; 0.14; 0.12} d’entropie
H(X)=2.7358.
L’arbre obtenu par codage de Huffman est le suivant :
0
0.26
0.57 0
0
0.16 0.31
1
0.15
1
0
0.14 0.26 0
0.12 0.43
1
0 1
0.11
0.17
0 1
0.05 0.06
1
0.01 1
30
La table de codage est la suivante :
message mot ni
a5 00 2
a1 010 3
a2 011 3
a7 100 3
a8 101 3
a6 110 3
a4 1110 4
a3 1111 4
31
ALGORITHME DE LEMPEL-ZIV
Cet algorithme, proposé en 1978 est indépendant des propriétés statistiques de la source.
Le principe de l’algorithme LZ78 consiste à découper la séquence de sortie de la source
en petites suites de longueurs variables.
exemple: considérons le début de séquence binaire issue d’une source :
001000001100010010000010110001000001000
01100010101000010000011000001 01100000011
On commence par déterminer la suite la plus courte que nous n’avons pas encore ren-
contrée en commencant par la gauche
0,01000001100010010000010110001000001000011
La seconde suite différente de 0 est 01
0,01,000001100010010000010110001000001000011
La troisième suite est 00
0,01,00,0001100010010000010110001000001000011
Finalement, cette séquence est décomposée en suite comme suit :
0, 01, 00, 000, 1, 10, 001, 0010, 0000, 101, 100, 010, 00001, 000011
32
L’encodage se fait au fil de l’eau. Les suites sont décrites à partir des suites précédem-
ment rencontrées
Nous obtenons la table suivante:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
0 01 00 000 1 10 001 0010 0000 101 100 010 00001 000011
00 11 10 30 01 50 31 70 40 61 60 20 91 131
La première ligne de la table correspond à l’index des suites, la seconde aux suites et
la troisième à l’encodage de ces suites.
Par exemple, la suite 0010 est encodée par 70 car elle est construite à partir de la
séquence 001 (index 7) à laquelle on ajoute 0.
L’ensemble vide est encodé par 0.
Finalement la séquence encodée en binaire devient :
0 0 , 1 1 , 01 0 , 11 0 , 000 1 , 101 0 , 011 1 , 111 0 , 0100 0 , 0110 1 , 0110 0 , 0010 0 ,
1001 1 , 1101 1
Afin de permettre le décodage, le nombre de bits utilisés pour encoder l’index est tou-
jours croisant : 2 suites dont l’index est de longueur 1, puis 2 suites dont l’index est de
longueur 2, puis 22 suites de longueur 3, 23 suites de longueur 4, ...
Le décodeur utilisera donc le même algorithme pour reconstruire la séquence initiale.
33
Le principal inconvénient de cet algorithme est que la taille du dictionnaire augmente
sans limite. Une des solutions envisagées consiste à fixer une taille maximale comme
dans l’algorithme de Lempel-Ziv-Welch.
34
ALGORITHME DE LEMPEL-ZIV-WELCH
• Algorithme indépendant des propriétés statistiques de la source
• L’algorithme de Lempel-Ziv utilise pour coder une liste de suites stockées dans un
dictionnaire.
• Principe de base : la séquence de sortie de la source est découpée en petites suites
de longueurs variables. Les suites qui sont stockées dans un dictionnaire initialement
vide sont appelées les suites prototypes.
• Une suite nouvelle est ajoutée dans le dictionnaire chaque fois qu’elle est différente
des suites prototypes déjà stockées. De plus, cette suite à laquelle on ajoute un bit 0
ou 1 ne doit pas être déjà présente dans le dictionnaire.
35
EXEMPLE
00100000110001001000001011000100000100001100010101000010000011000001
01100000011
0, 01, 00, 000, 1, 10, 001, 0010, 0000, 101, 100, 010, 00001, 000011, 0001, 0101,
000010, 0000110, 0000101, 1000, 00011
1 0 1
0
1 0
0 1
1
1
0 0
1
1
0
0
0
1
1
0
36
EXEMPLE
37
EXEMPLE
• Finalement, la séquence binaire issue d’une source est décomposée en utilisant les
suites prototypes stockées dans le dictionnaire :
0010, 0000110, 0010, 010, 0000101, 1000, 1000, 0010, 00011, 0001, 0101, 000010,
0000110, 0000101, 1000, 00011
• La sortie du codeur de source est la suivante :
1000 1111 1000 0011 1110 1010 1010 1000 1011 0111 1001 1101 1111 1110 1010
1011
• Le décodeur de source utilisant le même algorithme pourra reconstruire le dictionnaire
utilisé au codage et donc reconstituer instantanément la séquence émise par la source.
• Il est à noter que ici le codage Lempel-Ziv encode les 79 bits de la séquence de la
source en 16 mots de 4 bits soit 64 bits au total.
• En pratique, le contenu du dictionnaire est adapté dynamiquement en fonction de
l’évolution des caractéristiques de la source.
• L’algorithme Lempel-Ziv et ses variantes sont utilisés pour la compression des fichiers.
38
COURS 3
39
ECHANTILLONNAGE
40
ECHANTILLONNAGE
1.2
0.8
x(t)
0.6
0.4
0.2
−0.2
−3 −2 −1 0 1 2 3
t/T
41
QUANTIFICATION
x̃ = yi pour x ∈ Si (41)
Chaque intervalle ou cellule Si est bornée par deux seuils notés ai−1 et ai. Ainsi, la
largeur de Si est égale à ai − ai−1
L’opération de quantification introduit une erreur de quantification q = x̃ − x
42
QUANTIFICATION UNIFORME
La quantification est dite uniforme si tous les intervalles ont la même largeur notée ∆.
∆
y1 y2 y3 y4 y5 y6 y7 y8 x
a1 a2 a3 a4 a5 a6 a7
~
x
7∆
= y8
2
5∆
= y7
2
3∆ y
= 6
2
∆ y
= 5
2 ∆ = a5
2 ∆ = a6 x
− 3∆ = a1 − 2 ∆ = a2 − ∆ = a3 3∆ = a7
∆
− = y4
2
3∆
− = y3
2
5∆ y
− = 2
2
7∆
− = y1
2
43
QUANTIFICATION NON UNIFORME
La quantification est dite non uniforme si tous les intervalles n’ont la même largeur.
y1 y2 y3 y4 y5 y6 y7 y8 x
a1 a2 a3 a4 a5 a6 a7
~
x
y8
y7
y6
y5
a1 a2 a3 y4 a5 a6 a7 x
y3
y2
y1
44
ERREUR QUADRATIQUE MOYENNE
La mesure la plus commune pour évaluer la différence entre le signal quantifié et le
signal d’origine est l’erreur quadratique :
D = E(eq(x, x̃))
Z +∞
= eq(x, x̃)f (x)dx
−∞Z
X
= eq(x, yi)f (x)dx (43)
i Si
45
QUANTIFICATION VECTORIELLE
Si on associe à chaque échantillon un mot binaire, on réalise une quantification scalaire
Il est possible de grouper plusieurs échantillons ensemble avant de réaliser l’opération
de quantification de ce groupe d’échantillons. On parlera de quantification vectorielle.
46
QUANTIFICATION VECTORIELLE
Si on associe à chaque échantillon un mot binaire, on réalise une quantification scalaire
Il est possible de grouper plusieurs échantillons ensemble avant de réaliser l’opération
de quantification de ce groupe d’échantillons. On parlera de quantification vectorielle.
47
THEOREME DU CODAGE DE SOURCE AVEC PERTES
Définition :
on définit pour une source sans mémoire la fonction taux-distorsion R(D) (rate distor-
tion function en anglais) comme suit :
48
THEOREME DU CODAGE DE SOURCE AVEC PERTES
On peut montrer que l’inégalité suivante est toujours vraie :
1 σx2
R(D) ≤ log2 0 ≤ D ≤ σx2 (46)
2 D
où σx2 est la variance de la source.
En introduisant la fonction distorsion-débit D(R) la relation ci-dessus peut aussi s’écrire
:
49
EXEMPLE D’UNE SOURCE GAUSSIENNE
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
−3 −2 −1 0 1 2 3
Figure 9: Quantification uniforme et non uniforme L = 8 pour une source gaussienne de variance σx = 1
x̃ = x + q (48)
Pour la quantification uniforme, q ∈ [− ∆2 , + ∆2 ]
En considérant que l’amplitude du signal est suffisamment grande devant ∆, la densité
de probabilité de q est approximativement uniforme.
1 ∆ ∆
p(q) = − ≤q≤ (49)
∆ 2 2
Calculons l’erreur quadratique moyenne E(q 2) :
σx2
SN R = 10 log10
E(q 2)
∆2
= 10 log10 σx2 − 10 log10
12
2 A2
= 10 log10 σx − 10 log10 + 10 log10 22R
12
2 A2 ln 2
= 10 log10 σx − 10 log10 + 20R
12 ln 10
2
A
= 10 log10 σx2 − 10 log10 + 6R (51)
12
On peut noter qu’un bit supplémentaire améliore le rapport signal à bruit de 6 dB.
52
ERREUR DE QUANTIFICATION
Si on suppose que le signal est une sinusoide d’amplitude crête à crête A (soit une
amplitude crête de A/2), on a :
A2
σx2 = (52)
8
On obtient alors :
A2
SN R = 10 log10 σx2 − 10 log10 + 6R
12
3
= 10 log10 + 6R
2
= 1, 76 + 6R dB (53)
53
MODULATION PAR IMPULSION ET CODAGE
Dans la modulation MIC ou PCM ( pulse coded modulation en anglais), après échan-
tillonnage, les échantillons sont simplement quantifiés puis codés.
Quantification
Figure 10: Codeur PCM
x˜n = xn + qn (54)
où qn est l’erreur de quantification
Cette technique est bien adaptée aux sources sans mémoire.
54
MODULATION PAR IMPULSION ET CODAGE
Dans de nombreuses applications comme le traitement de la parole par exemple, les
signaux de petites amplitudes se produisent plus fréquemment que ceux de grandes am-
plitudes
Pour prendre en compte cette distribution non uniforme, plusieurs quantifications non
uniformes ont été proposées pour améliorer les performances.
Une solution classique consiste à chercher à maintenir constant le rapport signal à bruit
dans la dynamique du signal.
Pour le codage de la parole deux lois de compression (norme ITU-T G.711) sont prin-
cipalement utilisées :
loi A ( système européen)
(
Ax
1+ln A si |x| ≤ A1 A = 87, 6
y= 1+ln(A|x|) 1
(55)
(signe de x) 1+ln A si A ≤ |x| ≤ 1
loi µ (système américain)
ln(1 + µ(x))
y = (signe de x) avec µ = 255 et |x| ≤ 1 (56)
ln(1 + µ)
55
MODULATION PAR IMPULSION ET CODAGE
Pour un signal de parole standard, la loi A apporte une réduction de 24 dB du bruit de
quantification par rapport à une quantification uniforme.
1
0.8
0.6
0.4
0.2
−0.2
−0.4
−0.6
−0.8
−1
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
Figure 11: Caractéristiques de transfert d’un compresseur basé sur la loi A et la loi µ
56
MODULATION PAR IMPULSION ET CODAGE
En pratique, la quantification non uniforme peut être vue comme la concaténation d’une
table de correspondance ( look up table en anglais) appelée aussi compresseur et d’une
quanfication uniforme. Le compresseur réalise l’opération non linéaire.
En pratique, la compression peut être réalisée à partir d’une quantification uniforme sur
12 bits. On modélise la loi par 13 segments.
La table d’encodage est présentée ci-dessous :
segment mot d’entrée 12b mot de sortie 8b
13 0 1 X1 X2 X3 X4 N N N N N N 0 1 1 1 X1 X2 X3 X4
12 0 0 1 X1 X2 X3 X4 N N N N N 0 1 1 0 X1 X2 X3 X4
11 0 0 0 1 X1 X2 X3 X4 N N N N 0 1 0 1 X1 X2 X3 X4
10 0 0 0 0 1 X1 X2 X3 X4 N N N 0 1 0 0 X1 X2 X3 X4
9 0 0 0 0 0 1 X1 X2 X3 X4 N N 0 0 1 1 X1 X2 X3 X4
8 0 0 0 0 0 0 1 X1 X2 X3 X4 N 0 0 1 0 X1 X2 X3 X4
7 0 0 0 0 0 0 0 1 X1 X2 X3 X4 0 0 0 1 X1 X2 X3 X4
7 0 0 0 0 0 0 0 0 X1 X2 X3 X4 0 0 0 0 X1 X2 X3 X4
7 1 0 0 0 0 0 0 0 X1 X2 X3 X4 1 0 0 0 X1 X2 X3 X4
7 1 0 0 0 0 0 0 1 X1 X2 X3 X4 1 0 0 1 X1 X2 X3 X4
6 1 0 0 0 0 0 1 X1 X2 X3 X4 N 1 0 1 0 X1 X2 X3 X4
5 1 0 0 0 0 1 X1 X2 X3 X4 N N 1 0 1 1 X1 X2 X3 X4
4 1 0 0 0 1 X1 X2 X3 X4 N N N 1 1 0 0 X1 X2 X3 X4
3 1 0 0 1 X1 X2 X3 X4 N N N N 1 1 0 1 X1 X2 X3 X4
2 1 0 1 X1 X2 X3 X4 N N N N N 1 1 1 0 X1 X2 X3 X4
1 1 1 X1 X2 X3 X4 N N N N N N 1 1 1 1 X1 X2 X3 X4
57
CODAGE POUR SOURCES ANALOGIQUES CORRELES
Les sources analogiques (son et image) possède souvent une forte redondance qu’une
simple modulation PCM ne peut exploiter. Cette redondance est directement liée à la
corrélation entre échantillons : on parle aussi de source à mémoire.
Il existe 3 grandes familles de techniques pour exploiter cette propriété afin de réduire
le nombre de bits nécessaire pour transmettre ces échantillons :
• les techniques basées sur une forme d’onde temporelle comme la modulation Delta,
PCM, DPCM, ... souvent utilisé pour le codage de la parole.
• les techniques utilisant une décomposition spectrale comme le codage par sous-bande
et le codage par transformée (cosinus discret ou ondelettes).
• les techniques basées sur des modèles de source comme le codage linéaire prédictif
(LPC) utilisés pour le codage de la parole à très bas débit.
58
MODULATION DELTA
Lorsque la source est à mémoire, la variation de l’amplitude entre les échantillons suc-
cessifs est relativement faible. En quantifiant les différences entre les amplitudes des
échantillons successifs, il est possible de réduire le débit en sortie du codeur.
Le principe de base de la modulation Delta consiste à quantifier la différence d’amplitude
en entre l’échantillon courant xn et l’échantillon quantifié x̂n.
en = xn − x̂n (57)
La quantification est uniquement réalisée sur deux niveaux ( ẽn = ±∆).
x(t ) ~e = ±∆
Quantification
1 bit
Acc
59
MODULATION DELTA
x(t ) ~e = ±∆
Quantification
1 bit
Acc
60
MODULATION DELTA
Le démodulateur Delta est un simple accumulateur. On a :
qn = ẽn − en (60)
Il est alors possible d’exprimer l’échantillon estimé x̂n à partir de xn−1 et de l’erreur de
quantification :
61
MODULATION DELTA
x(t)
x(t)
t
62
MODULATION PAR IMPULSION ET CODAGE DIFFERENTIEL
Le principe de base de la modulation DPCM ( differential pulse coded modulation en
anglais) aussi notée modulation par impulsion et codage différentiel (MICD) consiste
à quantifier la différence d’amplitude en entre l’échantillon courant xn et l’échantillon
prédit x̂n.
en est aussi appelée l’erreur de prédiction.
en = xn − x̂n (62)
x̂n est obtenu en utilisant un prédicteur d’ordre P :
P
X
x̂n = aixn−i (63)
i=1
63
PREDICTION
x̂n
+
a1 a2 aP
x x x
Quantification
Prédiction
Prédiction
Pour le décodage, on utilise exactement le même prédicteur que pour le codage (en con-
sidérant l’absence d’erreurs de transmission). Ainsi, on peut reconstruire les échantillons
x̃n = ẽn + x̂n.
La modulation DPCM est utilisée pour le codage de la parole dans les standards ITU
G.721, G.722, G.723 et G.726.
66
COMPARAISON DES TECHNIQUES POUR LE CODAGE DE LA PAROLE
La table suivante présente une comparaison des différentes techniques de modulation
pour le codage de la parole en considérant une fréquence d’échantillonnage de 8kHz.
Les paramètres choisis sont ceux qui sont les plus couramment utilisés.
Table 1: Comparaison des modulations pour le codage de la parole
67
COURS 4
68
TRANSMISSION EN BANDE DE BASE
g (t )
+A
T t
,
$
+
#
!
"
'
&
−
(
Soit γXX (f ) la densité spectrale d’un signal x(t) émis en bande de base.
Formule de Bennett :
1
γXX (f ) = |G(f )|2γAA(f ) (67)
T
où |G(f )|2 est la densité spectrale de puissance de l’impulsion g(t) et γAA(f ) est la
transformée de Fourier de la fonction d’autocorrélation γaa(i) = E(a∗k ak+i).
+∞
X
γAA(f ) = γaa (i)e−j2πf iT (68)
i=−∞
71
DENSITE SPECTRALE DU CODE NRZ
Puisque g(t) est une impulsion de largeur T et d’amplitude A, on a :
" #+T /2
+∞
Ae−j2πf t AT sin πf T
Z
−j2πf t
G(f ) = e g(t)dt = = (69)
−∞ −j2πf t πf T
−T /2
2
sin(πf T )
|G(f )|2 = A2T 2 (70)
πf T
Dans le cas du code NRZ, les symboles ak sont indépendants et peuvent prendre les
valeurs +1 et -1. Leur moyenne E(ak ) est nulle et leur variance E((ak )2) est égale à 1.
la fonction d’autocorrélation γaa (i) est égale à
(
1 si i = 0
γaa (i) = (71)
0 sinon
En conséquence, on a γAA(f ) = 1
Finalement, on obtient donc la densité spectrale de puissance suivante :
2
sin(πf T )
γXX (f ) = A2T (72)
πf T
72
DENSITE SPECTRALE DU CODE NRZ
2
sin(πf T )
γXX (f ) = A2T (73)
πf T
1
NRZ
0.9
0.8
0.7
0.6
(f)
0.5
XX
φ
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2 2.5 3
fréquence normalisée fT
73
CODE RETOUR A ZERO (RZ) UNIPOLAIRE
• Ce code associe à chaque bit égal à "1" un niveau +A pendant une durée T /2 puis un
niveau O pendant T /2. A chaque bit égal à "0" est associé un niveau 0.
• Ce code est aussi appelé code RZ 1/2.
/
0
/
+
-
1
74
CODE RETOUR A ZERO (RZ) BIPOLAIRE SIMPLE
• Ce code associe à chaque bit égal à "1" un niveau +A pendant une durée T /2 puis
un niveau O pendant T /2. A chaque bit égal à "0" est associé un niveau -A pendant une
durée T /2 puis un niveau O pendant T /2.
>
9
:
9
+
7
;
<
• synchronisation facile
75
DSP DU CODE RZ BIPOLAIRE SIMPLE
2
2
AT sin(πf T /2)
γXX (f ) = (74)
4 πf T /2
0.25
RZ bipolaire
0.2
0.15
φXX(f)
0.1
0.05
0
0 0.5 1 1.5 2 2.5 3
frequence normalisée fT
76
CODE BIPHASE OU MANCHESTER
• Ce code associe à chaque bit égal à "1" un niveau +A pendant une durée T /2 puis un
niveau -A pendant T /2. A chaque bit égal à "0" on associe un niveau -A pendant T /2
puis un niveau +A pendant T /2 .
C
+
A
I
77
DSP DU CODE BIPHASE
(sin(πf T /2))4
2
γXX (f ) = A T (75)
(πf T /2)2
0.7
biphase
0.6
φ (f)
XX 0.5
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2 2.5 3
fréquence normalisée fT
L
+
J
O
N
N
79
CODE DE MILLER
• Ce code associe à chaque bit égal à "1" soit un niveau +A pendant T /2 puis un niveau
0 soit un niveau 0 pendant T /2 puis un niveau 0. A chaque bit égal à "0" on associe soit
un niveau -A et un niveau +A. La polarité du signal associé à un bit égal à "1" est choisie
de façon à garantir une continuité avec l’impulsion précédente. La polarité du signal
associé à un bit égal à "0" est choisie de façon à garantir une continuité avec l’impulsion
précédente si celle ci portait un bit égal à "1".
x (t )
1 0 0 1 0 1 1
+A
T t
s2 s4 s1 s2 s4 s3 s2
S1 S2 S 4 S1 S 2 S4 S3 S 2
80
DENSITE SPECTRALE DU CODE BIPOLAIRE ET MILLER
2.5
code bipolaire
code de Miller
1.5
φXX(f)
1
0.5
0
0 0.5 1 1.5 2 2.5 3
fréquence normalisée fT
81
CODE NRZ M-AIRE
Y
X
X
X
+
W
+
T
V
Z
U
−
[
−
`
82
DENSITE SPECTRALE DU CODE NRZ M-AIRE
2
2
AT sin(πf T )
γXX (f ) = (M 2 − 1) (76)
3 πf T
Densité spectrale des codes NRZ et NRZ-4 aire :
5
code NRZ
code NRZ 4−aire
4.5
3.5
3
φXX(f)
2.5
1.5
0.5
0
0 0.5 1 1.5 2 2.5 3
fréquence normalisée fT
b
83
COURS 5
Filtrage adapté
84
CANAL DE TRANSMISSION
• Le signal émis x(t) est modifié par le canal de transmission qui est en général mod-
élisé par un filtre linéaire de réponse impulsionnelle c(t). De plus, le canal ajoute un bruit
blanc gaussien b(t).
Canal de transmission
a
m
a
l
j
f
e
• Le signal reçu r(t) est égal à :
85
CANAL A BRUIT BLANC ADDITIF GAUSSIEN
• Le canal à bruit blanc additif gaussien (BBAG) est un canal de transmission dont la
réponse en fréquence C(f ) est égale à 1 sur toute la bande du signal émis :
r
v
u
r
• Il permet de modéliser les canaux dont le bruit prédominant est un bruit thermique
• On a la relation suivante entre l’entrée et la sortie du canal BBAG :
86
CANAL A BRUIT BLANC ADDITIF GAUSSIEN
• b(t) est un bruit blanc centré gaussien de densité spectrale de puissance bilatérale :
N0
γF (f ) =
2
• Sa fonction d’autocorrélation γt(τ ) est égale à
Z +∞
N0
γt(τ ) = γF (f ) exp(2jπf τ )df = δ(τ )
−∞ 2
γ (f) γ (τ )
z
w
}
⇔
|
y
{
x
τ
87
CANAL A BRUIT BLANC ADDITIF GAUSSIEN
• b(t) est modélisé par un processus aléatoire gaussien centré dont la densité de proba-
bilité est la suivante :
2
1 b
p(b) = √ exp − 2 (78)
2πσ 2 2σ
N0
avec σ 2 = 2
πσ σ
~
aire de la surface
grisée=1
erf(a)
erfc(a)
a
88
CHAINE DE COMMUNICATION
CANAL DE
TRANSMISSION
DECODAGE DECODAGE
DESTINATAIRE DETECTEUR DEMODULATEUR
DE SOURCE DE CANAL
• Le role du détecteur est de décider en faveur des symboles les plus probablement
émis.
89
STRUCTURE DU MODULATEUR 1
• On suppose que le codeur de canal délivre des bits groupés par bloc de g bits. On a
donc M = 2g messages différents possibles c ∈ {c1, c2, . . . , cM }.
• le modulateur associe à chaque message c = ci un signal xi(t), défini sur l’intervalle
fini 0 ≤ t ≤ T et choisi parmi un jeu de M = q g signaux d’énergie égale à Es
x1
x1( t )
x2
x (t)
1
x2 ( t )
∑
xM
c
x M (t)
90
exemple : cas du code en ligne non retour à zéro (NRZ) composé de M = 2 signaux
élémentaires x1(t) et x2(t).
x1 (t ) x 2 (t )
ES T
T t
ES
T t T
(
x1(t) si c = 0 (x1 = 1, x2 = 0)
x(t) =
x2(t) si c = 1 (x1 = 0, x2 = 1)
91
STRUCTURE DU MODULATEUR 2
• Il est également possible de représenter les M signaux possibles xi(t) par des combi-
naisons linéaires de N ≤ M fonctions de base orthonormées fi(t) et d’énergie unitaire.
Les signaux xi(t) peuvent s’exprimer par :
N
X
xi(t) = xnfn(t) (80)
n=1
où
Z T
xn = xi(t)fn(t)dt (81)
0
et où les fonctions de base f1(t), f2(t), . . . , fN (t) sont orthonormées:
Z T (
1 si i = j
fi(t)fj (t)dt = δij = (82)
0 0 si i 6= j
Ainsi l’énergie des fonctions de base entre 0 et T est égale à 1.
L’énergie de chaque signal xi(t) entre 0 et T est égale à Es
92
Z T N
X
Es = xi(t)2dt = x2i (83)
0 i=1
xi1
f1 (t )
xi 2
c x (t ) = xi (t )
Encodeur
f 2 (t )
∑
xiN
f N (t )
93
exemple 1(suite) : cas du code en ligne NRZ M = 2 signaux
Une seule fonction f1(t) suffit pour générer les deux signaux x1(t) et x2(t).
f1 ( t )
1
T
T t
( √ √
− Esf1(t) si c = 0 (x1 = − Es)
x(t) = √ √
+ Esf1(t) si c = 1 (x1 = + Es)
94
0→ − E x1 x (t)
c S
1→+ E
S
f1 (t )
c 0→ − E S x1 x (t)
g(t )
1 → + ES
95
RECEPTEUR OPTIMAL POUR CANAL BBAG
• On considére qu’un des M signaux possibles xi(t) a été transmis sur un canal à bruit
blanc additif gaussien (BBAG) pendant la durée T .
En entrée du récepteur, on a
96
CORRELATEUR 1
• Une première structure de démodulateur consiste à projetter le signal reçu r(t) sur
chacun des M signaux xi(t) possibles.
T
y (t ) y
∫ ( )dt
T
y
∫ ( )dt
décision
y (t ) y
∫ ( )dt
97
CORRELATEUR 2
• Une autre solution consiste à projetter le signal reçu sur les N fonctions de base fi(t).
T
y (t ) y
§
∫ ( )dt
¨
f (t ) T
y
§
∫ ( )dt
¡
¦
r (t )
¦
¨
f (t )
¦
©
§
∫(
¡
)dt
¥
¨
¤
¡
¥
• Comme les fonctions de base fj (t) sont d’énergie unitaire entre 0 et T on a relation
suivante :
98
yj = yj (T )
Z T
= r(t)fj (t)dt
Z0 T Z T
= xi(t)fj (t)dt + b(t)fj (t)dt
0 0
= xi + n j
avec yj la sortie du ième échantillonneur à l’instant T et 1 ≤ j ≤ N .
• Le signal reçu r(t) est maintenant représenté par un vecteur à N composantes yj
• Les échantillons de bruit nj sont des variables aléatoires relatives au bruit additif du
canal de transmission. On peut montrer qu’ils sont centrés et de variance σ 2 = N20 .
• Il nous restera à décider en faveur du signal le plus probablement émis.
99
exemple 1(suite) :
T T
r (t ) y1 (t ) y1
∫ ( )dt
0
f1 (t )
y = y1(T )
Z T
= y(t)f1(t)dt
Z0 T Z T
= xi(t)f1(t)dt + n(t)f1(t)dt
0 0
= xi + n
100
• Le rapport signal à bruit SN R après échantillonnage est donc
2
P x E xi x2i
SN R = = = 2
Pn σn2 σn
N0
• Comme x2i = Es, et σn2 = 2 , on a
2Es
SN R =
N0
• Signaux en sortie du modulateur, du canal et du corrélateur :
2
1
x(t)
0
−1
−2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
2
1
r(t)
0
−1
−2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
2
1
y1(t)
0
−1
−2
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
temps
101
FILTRE ADAPTE
• On peut remplacer les corrélateurs par des filtres adaptés dont la réponse impulsion-
nelle est hj (t). La relation entre hj (t) et les fonctions de base fj (t) est la suivante :
«
³
¯
«
T
y
¯
¬
r (t )
¬
³
¯
¬
y
®
²
³
¯
• On peut démontrer que l’utilisation de filtres adaptés permet de maximiser le rapport
signal à bruit et par conséquence de minimiser le taux d’erreurs.
• Le rapport signal à bruit en sortie d’un filtre adapté ne dépend pas de la forme du
signal mais de son énergie !
103
exemple 1(suite) :
• Pour le cas du code en ligne NRZ, la réponse impulsionnelle h1(t) du filtre adapté est
la suivante :
h(t) = g(T − t)
où g(t) est la réponse impulsionnelle du filtre d’émission.
r (t ) T y1
y1 (t )
g (T − t )
104
COURS 6
105
DETECTION OPTIMAL
• L’objectif du détecteur optimal est de déterminer le message qui a été le plus vraisem-
blablement émis x̂.
• Soit le message x envoyé dans un canal discret stationnaire sans mémoire de densité
de probabilité conditionnelle p(y/x) et y le vecteur reçu après filtrage adapté.
• D’une manière générale, un détecteur maximum a posteriori (MAP) cherche parmi
tous les messages possibles x, le message estimé x̂ pour lequel la probabilité condition-
nelle P r(x|y) est la plus grande.
107
CALCUL DU TAUX D’ERREURS BINAIRES POUR UN CODE NRZ SUR CANAL BBAG
− +
¹
¹
¸
108
√ √
• Le seuil de décision est donc placé exactement entre + ES et − ES : s = 0 (cas
P r(xi = +1) = P r(xi = −1) = 1/2.
• La probabilité que l’amplitude de l’échantillon reçu y soit inférieure au seuil de déci-
sion s = 0 sachant que c = 1 ( et donc xi = +1) est égale à :
Z 0 √ 2
1 (y − ES )
p(y < 0|xi = +1) = √ exp − 2
dy (91)
2
2πσ −∞ 2σ
• La probabilité que l’amplitude de l’échantillon y soit supérieure au seuil de décision
sachant que c = 0 ( et donc xi = −1) est égale à :
Z +∞ √ 2
1 (y + ES )
p(y > 0|xi = −1) = √ exp − 2
dy (92)
2πσ 02 2σ
• Le taux d’erreurs bit (TEB) est alors :
1 1
T EB = p(y < 0|xi = +1) + p(y > 0|xi = −1)
2 Z +∞ 2 √ 2
1 (y + ES )
=√ exp − 2
dy (93)
2
2πσ 0 2σ
109
√
y+
√ ES , √dy .
• Faisons un changement de variable z = 2σ
dz = 2σ
On obtient alors :
+∞
√
(y + ES )2
1
Z
T EB = √ exp − dy
2πσ 2 2σ 2
Z +∞0
1
= √ √ √ exp(−z 2)dz
π ES / 2σ
r
1 ES
= erfc
2 N0
110
• La courbe T EB = f (Eb/N0) pour un code NRZ sur canal BBAG est la suivante :
−1
10
−2
10
−3
10
TEB
−4
10
−5
10
−6
10
1 2 3 4 5 6 7 8 9 10
EB/NO (dB)
111
PROBABILITE D’ERREURS PAR PAIRE
• Soient deux mots xi et xj dont la distance euclidienne est d(xi, xj ). Pour un canal
BBAG, la probabilité P r(xj |xi) que y soit plus près de xj que de xi est donnée par :
!
1 d(xi, xj )
P r(xj |xi) = erfc √ (95)
2 2 N0
• Dans√le cas du code NRZ, le mot xi est l’échantillon xi. La distance euclidienne est
égale à 2 Eb et on retrouve bien l’expression du TEB précédente.
112
CALCUL DU TES POUR UN CODE NRZ M-AIRE SUR CANAL BBAG
¾
=4
Â
»
=8
¿
Â
»
½
»
½
»
L’amplitude des symboles est alors :
Am = (2m − 1 − M )d avec m = 1, 2, . . . , M
L’énergie moyenne par symbole est égale à :
M
1 X
Es = (Am)2
M m=1
2
2 M −1
=d
3
113
• Calculons une approximation du TES en ne tenant compte que des cas où l’erreur
symbole provient d’une décision en faveur du symbole adjacent.
• On a 2(M − 1) paires de points adjacents et la distance euclidienne entre ces points
est égale à 2d.
! r !
M −1 2d M −1 3log2M Eb
T ES = erf c √ = erf c
M 2 N0 M M 2 − 1 N0
0
10
NRZ4
NRZ
−1
10
−2
10
TES
−3
10
−4
10
−5
10
0 2 4 6 8 10 12 14
E /N
B 0
114
COURS 7
Critère de Nyquist
115
CRITERE DE NYQUIST
• Si la bande du signal émis est limitée, la forme de l’impulsion élémentaire g(t) est de
durée infinie
• Comment choisir g(t) pour pouvoir reconstituer parfaitement à la réception les échan-
tillons émis à la cadence symbole de 1/T ?
• Le signal après filtrage adapté s’écrit :
116
CRITERE DE NYQUIST
+∞
X
y(kT ) = ak + aip((k − i)T ) + n(kT ) (97)
k6=i
• Cette expression est composée de 3 termes :
→ Le premier terme est le k ieme symbole transmis
→ Le second terme est la contribution de tous les autres symboles transmis
sur l’échantillon y(kT ). Ce terme est appelé l’interférence intersymbole.
→ Le troisième terme est la contribution du bruit
• Comme le second et le troisième terme diminuent les performances du système de
transmission, nous devrons choisir les filtres d’émission et de réception afin de les min-
imiser.
117
CRITERE DE NYQUIST
118
CRITERE DE NYQUIST
cas 1 > B
+∞
∑ P( f + i / T )
i = −∞
2T
f
B 1/ T
1
T cas =B
2T
B = 1 / 2T 1/ T
1
T cas <B
2T
B 1/ T
- Si 2T1 > B, alors il n’existe pas de filtre G(f ) et H(f ) satisfaisant au critère de Nyquist
- Si 2T1 = B, il existe une solution possible : le filtre passe-bas parfait de fréquence de
coupure B
119
(
1
T si |f | < B = 2T sin(πt/T )
P (f ) = p(t) =
0 sinon πt/T
0.8
0.6
p(t)
0.4
0.2
−0.2
−4 −3 −2 −1 0 1 2 3 4
t/T
- Si 2T1 < B, alors il existe une famille de filtre G(f ) et H(f ) tel que P (f ) = G(f )C(f )H(f )
répond au critère de Nyquist. Les filtres appartenant à cette famille doivent satisfaire la
condition suivante :
1
P (f ) + P f − =T (100)
120
T
FILTRE EN COSINUS SURELEVE
• Fonction de transfert satisfait au critère
1−α
T si 0 ≤ |f | ≤ 2T
π 1−α 1+α
P (f ) = T cos2 4α (2f T − (1 − α)) si 2T < |f | < 2T (101)
1+α
0 si |f | ≥ 2T
α est le facteur d’arrondi (roll-off en anglais) et est compris entre 0 et 1 (en pratique
cette valeur est choisie entre 0.22 et 0.35.
121
1
0.8
P(f)
0.6
0.4
0.2
α=1
α=0,35
0
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
fT
122
√
1−α
T si 0 ≤ |f | ≤ 2T
√
π 1−α 1+α
G(f ) = H(f ) = T cos 4α (2f T − (1 − α)) si 2T < |f | < 2T
1+α
0 si |f | ≥ 2T
(102)
123
DIAGRAMME DE L’OEIL
1.5
1
0.5
amplitude
0.5
amplitude
0 0
−0.5
−0.5
−1
−1
−1.5
−1.5 −2
−0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5 −0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5
temps temps
124
COURS 8
125
CANAL BINAIRE SYMETRIQUE
1−p
0 0
Y
X
p
1 1
1−p
P (Y = 0|X = 1) = P (Y = 1|X = 0) = p
P (Y = 0|X = 0) = P (Y = 1|X = 1) = 1 − p (103)
126
• Le canal binaire symétrique est sans mémoire :
Soit x et y respectivement les séquences d’entrée et de sortie composées de n bits du
canal : x = [x1, x2, . . . , xn], et y = [y1, y2, . . . , yn ].
La relation suivante justifie l’absence de mémoire dans le canal :
n
Y
P (Y1 = y1, . . . , Yn = yn|X1 = x1, . . . , Xn = xn) = P (Y = yi|X = xi)
i=1
127
CANAL DISCRET SANS MEMOIRE
x2 y2
X Y
xi
yj
xM
pMN yN
128
CANAL A EFFACEMENT
1−p
0 0
p
Y
X
ǫ
1 1
1−p
P (Y = ǫ|X = 1) = P (Y = ǫ|X = 0) = p
P (Y = 0|X = 0) = P (Y = 1|X = 1) = 1 − p (104)
129
CANAL ADDITIF A BRUIT BLANC GAUSSIEN
− +
È
È
Ç
r +∞
1 EB 2
Z
T EB = erfc avec erfc(a) = √ exp(−z 2)dz
2 N0 π a
130
• La courbe T EB = f (Eb/N0) associée :
−1
10
−2
10
−3
10
TEB
−4
10
−5
10
−6
10
1 2 3 4 5 6 7 8 9 10
EB/NO (dB)
131
CAPACITE D’UN CANAL DE TRANSMISSION
• C s’exprime en Shannon/symbole
• C ′ capacité par unité de temps C ′ = C × Ds
• En absence de bruit C = HMAX (X) = log2 Q
• En présence de bruit C < HMAX (X)
132
Lorsque
PSfrag le canal est sans bruit, on a H(X|Y ) = 0 et C = HMAX (X).
H(X) I(X, Y ) H(X, Y )
+
H(X)
- H(X|Y ) = 0 H(Y )
I(X, Y )
- H(X)
H(X|Y ) = H(X)
H(Y )
133
PRINCIPE DU CODAGE DE CANAL
• Si H(X|Y ) est non négligeable (cas du canal bruyant), il ne sera pas possible d’effectuer
une communication sans erreur en reliant directement la source au canal de transmis-
sion.
• Solution : Il faut placer un élément appelé codeur de canal entre la source et le canal
de transmission.
U X Y V
135
CAPACITE D’UN CANAL BSC
Pour q = 1/2:
I(X,Y) 1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
probabilité p
136
CAPACITE D’UN CANAL BBAG
y =x+n (110)
D(σ x + σ n )
2 2
138
On obtient l’inégalité suivante :
p
V ( D(σx2 + σn2 ), D)
M≤ p
V ( D.σn2 , D)
(D(σx2 + σn2 ))D/2
≤
(D.σn2 )D/2
!D/2
2 2
σx + σn
≤ (114)
σn2
1
H(U ) = log2 M ≤ C (115)
D
Finalement on a :
!
1 σx2
C = log2 1 + (116)
2 σn2
139
Pour une bande passante B, la dimension D est égale à D = 2BT (T durée de la
transmission). La puissance du bruit est égale à N = 2Bσn2 et la puissance moyenne du
signal X est égale à P = 2Bσx2 .
!
1 P
C = log2 1 + Sh/dim (117)
2 N
!
P
C ′ = B log2 1 + Sh/s (118)
N
140
CAPACITE D’UN CANAL BBAG
Capacité=f(SNR)
6
Capacité (Sh/symb)
3
0
−10 0 10 20 30 40
SNR (dB)
141
EFFICACITE SPECTRALE
142
EFFICACITE SPECTRALE (suite)
Eb 2ηmax − 1
= (123)
N0 ηmax
Eb Eb
lim = ln 2 soit = −1.59 dB (124)
ηmax →0 N0 N0 dB
ité
borne 256QAM
ac
ap
e c
e d
borne 128QAM
b
ur
co
( bits/sec/Hz )
borne 64QAM
borne 32QAM
efficacité η
borne 16QAM
borne 8PSK
borne QPSK
borne BPSK
E /N (dB)
Ê
143
BORNE PAR EMPILEMENT DE SPHERE
−1 −1
10 10
K=96 K=96
K=192 K=192
K=320 K=320
K=500 K=500
K=1000 K=1000
−2 −2
10 10
−3 −3
10 10
TES
TES
−4 −4
10 10
−5 −5
10 10
−6 −6
10 10
−0.5 0 0.5 1 1.5 2 2.5 0 0.5 1 1.5 2 2.5 3
E /N E /N
B 0 B 0
144
COURS 9
145
CODAGE DE CANAL
• L’objectif du codage de canal est de protéger les données issues du codage de source
contre les erreurs de transmission.
• Ces erreurs peuvent être aléatoires ou se produire par paquet
• Au lieu d’utiliser un codage aléatoire, nous utiliserons des codes possédant une struc-
ture algébrique comme par exemple la linéarité et rendant ainsi les opérations de codage
et de décodage plus simples à effectuer.
On distingue trois grandes familles de codes correcteurs d’erreurs
147
Les corps de Galois
Un corps de Galois GF (q) est un corps fini possédant q éléments. q est soit un nombre
premier ou soit de la forme q = pm avec p nombre premier.
exemple 1 : GF (2)
+ 0 1 * 0 1
0 0 1 0 0 0
1 1 0 1 0 1
exemple 2 : GF (5)
+ 0 1 2 3 4 * 0 1 2 3 4
0 0 1 2 3 4 0 0 0 0 0 0
1 1 2 3 4 0 1 0 1 2 3 4
2 2 3 4 0 1 2 0 2 4 1 3
3 3 4 0 1 2 3 0 3 1 4 2
4 4 0 1 2 3 4 0 4 3 2 1
148
CODES EN BLOC LINEAIRES
Soit u = [u1, u2, . . . , uK ] un mot d’information composé de K bits d’information
Soit x = [x1, x2, . . . , xN ] le mot de code associé composé de N bits.
On a la relation matricielle suivante entre u et x:
x = uG (125)
G est la matrice génératrice du codeur de dimension K × N .
g1 g11 g12 . . . g1N
g2 g21 g22 . . . g2N
G= . = .
. . . . .
.. .
(126)
.
gK gK1 gK2 . . . gKN
Chaque mot de code est une combinaison linéaire des vecteurs gi de G. Ainsi donc,
un code en bloc linéaire peut être défini comme un sous espace vectoriel à K < N
dimensions construit suivant (126).
149
Il est toujours possible en combinant les lignes entre elles de mettre la matrice généra-
trice G sous la forme systématique suivante :
1 0 0 . . . 0 p11 p12 . . . p1N −K
0 1 0 . . . 0 p21 p22 . . . p2N −K
G = [IK P] = . . . .
. . . .. . . . . . . .. . (127)
. .
0 0 0 . . . 1 pK1 pK2 . . . pKN −K
150
PROPRIETES ET DEFINITIONS
151
• distance minimale : La distance minimale dmin du code C est le nombre de bits
qui différent entre les deux mots de code les plus proches au sens de la distance de
Hamming :
dmin = min dH (xi, xj ) (129)
i,j,i6=j
Lorsque le code est linéaire, la distance minimale dmin est égale au poids de Hamming
minimal du code C (en excluant le mot de code nul):
dmin = min w(xi) (130)
i,i6=0
152
PROPRIETES (SUITE)
• Capacité de correction d’erreurs d’un code linéaire binaire en bloc
Un décodeur à entrées dures peut corriger jusqu’à e erreurs avec :
dmin − 1
e= (131)
2
dmin
dmin
154
LES CODES LINEAIRES EN BLOC PARFAITS
• codes parfaits :
les codes parfaits possèdent la propriété que tous les 2N mots possibles sont inclus dans
les 2K boules de Hamming de rayon e. L’inégalité ci-dessus se transforme en égalité.
• Codes de Hamming
Les codes de Hamming sont des codes en bloc linéaires parfaits binaires (N, K) avec
N = 2J − 1 et K = 2J − 1 − J.
Par exemple pour J = 3, le code de Hamming est un code (7,4).
1 0 1 1 0 0 0
0 1 0 1 1 0 0
G= 0 0 1 0 1 1 0
(134)
0 0 0 1 0 1 1
155
• Code de Golay
C’est un code (23,12) dont la distance minimale est égale à 7.
1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0
0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1
0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0
0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0
0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1
0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0
G= 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0
(135)
0 1 1 0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1
0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1
0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1
0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1
156
MATRICE DE CONTROLE
Associé à chaque code C linéaire en bloc binaire (N, K) il existe un code linéaire en
bloc binaire dual (N, N − K)
Soit H la matrice génératrice de ce code dual. Chacun des mots de code x du code C
est orthogonal à tous les mots de code du code dual :
xHT = 0
Puisque cette relation est valide pour tous les mots de code du code C, on a
GHT = 0
Si la matrice génératrice G est systématique H est de la forme :
p11 p21 . . . pK1 1 0 0 ... 0
T
p12 p22 . . . pK2 0 1 0 ... 0
H = [P IN −K ] =
.. .. ... .. .. .. .. ... ..
p1N −K p2N −K . . . pKN −K 0 0 0 ... 1
157
exemple 3 (suite) : la matrice de contrôle du code C3 (7, 4) est la suivante :
1 1 1 0 1 0 0
H = 0 1 1 1 0 1 0
1 1 0 1 0 0 1
Chaque ligne de la matrice de parité correspond à une équation de parité
u1 + u2 + u3 + x 5 = 0
nœud T1
u2 + u3 + u4 + x 6 = 0 nœud T2 (136)
u1 + u2 + u4 + x 7 = 0 nœud T3
158
COURS 10
159
DECODAGE A ENTREES DURES DES CODES
EN BLOC LINEAIRES BINAIRES
s = rHT
= xHT + eHT
= eHT car xHT = 0 (137)
En l’absence d’erreurs de transmission, le syndrome d’erreurs s est le vecteur nul.
160
METHODE DU TABLEAU STANDARD
• 2N −K syndromes d’erreurs
• un même syndrome d’erreurs pour 2N /2N −K = 2K vecteurs d’erreurs possibles
x0 x1 x2 ... x2K −1 s0
x0 + e 1 x1 + e1 x2 + e1 ... x2K −1 + e1 s1
x0 + e 2 x1 + e2 x2 + e2 ... x2K −1 + e2 s2
.. .. .. ... .. ..
. . . . .
x0 + e2N −K −1 x1 + e2N −K −1 x2 + e2N −K −1 ... x2K −1 + e2N −K −1 s2N −K −1
x̂ = r + ê (138)
• Cette méthode est moins complexe que la méthode du tableau standard
• exemple :la table pour le décodage d’un code de Golay étendu (24,12) nécessite une
mémoire de 4096 mots de 23 bits.
162
FONCTION D’ENUMERATION DE POIDS
Définition 1 : la fonction d’énumération de poids WEF ( weight enumerator function
en anglais) d’un codeur binaire en bloc systématique (N, K) est définie comme suit :
N
X
A(D) = AdDd (139)
d=0
Ad est le nombre de mots de code de longueur N de poids d.
Définition 2 : la fonction d’énumération de poids IRWEF (input redundancy weight
enumerator function en anglais) d’un codeur binaire en bloc systématique (N, K) est
définie comme suit :
XK NX−K
A(W, Z) = Aw,z W w Z z (140)
w=0 z=0
Aw,z est le nombre de mots de code de longueur N dont le poids de la séquence des bits
d’information est égal à w et dont le poids de la séquence des bits de redondance est égal
à z.
163
BORNE PAR REUNION
• La borne par réunion est un outil très utile pour évaluer les performances des systèmes
de transmission.
Considérons un décodeur à maximum de vraisemblance :
Λ1
x4 x2
Λ 13
x1 x3 x1 x1
Λ 21 Λ 31 Λ 41
Λ12
x2
Λ 14
164
P r(erreur mot|x1) = P r(y ∈ Λ̄1|x1)
= P r(y ∈ (Λ2 ∪ Λ3 ∪ Λ4)|x1)
≤ P r(y ∈ Λ12|x1) + P r(y ∈ Λ13|x1) + P r(y ∈ Λ14|x1)
= P r(x2|x1) + P r(x3|x1) + P r(x4|x1)
La probabilité d’erreurs mot est égale à
X
P r(erreur mot) = P r(xi)P r(erreur mot|xi)
i
165
BORNE PAR REUNION
La probabilité de décoder un mauvais mot de code sachant un mot de code xi transmis
est bornée supérieurement comme suit :
166
Si la distance de Hamming
√ entre deux mots de code xi et xj est égale à d, leur distance
euclidienne est égale à 2 dREb où R = K N est le rendement du code.
On a alors : r !
1 Eb
P r(xj |xi) = erfc dR (143)
2 N0
En utilisant la borne par réunion, on obtient la borne supérieure suivante sur le taux
d’erreurs mot (TEM) et le taux d’erreurs bit (TEB) du décodeur à maximum de vraisem-
blance sur un canal BBAG associé à un code en bloc linéaire (N, K) :
N r !
1 X Eb
T EM ≤ Aderfc dR
2 N0
d=dlibre
−3
10
TEM
−4
10
Gain de codage
−5
10 = 3,8 dB
−6
10
−7
10
0 1 2 3 4 5 6 7 8 9 10 11
Eb/N0 (dB)
168
FONCTION D’ENUMERATION DE POIDS
Définition 1 : la fonction d’énumération de poids WEF ( weight enumerator function
en anglais) d’un codeur binaire en bloc systématique (N, K) est définie comme suit :
N
X
A(D) = AdDd (145)
d=0
Ad est le nombre de mots de code de longueur N de poids d.
Définition 2 : la fonction d’énumération de poids IRWEF (input redundancy weight
enumerator function en anglais) d’un codeur binaire en bloc systématique (N, K) est
définie comme suit :
XK NX−K
A(W, Z) = Aw,z W w Z z (146)
w=0 z=0
Aw,z est le nombre de mots de code de longueur N dont le poids de la séquence des bits
d’information est égal à w et dont le poids de la séquence des bits de redondance est égal
à z.
169
COURS 11
170
DETECTION OPTIMAL
• L’objectif du détecteur optimal est de déterminer le message qui a été le plus vraisem-
blablement émis x̂.
• Soit le message x envoyé dans un canal discret stationnaire sans mémoire de densité
de probabilité conditionnelle p(y/x) et y le vecteur reçu après filtrage adapté.
• D’une manière générale, un détecteur maximum a posteriori (MAP) cherche parmi
tous les messages possibles x, le message estimé x̂ pour lequel la probabilité condition-
nelle P r(x|y) est la plus grande.
172
cas du canal BSC
dH (y,x)
dH (y,x) N −dH (y,x) N p
p(y|x) = p (1 − p) = (1 − p) (150)
1−p
où dH (y, x) est la distance de Hamming entre la séquence reçue y et la séquence x.
p
Comme p est compris entre 0 et 0.5, on a 0 < 1−p < 1.
Ainsi maximiser p(y|x) revient à minimiser la distance de Hamming entre y et x.
cas du canal BBAG
Après filtrage adapté et échantillonnage, on a :
y =x+n (151)
√
avec xi = ± REb (modulation bipodale) et ni échantillon gaussien centré de variance
σ 2 = N20 .
(yi − xi)2
1
p(yi|xi) = √ exp − 2
(152)
2πσ 2 2σ
173
x̂ = arg max p(y|x)
x
= arg max log p(y|x)
x
Y
= arg max log p(yi|xi)
x
N
X −1
= arg max log p(yi|xi)
x
i=0
N −1 2
X (yi − xi)
= arg max −
x
i=0
2σ 2
N
X −1
= arg min (yi − xi)2 (153)
x
i=0
• Une seconde version du décodeur à maximum de vraisemblance est obtenue en ap-
proximant les calculs :
N
X −1
x̂ = arg min |yi − xi| (154)
x
i=0
174
TAUX D’ERREURS POUR UN CODE NRZ SUR CANAL BBAG
PROBABILITE D’ERREURS PAR PAIRE
• Soient deux mots xi et xj dont la distance euclidienne est d(xi, xj ). Pour un canal
BBAG, la probabilité P r(xi → xj ) que y soit plus près de xj que de xi est donnée par :
!
1 d(xi, xj )
P r(xi → xj ) = erfc √ (155)
2 2 N0
• Dans√le cas du code NRZ, le mot xi est l’échantillon xi. La distance euclidienne est
égale à 2 Eb.
175
La probabilité d’erreurs mot est égale à
X
P r(erreur mot) = P r(xi)P r(erreur mot|xi)
i
176
√ entre deux mots de code xi et xj est égale à d, leur distance
Si la distance de Hamming
euclidienne est égale à 2 dREb où R est le rendement du code.
On a alors : r !
1 Eb
P r(xi → xj ) = erfc dR (157)
2 N0
En utilisant la borne par réunion, on obtient la borne supérieure suivante sur le taux
d’erreurs mot (TEM) et le taux d’erreurs bit (TEB) du décodeur à maximum de vraisem-
blance sur un canal BBAG associé à un code en bloc linéaire (N, K) :
N r !
1 X Eb
T EM ≤ Aderfc dR
2 N0
d=dlibre
177
GAIN DE CODAGE
• Sur un canal BBAG, il est théoriquement possible de réaliser une transmission sans
erreur à un rapport Eb/N0 = 0dB en utilisant un code de rendement 1/2.
• La différence entre une chaine de transmission utilisant une modulation bipodale sans
codage et cette limite de capacité est de 9.6 dB pour un taux d’erreurs bit de 10−5)
• On définit le gain de codage d’un code correcteur d’erreurs comme étant la différence
de rapport EB /N0 entre la chaine sans codage et la chaine utilisant ce code.
−1
10
sans codage
code de parité (3,2)
code de Hamming (7,4)
code de Golay (23,12)
−2
10
−3
10
TEM
−4
10
Gain de codage
−5
10 = 3,8 dB
−6
10
−7
10
0 1 2 3 4 5 6 7 8 9 10 11
Eb/N0 (dB)
178
PERFORMANCES DES DECODEURS A ENTREES DURES ET PONDEREES
• entrées dures
e
X
T EMhard ≤ 1 − CNi pi(1 − p)N −i (158)
i=0
e capacité de correction du code correcteur d’erreurs
r
1 REb
p = erfc (159)
2 N0
• entrées pondérées
N r !
1 X Eb
T EMsof t ≤ Aderfc dR
2 N0
d=dlibre
179
T EM = f (Eb/N0) d’une chaîne de transmission utilisant un code de Hamming (7,4)
et un code de Golay (23,12).
−1
10
code de Hamming dur
code de Hamming pondéré
code de Golay dur
−2 code de Golay pondéré
10
−3
10
−4
10
TEM −5
10
−6
10
−7
10
3 4 5 6 7 8 9 10 11
E /N
b o
180
COURS 12
181
CODES CYCLIQUES
• Les codes cycliques forment un sous ensemble des codes linéaires en bloc.
• Ces codes contiennent les familles de codes les plus importantes comme les codes de
Hamming, de Golay, les codes BCH et Reed Solomon.
• Leurs propriétés permettent un codage et un décodage relativement aisé.
• Si x = [x0 x1 . . . xN −2 xN −1] est un mot de code alors
x’ = [xN −1 x0 . . . xN −3 xN −2] est aussi un mot de code.
• On associe à chaque mot de code x = [x0 x1 . . . xN −2 xN −1]
un polynôme x(p) = x0 + x1p + · · · + xN −2pN −2 + xN −1pN −1
• Calculons le polynôme px(p) :
px(p) = x0p + x1p2 + · · · + xN −2pN −1 + xN −1pN
En ajoutant xN −1 puis retranchant xN −1 :
px(p) = xN −1 + x0p + x1p2 + · · · + xN −2pN −1 + xN −1(pN − 1)
Effectuons le calcul de px(p) modulo (pN − 1) :
182
px(p) mod (pN − 1) = xN −1 + x0p + x1p2 + · · · + xN −2pN −1
= x′(p)
• Un décalage circulaire à droite d’une position correspond à une multiplication par p
modulo pN − 1.
• Plus généralement, un décalage circulaire à droite de i positions correspond à la
multiplication par pi modulo pN − 1.
183
PROPRIETES DES CODES CYCLIQUES
• Si x(p) est un polynôme associé à un mot de code d’un code cyclique (N, K), alors
(a0 + a1p + a2p2 + · · · + aK−1pK−1)x(p) mod (pN − 1)
est aussi un polynôme associé à un mot de code.
• Alors que pour un code en bloc linéaire K mots de code sont nécessaires pour déter-
miner l’ensemble des 2K mots de code, pour les codes cycliques, un seul mot de code
suffit.
Propriété 1 : Il est possible de construire un code cyclique (N, K) à partir d’un
polynôme générateur noté g(p) de degré N − K.
g(p) = g0 + g1p + · · · + gN −K−1pN −K−1 + pN −K
g(p) est le polynôme de degré minimal appartenant au code cyclique.
Propriété 2 : Le polynôme g(p) est un facteur de pN − 1.
Propriété 3 : La liste de l’ensemble des 2K polynômes s’obtient par multiplication de
g(x) par les 2K polynômes de degré inférieur ou égal à K − 1.
184
Soit le mot d’information u = [u0 u1 . . . uK−2 uK−1] et
u(p) = u0 + u1p + · · · + uK−2pK−2 + uK−1pK−1 son polynôme associé.
On a la relation entre u(p) et x(p) suivante :
x(p) = u(p)g(p)
186
CODES CYCLIQUES SOUS FORME SYSTEMATIQUE
On cherche à obtenir un mot de code x sous la forme systématique x = [x0 x1 . . . xN −1] =
[x0 x1 . . . xN −K−1 u0 u1 . . . uK−2 uK−1]
Le polynôme x(p) associé x(p) = q(p)g(p) est calculé comme suit:
-1 multiplier le polynôme u(p) par pN −K
187
COMPARAISON AVEC L’APPROCHE MATRICIELLE
Dans l’approche matricielle nous avons vu que la matrice génératrice avait la forme :
Gs = [I P]
Avec l’approche codage cyclique, la matrice génératrice aura la forme suivante :
Gs = [P I]
car le mot de code x se présente différemment :
x = [x0 x1 . . . xN −1] = [x0 x1 . . . xN −K−1 u0 u1 . . . uK−2 uK−1]
Exemple : pour le code de Hamming (7,4) avec g(p) = 1+p+p3, la matrice génératrice
avec l’approche matricielle est la suivante :
1 0 0 0 1 1 0
0 1 0 0 0 1 1
Gs = 0 0 1 0 1 1 1
(161)
0 0 0 1 1 0 1
188
avec l’approche cyclique on obtient :
1 1 0 1 0 0 0
0 1 1 0 1 0 0
Gs =
1
(162)
1 1 0 0 1 0
1 0 1 0 0 0 1
189
DIVISION DE POLYNOMES DANS GF(2)
Soit la division d’un polynôme dividende a(p) par un polynôme diviseur g(p) de degré
d dans le corps de Galois GF(2). On a la relation:
a(p) = g(p)q(p) + r(p)
Exemple :
6 5 4 3 2 2
1p + 0 p + 0 p + 0 p +1p + 0 p +1 1p +1p +1
6 5 4
1p +1p +1p
4 3 2
6 5 4
0 p +1p +1p + 0 p
3 1 p +1 p + 0 p + 1p + 0
5 4 3
1 p +1 p +1 p
5 4 3 2
0 p + 0 p +1p +1 p
4 3 2
0p +0p +0p
4 3 2
0 p +1 p +1 p + 0 p
3 2
1p +1p +1p
3 2
0 p + 0 p +1p +1
191
STRUCTURE MATERIELLE D’UN CODEUR CYCLIQUE
Cette structure comporte autant de registres à décalage que le degré du diviseur.
2
1 1p 1p
1 1
a( p) s1 s2 quotient
D D
192
STRUCTURE D’UN CODEUR CYCLIQUE
• Dans le cas des codes cycliques (N, K), nous avons vu qu’avant de calculer le
reste r(p) de la division il est nécessaire de prémultiplier le polynôme associé au mot
d’information u(p) par pN −K .
• La multiplication par pN −K est équivalente à ajouter pN −K zéros à la suite de u(p).
• Il est possible de réduire le nombre de coups d’horloge nécessaire pour calculer le
reste en exploitant le fait que les N − K derniers bits du polynôme pN −K u(p) sont nuls.
2 3
1 1p 0p 1p
s1 s2 s3
D D D
3
p u ( p)
Î
Ô
Ñ
Ï
Ø
Ì
Ó
D
Ì
D D
Î
Ë
Ú
Ü
Ý
Î
Ð
Û
Figure 21: structure matérielle complète d’un codeur de Hamming (7, 4) g(p) = 1 + p + p3
194
CORPS DE GALOIS GF (24)
• Le corps de Galois fini GF(24) est isomorphe au corps des polynômes à coefficients
dans GF(2) modulo un polynôme irréductible dans GF(2) et de degré 4.
• Liste des polynomes irréductibles facteurs de p15 − 1
1 + p + p4
1 + p + p2 + p3 + p4
1 + p + p2
1 + p3 + p4
1+p
195
• Exemple : on choisit le polynôme irréductible 1 + p + p4
• Soit α une racine de ce polynôme.
• Les puissances successives de α engendrent les 2m − 1 éléments non nuls du corps
GF(2m).
• Liste des éléments du corps GF(24) construit avec 1 + p + p4
196
POLYNOMES MINIMAUX
197
LES CODES BCH
• Les codes BCH sont des codes cycliques binaires
• Le polynome générateur g(p) possède parmi ses racines les 2e puissances consécu-
tives de α.
• Ainsi, le polynôme générateur g(p) est le produit des polynômes minimaux associés
à α, α2, α3, . . . , α2e sans qu’aucun des polynômes ne soit répété :
g(p) = PPCM m1(p), m2(p), m3(p), . . . , m2e(p) (164)
Propriétés
N = 2m − 1
N − K ≤ me
dmin ≥ 2e + 1 (165)
198
• Liste des polynômes générateurs des codes BCH corrigeant jusqu’à 3 erreurs pour
N ≤ 63
N K e g(p)
7 4 1 p3 + p + 1
15 11 1 p4 + p + 1
7 2 p8 + p7 + p6 + p4 + 1
5 3 p10 + p8 + p5 + p4 + p2 + p + 1
31 26 1 p5 + p2 + 1
21 2 p10 + p9 + p8 + p6 + p5 + p3 + 1
16 3 p15 + p11 + p10 + p9 + p8 + p7 + p5 + p3 + p2 + p + 1
63 57 1 p6 + p + 1
51 2 p12 + p10 + p8 + p5 + p4 + p3 + 1
45 3 p18 + p17 + p16 + p15 + p9 + p7 + p6 + p3 + p2 + p + 1
199
DECODAGE DES CODES BCH
On reçoit r(p):
Propriétés
N = 2m − 1
N − K ≤ me
dmin ≥ 2e + 1 (169)
Supposons que le mot d’erreur contiennent v erreurs ( avec v ≤ e):
201
s1 = αj1 + αj2 + · · · + αjv
s2 = (αj1 )2 + (αj2 )2 + · · · + (αjv )2
s3 = (αj1 )3 + (αj2 )3 + · · · + (αjv )3
..
s2e = (αj1 )2e + (αj2 )2e + · · · + (αjv )2e (171)
Posons βk = αjk 1≤k≤v
s1 = β1 + β2 + · · · + βv
s2 = (β1)2 + (β2)2 + · · · + (βv )2
s3 = (β1)3 + (β2)3 + · · · + (βv )3
..
s2e = (β1)2e + (β2)2e + · · · + (βv )2e (172)
• Définissons le polynome suivant :
202
v
Y
σ(p) = (1 − βk p)
k=1
= σ0 + σ1 p + σ2 p 2 + . . . σv p v (173)
• Ce polynôme est appelé polynôme localisateur d’erreur car les inverses des racines
de σ(p) sont égales à βk = αjk et permettent de localiser la position des erreurs jk .
203
DECODAGE DES CODES BCH
204
CODES REED-SOLOMON
• Exemple (255, 239, 17) : permet de corriger jusqu’à 8 octets par bloc.
205
• Le taux d’erreurs symbole T ESS en sortie d’un décodeur de Reed-Solomon à entrées
dures est le suivant :
N
1 X
T ESS = iCiN (T ESE )i(1 − T ESE )N −i
N i=e+1
où T ESE est le taux d’erreurs symbole en entrée.
• T ESS = f (T ESE ) pour le code Reed Solomon (255, 239, 17) :
−1
10
−2
10
−3
10
−4
10
TESS
−5
10
−6
10
−7
10
−8
10
−3 −2 −1
10 10 10
TES
E
206
COURS 13
Codes convolutifs
207
LES CODES CONVOLUTIFS
Un code convolutif est un code qui transforme une séquence semi-infinie de mots
d’informations en une séquence semi-infinie de mots de code
u : séquence de mots d’information de dimension k
u = u0 , u1 , u2 , . . . avec ui = [u1i , u2i , ..., uki ]
á
u2k u1k u0k c2n c1n c0n
à
à
u codeur c
convolutif
R=k/n
208
REPRESENTATION POLYNOMIALE DES SEQUENCES
x(D) = u(D)G(D)
G(D) est la matrice génératrice utilisée par le codeur. G(D) est de dimension k × n et
de rang k.
209
g1,1(D) g1,2(D) · · · g1,n(D)
g2,1(D) g2,2(D) · · · g2,n(D)
G(D) =
. . . . . . . . . . . . . . . . . . . . . . . . . . .
gk,1(D) gk,2(D) · · · gk,n(D)
Les éléments gi,j (D) de la matrice génératrice G(D) sont des polynômes de D ou des
fonctions rationnelles de polynômes de D.
un code convolutif est l’ensemble de toutes les séquences de sortie possibles x(D)
du codeur convolutif
210
Exemple : codeur convolutif non récursif k = 1, n = 2 M = 2
1 1
⋯ c2 c1 c10
⋯ u2 u1 u0 ⋯ c22 c12 c02
u codeur x
convolutif
R=1/2
ã
å
ä
u
ç
ã
æ
æ
D D
ä
â
ç
å
ä
G(D) = (g1(D), g2(D))
g1(D) = 1 + D + D2
g1 = [111]bin = 7oct
211
g2(D) = 1 + D2
g2 = [101]bin = 5oct
On a:
212
TABLE DES MEILLEURS CODES CONVOLUTIFS R=1/2
213
DIAGRAMME DE TRANSITIONS D’ETAT
On définit l’état interne du codeur à l’instant i par un vecteur si de dimension M :
si = [s1i, s2i, ...sMi] .
sji est l’état à l’instant i de la j-ième cellule mémoire.
Diagramme de transition pour le codeur convolutif non récursif (7,5) de rendement 1/2
de l’exemple précédent
10
d
01 [11] 01
c 10
b
[10 ]
00 [ 01]
11 11
[ 00 ]
a
00
Chaque branche est renseignée avec les bits de sortie ( ici c1i et c2i). Les branches en
traits pointillés et continus correspondent respectivement à un bit d’entrée égal à 0 et à 1.
214
état interne s1i s2i
a 0 0
b 0 1
c 1 0
d 1 1
TREILLIS ELEMENTAIRE
A partir du diagramme de transitions d’état, il est possible de construire le treillis élé-
mentaire du code convolutif. Chaque branche b relie un état de départ s−(b) et un état
d’arrivée s+(b).
00
a
11
11
b
00
10
01 01
d 10
215
DIAGRAMME EN TREILLIS
Le diagramme en treillis est un diagramme de transitions d’état où l’abscisse corre-
spond au temps. Il est obtenu simplement en assemblant un nombre infini de treillis
élémentaires.
Diagramme en treillis du codeur précédent :
a 00 00 00
00
11 11
11
b 11 11
11
00 00
10 10 10
c
01
01 01 01 01
d
10 10
Sur chaque branche on renseigne la valeur des deux bits c1i et c2i. Les traits en gras et
en pointillés correspondent respectivement à ui = 1 et ui = 0 .
216
DISTANCE MINIMALE DES CODES CONVOLUTIFS
chemin nul de référence
a
2 2
b
2
0
1 1
c
d 1
217
ALGORITHME DE VITERBI
L’algorithme de Viterbi est un décodeur ML. Il recherche le chemin ou la séquence
d’état le plus probable. La séquence x̂ se déduit alors immédiatement.
cas du canal binaire symétrique
dH (y,x)
p
P r(y|x) = pdH (y,x)(1 − p)N −dH (y,x) = (1 − p)N (175)
1−p
où dH (y, x) est la distance de Hamming entre la séquence reçue y et la séquence x.
p
Comme p est compris entre 0 et 0.5, on a 0 < 1−p < 1.
Ainsi maximiser P r(y|x) revient à minimiser la distance de Hamming entre y et x.
cas du décodage à entrées souples d’une séquence reçue pour un canal BBAG
p
yi = Esxi + ni (176)
avec Es énergie moyenne par symbole et ni échantillon bruit blanc gaussien centré de
variance σ 2 = N20 .
218
A la sortie du démodulateur on a :
√ 2
1 [yi − Esxi]
p(yi|xi) = √ exp − (177)
πN0 N0
Comme la fonction logarithme est croissante, au lieu d’utiliser la relation (149) pour
déterminer x̂, on peut utiliser :
N −1 √ 2
X [yi − Es xi ]
x̂ = arg max −
x
i=0
N0
N
X −1 p
= arg min (yi − Esxi)2 (180)
x
i=0
219
• Une seconde version du décodeur à maximum de vraisemblance est obtenue en ap-
proximant les calculs :
N
X −1 p
x̂ = arg min |yi − Esxi| (181)
x
i=0
Cette version sous optimale donne cependant de bonnes performances en pratique.
• Dans le cas où xi = ±1) il est possible d’obtenir une troisième version exacte :
220
• L’algorithme de Viterbi évite de calculer les métriques associées à chacune des séquences
possibles.
• A chaque section du diagramme en treillis, on élimine les chemins qui ne peuvent pas
être le chemin le plus vraisemblable.
• Supposons la séquence en entrée du codeur soit 1001. La séquence en sortie est 11
10 11 11. On considère que la séquence reçue est 11 00 11 11
• A chaque étape l’algorithme de Viterbi calcule pour chaque nouvelle branche la dis-
tance de Hamming entre le couple de bits reçus et le couple de bits associés à la branche
considérée. Puis il calcule les 2k M métriques cumulées et ne conserve qu’un seul chemin
par noeud baptisé chemin survivant.
221
Séquence
reçue : 11 00 11 11
11 (0) 11 (0)
00 (2) 00 (2)
10 (1)
10 (1) 10 (1)
c (0) (4) (2) (1)
01 (1)
01 (1) 01 (1) 01 (1) 01 (1)
d (1) (2) (3)
10 (1) 10 (1)
222
POINCONNAGE DES CODES CONVOLUTIFS
• A partir d’un code convolutif on peut réaliser des codes convolutifs de rendement
supérieur.
• Exemple : codeur R=2/3 obtenu à partir du codeur précédent.
a 0X 00 0X
00
11 1X
1X
b 11 1X
11
00 0X
1X 10 1X
c
0X
01 0X 0X
01
d
10 1X
223
COURS 14
224
INTRODUCTION AUX MODULATIONS NUMERIQUES
225
MODULATION A DEPLACEMENT D’AMPLITUDE
∞
X
x(t) = ak p(t − kT )
k=−∞
X∞
= ak g(t − kT )cos(ω0t) (183)
k=−∞
g(t) et p(t) = g(t)cos(ω0t) sont les formes d’onde du signal respectivement avant et
après la modulation.
• les symboles ak prennent leurs valeurs dans l’alphabet {±d, ±3d, . . . , ±(M − 1)d}
(NRZ multiniveaux).
• Le signal x(t) peut également s’écrire sous la forme suivante :
∞
( )
X
x(t) = ℜ ak g(t − kT )ejω0t (184)
k=−∞ 226
• Représentation géométrique des signaux PAM pour M = 4 et M = 8 :
ì
=4
é
=8
í
ð
é
ë
é
ë
é
Sur le canal gaussien, le taux d’erreurs symbole est donné par :
r !
M −1 3log2M Eb
T ES = erf c (185)
M M 2 − 1 N0
• Le codage de Gray consiste à choisir les mots binaires associés à deux points ad-
jacents afin qu’ils ne diffèrent que d’un seul bit. Ainsi, une erreur symbole entre deux
points adjacents n’engendre qu’une erreur bit sur les log2M bits du mot binaire.
• Avec un codage de Gray, on a donc la relation suivante entre le TEB et le TES :
T ES
T EB = (186)
log2M
227
MODULATION A DEPLACEMENT DE PHASE
∞
!
X 2πbk
x(t) = Ag(t − kT )cos ω0t + + φ0
M
k=−∞
∞
!
X
= Ag(t − kT )cos ω0t + φk + φ0 (187)
k=−∞
bk ∈ {0, 1, . . . , M − 1} et g(t) est la forme d’onde du signal en bande de base. φ0 est
une phase de référence. On choisit en général φ0 = π/M .
exemple : M = 4 : la phase φk peut prendre les valeurs suivantes : 0, π2 , π et 3π
2.
Le signal x(t) peut également s’écrire sous la forme suivante :
∞
( ) ( !)
X 2πbk
x(t) = ℜ ak g(t − kT )ejω0t avec ak = A exp j + φ0
M
k=−∞
228
• Représentation géométrique des signaux PSK pour M = 4 (QPSK) et M = 8 (8PSK)
ñ
=4
ñ
ò
ò
ñ
ò
ñ
ñ
=8
ó
ò
ò
ò
ò
229
MODULATION D’AMPLITUDE DE DEUX PORTEUSES EN QUADRATURE(QAM)
∞
( )
X
x(t) = ℜ ak g(t − kT )ejω0t
k=−∞
∞
( )
X
= ℜ (aR I
k + jak )g(t − kT )e
jω0 t
k=−∞
X∞
= aR
k g(t − kT )cosω0 t − a I
k g(t − kT )sinω0t
k=−∞
X∞
= vk g(t − kT )cos(ω0t + φk ) (188)
k=−∞
où
aIk
q
vk = (aR 2 I 2
k ) + (ak ) et φk = arctan R
230
ak
• Cette modulation permet de réaliser des transmissions numériques d’efficacité spectrale
élevée.
• Représentation géométrique des signaux QAM pour M = 4 M = 16
ý
ù
þ
õ
ú
=4
û
ô
õ
ö
ö
÷
ù
ø
õ
õ
ö
ö
õ
õ
ö
ö
=16
ú
ô
û
õ
õ
ö
ö
õ
õ
ö
a racine
ÿ
cos
Train +
x(t)
binaire Conversion
série/parallèle Encod cos(ω t)
-
90 °
racine
cos
a
ÿ
232
TAUX D’ERREURS SYMBOLE D’UNE MODULATION QAM
T ES = 1 − (1 − T ESP AM √M )2 (189)
où T ESP AM √M est le taux d’erreurs symbole de la modulation PAM avec la moitié de
la puissance moyenne d’une modulation QAM équivalente :
! s !
1 3log2M Eb
T ESP AM √M = 1 − √ erf c (190)
M 2(M − 1) N0
233
TAUX D’ERREURS SYMBOLE D’UNE MODULATION QAM
r !!2 r ! r !2
1 Eb Eb 1 Eb
T ES = 1 − 1 − erf c = erf c − erf c (191)
2 N0 N0 4 N0
• Par ailleurs avec un codage de Gray, le taux d’erreurs bit pour la modulation QAM 4
est égal à :
r !
1 Eb
T EB = erf c (192)
2 N0
• En négligeant le second terme de (191), on retrouve la relation T EB = T ES/2
234
TES ET TEB D’UNE MODULATION QAM
0
10
TES QAM16
TES QAM4
TEB QAM16
TEB QAM4
−1
10
−2
10
TES TEB
−3
10
−4
10
−5
10
0 2 4 6 8 10 12
E /N
B 0
235