Académique Documents
Professionnel Documents
Culture Documents
Chap3 2 2022
Chap3 2 2022
Historiquement, on distingue:
n bits
On note : code C(n,k), avec k < n
Efficacité: k/n
Exemples:
Théorème :
Deux k×n matrices G1 et G2 engendrent des (n,k)-codes linéaires
équivalents si on peut obtenir G1 à partir G2 par une suite d'opérations à
choisir parmi:
permutation des lignes ;
addition de deux lignes ;
permutation des colonnes.
1 0 1 1
G
0 1 0 1
Ik P
• Un message (d=10) donne alors un mot code: d C
1 0 1 1
C=(10) * G (10) * (1011) 00 0000
0 1 0 1 01 0101
• De même, on peut vérifier la table ci-contre 10 1011
11 1110
Codage de la parole LCPTS B. BOUDRAA
Quelques définitions
S ( R) R H T
Division polynomiale
Exemple : <x4+x2+x+1> / <x+1> = <x3+ x2+1> C= [10111] / [11] = [1101]
Codage de la parole LCPTS B. BOUDRAA
Code linéaire sous forme polynomiale
Définition :
Un code polynômial est un code linéaire systématique dont chacun des mots du
code est un multiple du polynôme générateur (noté G(x)).
(les lignes de la matrice génératrice sont engendrées par le polynôme
générateur)
Le degré du polynôme G(x) définit la longueur du champ de contrôle
d'erreur.
Le mot de code C(X) d'un code linéaire polynomiale (n,k) est obtenu grâce à
son polynôme générateur G(X) associé au mot de données D(X). On a :
Exemple de codage
Avec n 12, k 8 et le polynôme générateur étant G(x) x4 x3 1 (équivaut
à 11001, forme binaire du polynôme générateur)
C’(x) x11 x8 x7 x5 x3 x2 x 1
On peut généraliser:
V(i) =(vn-i, vn-i+1, …,v0, v1…, vn-i-1) est aussi un vecteur code de C.
Exemple:
V(x)= v0 + v1x + v2x²+ …. +vn-1xn-1
On montre que V(i) (x) est le reste d’une division de xiV(i) (x) par
xn +1, c-à-d:
Solution:
a. Soit par exemple D= (1010)=(d0, d1, d2, d3)
D(x)=1+x 2
V(x)= D(x)g(x)=(1+x 2 )(1+x+x3)I = 1+x+x 2+x5
D’où le mot code V=(1 1 1 0 0 1 0)
Il en sera de même pour les autres données (voir tableau)
Codage de la parole LCPTS B. BOUDRAA
b- Dans la forme systématique, les 3 premiers bits correspondent aux
bits de parité et les 4 derniers bits correspondent aux données
Les bits de parité s’obtiennent à partir de:
xn-k D(x)/g(x) = q(x) + r(x)/g(x)
Soit C un code cyclique de polynôme générateur g(X) = g0 + g1X + ... + gn−k Xn−k
alors (théorème fondamental) une matrice génératrice G de ce code est :
g0 0 … 0
g1 g0 … 0
. g1 … …
gn-k … … 0
0 gn-k … g0
Et une matrice de contrôle H associée
0 0 … g1 à cette matrice génératrice :
… … … .
0 0 … gn-k bn bn-1 … b0 0 … 0
0 bn … b1 b0 … 0
… 0 … …
On doit avoir g(X). h(X) = Xn +1 ≡ 0 … … … .
(dualité) 0 0 … bn bn-1 … b0
Schéma d’un encodeur pour un code cyclique (7,4) généré par g(x)= (1+x+x3)
n=7, k=4, g0=1, g1=1, g2=0, g3=1
g1 X
g2 X gn-k-1 X
+ S0 + S1 + + Sn-k-1 Gate 1
Syndrome
Vecteur reçu S(x)
R(x)
La division exigée pour calculer le syndrome S(x) est implantée en utilisant le registre
à décalage de la figure.
1. Le registre est d’abord initialisé; Gate 1= OFF & Gate 2 = ON
2. Lorsque R(x) est entièrement décalé dans le registre, le contenu final correspond au
syndrome S(x)
3. Gate 1= 0N & Gate 2 = OFF. S(x) est ensuite décalé vers la sortie.
4. Le circuit est alors prêt pour traiter le vecteur reçu suivant.
Les codes convolutifs sont les codes les plus utilisés dans les
systèmes de télécommunications fixes et mobiles.
s1 (i) = e(i)+e(i-1)+e(i-2)
xor A chaque pas de temps j :
On combine les valeurs de l’entrée et de
la mémoire pour calculer les sorties
e(i) e(i-1) e(i- 2)
Chaque registre à décalage est mis à
jour par la valeur qui figure à son entrée
xor
s2 (i) = e(i)+e(i-2)
Dans cet exemple à un é.b d’entrée
correspond 2 é.b de sortie qui sont
déterminés par S1 et S2
Codage de la parole LCPTS B. BOUDRAA
s1(i)= e(i)+e(i-1)+e(i-2) s2(i)= e(i)+e(i-2)
Soit en transformée en z :
S1(z) = (1+ z−1 + z−2 ) E(z) S2(z) = (1+ z−2 ) E(z)
Equivalent à
S1(D)=(1+D+D²)E(D) et S2(D)= (1+D²) E(D)
D’où les 2 Polynômes générateurs: 1+D+D² & 1+D² , soit (7,5) en octal.
La matrice génératrice d’écrit aussi (1+D+D² 1+D²)
Table de fonctionnement:
Automate simplifié
e s s 00
1 2 00
0 0 0 00 11
11
e s1 s2 01 00
01
1 1 1
10
01 10
00 10 10
01
11 11
10
e s s
e s s 1 2
1 2 1 0 0 e s s
0 1 1 1 2
es s 1 0 1
1 2
0 1 0
01 11
e s s
1 2
0 0 1
e s1 s2
Codage de la parole LCPTS 1 1 0 B. BOUDRAA
Treillis de l’algorithme de décodage de Viterbi
ek vaut 0 ek vaut 1
s1 s2
0 0
00 00 00 00
00
11
10 10 11 10 10
10
10
01 01 01 01
01 00
01
01
11 11 11 11
11
10
temps
Représentations graphiques :
Diagramme d’état ;
Arbre ;
Treillis.
01 1 1 10 1
11 11 10 10
10
2 3
01 1 01
Couleur du chemin: RNNR
soit 11 10 11 11, correspondant au 01 1 01 1 01 1
code émis
1 2 1 3
1
D’où la donnée reçue corrigée: 1001 11 10 10
11
G [ g (x) g (x)] 1 2 =
Message Comparaison
Codeur du
reconstitué récepteur
Critère :
réduction de l ’écart
entre le message
reçu et le message
reconstitué
Algorithme de
génération
de message