Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 10

codage correcteur derreurs convolutionnel

1. Dfinition .................................................................................................2
2. reprsentation en treillis ...........................................................................3
3. Dcodage : algorithme de Viterbi.............................................................3
4. Distance libre............................................................................................5
5. Diagramme dtat. Fonction de transfert..................................................5
6. Dcodage dcision douce en entre .......................................................7
7. Limitation du dcodage une fentre.......................................................8
8. Codes convolutionnels poinonns : ........................................................8
9. Choix : comparaison des codes cycliques et des codes convolutionnels .9
10. Concatnation.......................................................................................9
11. Entrelacement.......................................................................................9
12. Bibliographie ......................................................................................10

codage correcteur derreurs convolutionnel 1 T


Codes convolutionnels
1. Dfinition
Pour ces codes, chaque bloc de n lments binaires en sortie dpend non seulement des k
lments binaires prsents en entre mais aussi des m blocs de k lments binaires prcdents.
m+1 sappelle la longueur de contrainte, souvent k=1.
Le taux de codage est R= n/k
Le codage se fait avec des registres dcalage et des ou exclusif.
Exemple :

premier bit
cod
ck1
entre m bits
dk dk-1 dk-2
deuxime bit
cod ck2

premier bit cod


ck1
entre m bits dk dk-1 d k-2
deuxime bit
cod ck2

bit dentre tat du registre contenu du registre bits de sortie


d k-1d k-2
0 00 000 00
1 00 100 11
0 01 001 11
1 01 101 00
0 10 010 10
1 10 110 01
0 11 011 01
1 11 111 10

Dans cet exemple un .b dentre correspond 2 .b de sortie qui sont dtermins par les
quations suivantes :
c k1 = d k + d k 1 + d k 2 c k 2 = d k + d k2
soit en transforme en z :
c1 ( z ) = (1 + z 1 + z 2 )d( z) c 2 ( z ) = (1 + z 2 )d( z )
Codes convolutionnels 2 T
1
On remplace souvent z par D ( !).
Et on appelle les polynmes gnrateurs :
1 + D + D2 1 + D2
ou en octal [111]=7 et [101]=5

De faon gnrale le jim bit de code a la forme, dans le cas o le bit dentre est unique :
m1
c j(k)= g jid(ki) o k est linstant dobservation.
i =0
Il y a autant de polynmes gnrateurs que de sorties du code : ces polynmes sont :
m1
g j(D)= gijDi
i =0

2. reprsentation en treillis
Pour faciliter lalgorithme de dcodage, la reprsentation la plus courante du codage est la
reprsentation en treillis.
Ltat du codeur linstant k est reprsent par ltat {dk-1, dk-2,..dk-m-1}. A chaque arrive
dun lment binaire dk, une sortie (un mot de code) est gnre, puis juste aprs le codeur
passe dans ltat suivant qui est {dk, dk-1,.dk-m}.
Le treillis est form de nuds relis par des branches : les nuds reprsentent les diffrents
tats du codeur possibles : il y en a 2m-1 sil y a une entre2(m-1)k sil y a k entres, les branches
reprsentent les diffrentes transitions possibles dun nud un autre (ou dun tat du codeur
au suivant) lors de larrive dun bit dentre.
Voici le treillis du code prcdent : les tats sont 00,01,10,11.
Partant, par exemple de ltat 00, larrive dun 0 mne le codeur ltat 00 (transition en
pointill pour larrive dun 0) et larrive dun 1 mne le codeur ltat 10 (transition en trait
plein pour larrive dun 1). A chaque branche on peut associer le mot cod soit les 2 bits de
code ici.
00 dk = 0
00
11
d =1
11 k
01 00
10
10 01
01
11 10

3. Dcodage : algorithme de Viterbi


Le dcodage le plus courant est bas sur lalgorithme de Viterbi.
Il consiste rechercher dans larbre le chemin qui correspond la squence la plus probable,
cest--dire celle qui est la distance minimale de la squence reue ou encore la squence la
plus probable.

Codes convolutionnels 3 T
Dans lexemple qui suit ( bas sur le codeur dj dcrit ) on suppose que le dmodulateur
fournit des 0 et des 1 ( dcision dure ). A chaque fois quun groupe de 2 .b. arrive, on
examine toutes les branches possibles du treillis, on calcule la distance entre les .b. affects
aux branches et les .b. reus, on ne garde que les branches donnant lieu une distance
minimale ( ces branches forment le chemin survivant ), et on affecte lextrmit du chemin
survivant dune mtrique gale la somme de la mtrique prcdente et de la distance de la
branche retenue.
00 2 2
00
11
donnes avant codage : 1001
01 0 aprs codage : 11 10 11 11
erreur de transmission
10 0
Donnes reues : 11 00 11 11
11
11 sur la branche
00 2 2 00 0 2 distance entre le couple d'.b. reu et cod
00
11 11 2
01 0 1 sur le noeud : poids
10 1 somme du dernier poids et de la distance
10 0 4
01 1
11 1
11 00
00 2 2 00 0 2 00 2 1
00
11 0
11 11 2
0 1 11 0
01 00 2
2
10 1 10 1
10 0 4 2
01 1 01 1
01 1
11 1 101 2
11 00 11
limin

