Telechargé par sadi chfar

CH2 Introduction au Codage Canal

publicité
Chapitre 2 :
Introduction au Codage Canal
Mostafa Belkasmi
2015-2016
ENSIAS
Plan
• Introduction
• Codage et décodage
• Capacité de détection et de correction d’un code
1
Introduction
• Applications des Codes Correcteurs d’erreurs
photos Satellite
Réseaux radio mobile
Compact Disks
Modèle du système de
communication
K‘
source
Réduction
de donnée/
k
protection
de données
compression
n
Canal
K‘
Destination
Construction
du Message
k
décodeur
2
Codage
• Remplacer un message de k bits d’information
par un unique mot de n bits, dit mot de code
message k bits
mot à n bits
• L’ensemble de tous les mots de code est appelé
un CODE
Paramètres d’un code
• Code C est dit en bloc si
Tous ses mots sont de même longueur.
• Si tous les mots d’un code C sont de longueur n
alors le code lui-même est dit de longueur n
• Les paramètres d’un code en bloc C(n,k)
• Taux de codage est défini par R=k/n
3
Codage/Décodage: Code en bloc
C(n,k)
Code C
Mot de
Code
message
2k
Séquence
reçue
Canal
estimation
Décodeur
Code C
n
Il y a en totalité 2k mots de code de longueur n
Une vue d’ensemble
Espace Ambiant
2n vecteurs
2k mots de code
4
Décodage
• Comparer la séquence reçue avec tous les mots de code possibles
mots de code
séquence
reçue
• Choisir le mot de code avec nb minimum de différences ( ‘Plus Probable’)
Exemple
• Mots de code : 0 0 0 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0
• Reçu :
00011
• Différence : 0 0 0 1 1 0 1 0 0 0
10110 11101
• Meilleure supposition : 0 1 0 1 1
une seule différence
5
Quelques problèmes se posent
• Mapping entre messages et mots de code
—génération des mots de code (assez différent les
uns les autres)  Construction de codes
—Emmagasinage du code book (2k mots de code,
longueur n)  Codage
• Décodage
—Comparer une séquence reçue avec tous les mots de
code
Définitions
• Distance de Hamming entre x et y est
dH := d(x, y) = nb de positions où xi yi
• La distance minimale d’un code C est
dmin = min { d(x, y) | x  C, y  C, x  y}
• Poids de Hamming d‘un vecteur x est
- w(x) := d(x, 0 )= nb de positions où xi 0
6
Exemple
• distance de Hamming
• Poids de Hamming
d( 1001, 0111) = 3
w(0110101) = 4
Hamming (Bell-lab,1950)  les codes de Hamming.
Les paramètres d’un code en bloc
• Les paramètres d’un code en bloc C(n,k, dmin)
• dmin est calculée en comparant les mots de
code deux à deux (op. complexe)
• Exemple :
distance minimale de C(000 , 101, 011, 110) = 2
7
Capacité de détection/Correction
d’un code
Un code avec une distance minimale dmin
(avec dmin  2 t + 1)
Alors ce code est capable :
- de corriger t erreurs
- ou de détecter 2t erreurs
Exemples : dmin=11 alors t=5
dmin=12 alors t=5 aussi
Illustration
A
B
2t+1 différences
 t différences avec A
 t différences avec B
8
Codes Linéaires
Code binaire est dit linéaire ssi
· La somme modulo-2 composante à composante
de deux mots de code est aussi un mot de code.
Exemples : le code de parité et celui de Hamming
Codes Cycliques CRC (Rappel)
Soit a = (a0 a1,..., ak-1) k bits d’information
il peut être représenté par
A(X) = a0+a1X +...+ak-1 Xk-1
soit g(X) le polynôme générateur
g(X) = g0+g1X +...+gn-k Xn-k.
le mot de code (le polynôme) à transmettre est ( procédure de
codage) :
C(X) = [ Xn-k A(X) mod g(X) ] + Xn-k A(X)
Noter que C(X) mod g(X)  0, ainsi C(X) est un multiple de g(X).
9
Procédure de détection
Supposons que nous recevons le polynôme R(X) = C(X) + E(X)
où
E(X) est un polynôme d’erreur binaire
i.e. un vecteur erreur ( 0,0,0,1,0)  E(X) = X3
Le décodeur calcule S(X)=R(X) mod g(X)
- si S(X) = 0  ‘pas d‘erreur détectée’
- si S(X) <> 0, alors une erreur est détectée.
Le polynôme R(X) mod g(X) = 0 ssi E(X) est un multiple de g(X).
Codes cycliques- Correction
• Codes BCH (Bose-Chaudhuri-Hocquenghem)
• Codes de Reed –Solomon
• Codes cycliques permettant de corriger au moins t
erreurs dans un bloc de n symboles.
• Les symboles sont dans un alphabet non binaire (un
corps finis GF(q))
• Algorithme de Berlekamp pour le décodage.
• Usage : CD, DVB-S2 (Digital Video Broadcasting),
Réseaux mobiles…
10
Mise en œuvre des codes
• Codes détecteurs d’erreurs  ARQ (Automatic
Repeat reQuest)
• Codes Correcteurs d’erreurs  FEC ( Forward
Error Correction)
• Systèmes hybrides  HARQ : Hybrid ARQ
Codes correcteurs
Codes linéaires
Codes en bloc
Codes cycliques
Codes à longueur
variable
Codes
convolutionnels
11
Travaux d’actualité
• Turbo codes (Berrou et al, Brest)
• Décodage itératif : Belief Propagation, Message
Passing,…
• Codes LDPC ( Gallager,MIT, Mackay, UK)
• Turbo Product Codes ( Pyndiah, Brest)
• Fountain codes (DVB IPTV, 3GPP MBMS)
• Network Coding (Routage +Codage)
12
Téléchargement