previous parent next

5. Le Codage

Le codeur transforme une suite {dk}k≥0 initiale généralement binaire (de bits) en une suite codée {ak}k≥0 (de symboles) généralement binaire ou ternaire.

Le décodeur fait l'opération inverse.

Le but du codage est d'adapter la suite de bits à transmettre aux caractéristiques de la transmission.

S'il n'y a pas de modulation par transposition en fréquence, le codage est dit en bande de base :

Exemples :

 

5.1. Débit binaire et rapidité de modulation

Le débit binaire D d'une voie de données est le nombre maximum de bits di transmis par seconde sur cette voie.

La rapidité de modulation R (exprimée en bauds) mesure le nombre maximum de symboles (éléments de modulation) transmis par seconde

Remarque : Généralement, 1/Δ est un multiple de 1/T et le nombre de niveaux N est choisi de telle sorte que a(t) et d(t) aient le même débit d'information. On a alors :

5.2. Les principales qualités d'un code

5.3. Les codes usuels utilisés en bande de base

Les codes à deux niveaux :

Les codes à trois niveaux :

Les codes par blocs :

 

5.4. Code NRZ (Non Return to Zero)

Exemple :

Code simple, utilisé couramment entre l'ordinateur et ses périphériques.

ΔRDS(NRZ) =

spectre :

5.5. Code RZ (Return to Zero)

Exemple :

Code ternaire simple, limite les interférences entre symboles, codage de l'horloge

ΔRDS(RZ) = !

-> codage 1B/2T

5.6. Code NRZI (Non Return to Zero Invert)

Exemple :

Code binaire, indépendant de la polarité, adapté à la transmission photonique.

ΔRDS(NRZI) =

 

5.7. Code de Miller

Autres dénominations : "modified FM", DM : "Delay modulation"

Exemple :

Code binaire dense, conservation de l'horloge et indépendance de la polarité

ΔRDS(Miller) = 3a/2

On peut le construire à partir du code biphase en supprimant une transition sur deux.

5.8. Code biphase

Autres dénominations : Manchester, biphase_L(evel), -> codage 1B/2B.

Exemple :

Code binaire, équilibré, conservation de l'horloge, mais spectre très large (le double).

ΔRDS(biphase) = 0 !

Spectre :

Codage utilisé par Ethernet.

5.9. Code biphase différentiel

Autres dénominations : Manchester différentiel, FSK : "frequency shift keying", FM : "frequency modulation", biphase_M(ark) ou biphase_S(pace)

Exemple :

Identique au code Manchester + indépendance de la polarité

Problème s'il y a corruption d'un des symboles : la suite est mal décodée

ΔRDS(biphase_diff) = 0

Codage utilisé par Token Ring.

5.10. Code bipolaire simple

Autres dénominations : AMI "Alternate Mark Inversion"

Exemple :

Code ternaire, équilibré, indépendant de la polarité, dérive de l'horloge (suite de 0)

spectre :

ΔRDS(bipolaire) = a

Utilisé par le système de téléphonie numérique PCM sur le ligne de transmission T1.

5.11. Code bipolaire entrelacé d'ordre 2

Exemple :

Spectre très étroit, code complexe qui ne résout pas le problème lié aux longues suites de 0. Les longues suites de 1 présentent un battement sont la fréquence est réduite (de moitié) par rapport au codage bipolaire simple.

Généralisation possible aux codes bipolaires entrelacés d'ordre n.

5.12. Code bipolaire haute densité d'ordre n (BHD n)

Même codage que le code bipolaire + une transformation des suites de plus de n zéros.

Une suite consécutive de n+1 bits à 0 est codée par :

Pour assurer l'équilibrage :

Remarques :

ΔRDS(BDH3) = 2a

Exemple :

5.13. Remarques

La plupart de ces codes acceptent plusieurs variantes. Par exemple en inversant la convention de codage de la parité (0/1) ou en modifiant les conditions initiales.

5.14. Codes par blocs

Code chaque bloc de k bits par un bloc de n symboles pris dans un alphabet de taille L. L'alphabet étant généralement binaire, ternaire, ou plus rarement quaternaire (noté resp. B, T, Q).

Certains codes précédents peuvent être perçus comme des codes par blocs (surtout si le bloc à coder est réduit à un seul bit).

L'efficacité de ces codes peut être faible (2k/Ln).

Ces codes servent à éliminer les suites de symboles impropres à la transmission. Lors de précodage :

previous parent next