Codes convolutionnels 4 T
4. Distance libre
Cest la distance minimale entre deux chemins divergents partant du mme point et y revenant
le plus vite possible .
Comme le code est linaire on peut ne considrer que des chemins partant par exemple de
ltat 00. Et la distance libre est le poids de la squence partant de 00 et y revenant le plus vite
possible.

00 00 00
0 11 11 11
11 11 11
0 00 00 00
10 10 10
1 01 01 01
01 01 01
1 10 10 10
dk =
DLIBRE = 5
d =
k
Cette distance reprsente la distance entre deux chemins les plus proches sans erreur.
Plus elle est grande, plus le code sera performant.

5. Diagramme dtat. Fonction de transfert


On dduit de lexemple du treillis prcdent le diagramme dtat dans lequel le temps
nintervient pas et qui reprsente les diffrentes transitions possibles entre tats.

00

a=00 11
11
10
c=10 b=01
00

01 d=11 01

10

On peut partir de ce diagramme calculer une fonction de transfert qui dpend des poids des
squences codes, des poids des squences dinformation(entre).
Pour cela, on introduit, chaque transition, les variables D affect de lexposant gal au poids
du mot de code et N affect de lexposant gal au poids du mot dinformation

Codes convolutionnels 5 T
a=00 D2
ND2
D
c=10 b=01
N

ND d=11 D

ND
On va ouvrir ce diagramme pour avoir un nud dentre et un nud de sortie : ces deux
nuds seront les mmes de faon observer les chemins qui partent dun nud et qui y
retournent.
Par exemple on prend ae et as le nud a dentre et de sortie :

ND2 D D2

ae c b ae
ND D

ND
Les quations de passage sont :
c= ND2a e + Nb
b= Dc+ Dd
d = NDc+ NDd
as = Db
Aprs rsolution de systme :
a D5N
T(D,N)= s =
a e 12DN
Soit en dveloppant le numrateur de la fonction de transfert en srie :

T(D,N)= 2k Dk +5N k +1
k =0
On en dduit que :

Codes convolutionnels 6 T
-il existe 2k chemins partant dun nud et aboutissant au mme de poids k+5 dont la squence
dentre a le poids k+1
-en particulier si k=0, il existe 1 chemin de poids le plus faible 5 :cest la distance libre.
En gnral :

T(D,N)= a(h)Dh N w(h)
k =dlib

6. Dcodage dcision douce en entre


Un des intrts de lalgorithme de Viterbi est de pouvoir faire le dcodage sans tre oblig de
prendre une dcision en sortie du dmodulateur : dcision douce.
La chane de transmission peut tre modlise comme suit :
j : indice de la branche
branche du treillis i : indice de l'.b de la branche
{uij } {s ij }
m1 mj code modulateur
convolutionnel

canal
bruit blanc gaussien
{z ij }
dcodage dmodulateur
{s ij }+b = {r ij }

Le canal introduit du bruit : donc en sortie du canal on a des signaux non binaires avec des
valeurs analogiques ( continues).
Le dcodage prsent prcdemment suppose que le dmodulateur a pris une dcision 0 ou 1 :
dcision dure.
On peut effectuer le dcodage de Viterbi en supposant que le dmodulateur na pas pris de
dcision ou que la valeur du signal est code sur plusieurs bits : dcision souple.
Lalgorithme garde le mme principe mais les distances utilises sont les distances
euclidiennes :
si ( z1k , z 2k ) est le couple dchantillons en sortie du dmodulateur lentre du dcodeur t=k
et ( a1k , a 2k ) le couple binaire associe une branche du treillis
2
M k = (z ik a ik )2
i =1
( ) ( )
Pour un couple z1k,z 2k reus, on cherche le couple a1k,a 2k qui en est la distance la plus
faible.
Par exemple pour une modulation de phase 2 tats (a peut tre -1 si 0 est envoy et +1 si 1
2
est envoy), il suffit de comparer les mtriques M k = 2 (z ika ik )
i =1
Le dcodage corrige alors plus derreurs.

Codes convolutionnels 7 T
7. Limitation du dcodage une fentre
En pratique, on nattend pas que toute la squence binaire mise soit reue pour commencer le
dcodage ( trop de mmoire)
On saperoit quau bout dun certain temps t = n, les chemins survivants convergent vers un
mme chemin en amont en t = n-x.
On garde tous les chemins survivants de n-x n et t=n, on dcide de dcoder lchantillon de
t=n-x.

