Vous êtes sur la page 1sur 10

codage correcteur derreurs convolutionnel

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

codage correcteur derreurs convolutionnel

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
entre m bits

ck1

dk

dk-1

dk-2

deuxime bit ck2 cod

entre m bits

dk

dk-1

d k-2

premier bit cod ck1 deuxime bit cod ck2

bit dentre 0 1 0 1 0 1 0 1

tat du registre d k-1d k-2 00 00 01 01 10 10 11 11

contenu du registre 000 100 001 101 010 110 011 111

bits de sortie 00 11 11 00 10 01 01 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

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 : c j(k)= g jid(ki) o k est linstant dobservation. Il y a autant de polynmes gnrateurs que de sorties du code : ces polynmes sont : g j(D)= gijDi
i =0 m1 i =0 m1

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

01
10

00 10

00 11 11 01
10

dk = 0 d =1 k

01

11
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

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 01 10
11
00

2 11 0

donnes avant codage : 1001 aprs codage : 11 10 11 11 erreur de transmission Donnes reues : 11 00 11 11

11
00

00 01 10
11

2 11

00 0

2 1 4

sur la branche distance entre le couple d'.b. reu et cod sur le noeud : poids somme du dernier poids et de la distance

0
0

11 2

10 1 01 1

11
00 11 2

00
2
00 0 11 2 0 10 1 01 1

1 2 1 4 1

00
01

00 2 11 0 11 0 00
10 1
2

1 2 2

10 11 11

01 1
101

01

00

limin

11

Codes convolutionnels

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.

0 0 1 1

00 11 00 10 01 10 01 11 00 10

00 11 11 01 10 dk = d = k 00 10 01 DLIBRE = 5

00 11 11 01 10

01

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

11 c=10 01

a=00 10 00 d=11

11 b=01 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

ND2 c=10 ND

a=00 D N d=11

D2 b=01 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 : N ND2 ae c 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 On en dduit que :
k =0

D b D

D2 ae

Codes convolutionnels

-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

m1

mj

code convolutionnel

{uij }

modulateur

{s ij }

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 ( z1 , z 2 ) est le couple dchantillons en sortie du dmodulateur lentre du dcodeur t=k k k et ( a1 , a 2 ) le couple binaire associe une branche du treillis k k M k = (z i a i )2 k k Pour un couple z1 ,z 2 reus, on cherche le couple a1 ,a 2 qui en est la distance la plus k k k k faible. Par exemple pour une modulation de phase 2 tats (a peut tre -1 si 0 est envoy et +1 si 1 est envoy), il suffit de comparer les mtriques M k = 2 (z i a i ) k k Le dcodage corrige alors plus derreurs. Codes convolutionnels
i =1 2

i =1

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 : X1 X2 Code convolutionnel E1 E2 Rendement 1/2 Y Y
1 2

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

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

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

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

Vous aimerez peut-être aussi