t= n - 5 t= n - 4 t= n -3 t= n - 2 t= n -1 t= n

Pour un rendement n~ 5 6 fois la longueur de contrainte.

8. Codes convolutionnels poinonns :


Plus le rendement est faible et plus la longueur de contrainte est grande , plus le code est
performant.
Mais, plus le rendement est faible, plus la largeur de bande ncessaire la transmission doit
tre importante.
Les rendements des codes dcrits sont de la forme 1/n, donc trs faibles, dailleurs, on voit
rarement des codes convolutionnels de rendement infrieur 1/2
Pour fabriquer des codes convolutionnels de rendement suprieur on utilise des codes
poinonns : ils sont obtenus partir des codes normaux auxquels on supprime un bit de
sortie priodiquement :
ex :
Code convolutionnel X1 X2
E1 E2 Rendement 1/2 Y Y 1 2

Code poinonn rendement 2/3

Code convolutionnel X1 X2 1 1
E1 E2 Rendement 1/2 0 1
Y2
Rendement 3/4 5/6
Matrice 1 0 1 1 0 1 0 1
1 1 0 1 1 0 1 0

Un code rendement 1/2 dont on supprime un bit de sortie sur 4 devient un code de rendement
2/3.

Codes convolutionnels 8 T
De mme pour construire un code de rendement , on ne transmet que X1 , Y1 , Y2 , X3 etc

9. Choix : comparaison des codes cycliques et des codes convolutionnels


Rappel : rendement = nb bits dinformation / nb bits de code

- Le rendement des codes en blocs est lev ( > 0,9 ), celui des codes convolutionnels est assez
faible malgr la technique de poinonnage.
- Les codes cycliques particulirement les codes de Reed-Solomon corrigent des erreurs
arrivant par paquets, ou par rafales ( burst ) Le code de Reed-Solomon ( 204,188,8 ) utilis
dans les normes DVB peut corriger un paquet 8 octets soit 64 bits par trame.
- Si les rafales derreurs ont une taille suprieure la possibilit du code, on effectue un
entrelacement des bits avant le dcodage : le but est de mlanger les bits pour casser les
paquets derreurs.
Les rafales derreurs peuvent tre provoques par le canal, en particulier les bruits impulsifs (
souvent d aux interrupteurs ) dans les cbles, ou par des multi-trajets dont la somme entrane
un signal presque nul.
- Les avantages des codes convolutionnels sont leurs bonnes performances grce au dcodage
dcision souple et leur facult des corriger des erreurs isoles.
Avec des canaux trs bruits ( Hertziens ) pour profiter des avantages des deux types de codes,
on peut les concatner

10. Concatnation

Le dcodage du code convolutionnel corrige les erreurs indpendantes mais a tendance


laisser des paquets derreurs ( comme le dcodage dpend des donnes actuelles mais aussi
des prcdentes, une erreur t a de linfluence sur le dcodage t+1...) quun dcodage de
Reed-Solomon RS pourra alors corriger. Le schma du codage et du dcodage est alors le
suivant :

EX TV numrique satellite et terrestre


dcodeur externe : RS dcodeur interne convolutif L=7, R=1/2

On ajoutera un entrelaceur entre les deux codes pour diminuer la taille des paquets derreurs
lentre de dcodeur RS

11. Entrelacement
Pour diminuer la taille des rafales pour les erreurs arrivant en rafales, on procde un
entrelacement temporel : ainsi la taille des paquets derreurs ne dpassera pas les possibilits
de correction du code RS.

Codes convolutionnels 9 T
Le principe est de changer lordre des symboles lmission les remettre en ordre la
rception. ( oprations duales trs similaires)
Ce module est donc insr entre les deux dcodages ( et codages)
Principe : opration sur les octets.
Un premier type dentrelacement est lentrelacement par blocs :

0 9 ............8 * 4

110 ..............33
ENTREES 2 11 ..............34 SORTIES

.......................
8 ...................39

Un deuxime type est lentrelacement convolutionnel
Voici lexemple de lentrelacement dfini dans les normes DVB tlvision satellite et
terrestre.
B registres de longueur variant entre M et ( B-1 ) M

Normes DVB : M = 17 et B = 12
Un octet est au plus dcal de 1117 ( soit la taille de la trame except loctet de
synchronisation )

12. Bibliographie
Communications numriques
Alain Glavieux, Michel Joindot Ed Masson
Introduction aux Codes Correcteurs
Pierre Csillag Ed Ellipses
Digital Communications : fundamentals and applications
Bernard Sklar Ed Prentice Hall
Elments de communications numriques
J.C. Bic, D.D. Duponteil, J.C .Imbeaux Ed Dunod
La Tlvision Numrique MPEG1, MPEG2 et les principes du systme europen DVB
Herv Benoit Ed Dunod

Codes convolutionnels 10 T

Vous aimerez peut-être aussi