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 :
-
la plage de fréquences utilisée par le signal issu de la suite codée est la même que celle de la suite initiale.
-
dans ce cas, le modulateur module à partir d'une fonction rectangulaire.
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
-
largeur de sa plage de fréquences
-
répartition fréquentielle de la puissance
-
peu de puissance aux faibles fréquences, aucune à la fréquence nulle
-
codage de l'horloge
-
fréquence suffisante des transitions
-
synchronisation de l'horloge du récepteur sur le signal reçu
-
résistance au bruit
-
complexité du codage
-
coût et vitesse de codage
-
dépendance à la polarité
-
équilibrage
-
mesure approximative de l'influence du codage sur des symboles successifs
-
Running Digital Sequence : RDS({ak}) = Σk ak .
-
ΔRDS({ak}) = max(abs{RDS({aj}) tel que {aj} sous-suite valide de {ak}}).
5.3. Les codes usuels utilisés en bande de base
Les codes à deux niveaux :
-
code NRZ (Non Return to Zero)
-
code NRZI (Non Return to Zero Invert)
-
code biphase
-
code biphase différentiel
-
code de Miller
Les codes à trois niveaux :
-
code RZ (Return to Zero)
-
code bipolaire (simple)
-
code bipolaire entrelacé d'ordre 2
-
codes bipolaires à haute densité d'ordre n (BHDn)
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
-
notation : d1j le jème bit de la sous-suite des bits à 1
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
-
Construction de 2 sous-suites à partir de la sous-suite des bits à 1 :
-
la sous-suite des 1 pairs et celle des 1 impairs.
-
Chaque sous-suite est indépendamment codée en alternance.
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.
-
basée sur la violation de l'alternance : bit de viol (noté V)
Une suite consécutive de n+1 bits à 0 est codée par :
-
(a) suite de n zéros suivis d'un bit de viol : [000...00] → [000...0V]
-
(b) suite formée d'un bit de bourrage (noté B), n-1 zéros, suivis d'un bit de viol; les bits B et V ayant même polarité : [000...00] → [B00...0V]
Pour assurer l'équilibrage :
-
On choisit la forme (a) si le nombre de bits à 1 suivant le dernier bit de viol est impair, la forme (b) sinon.
Remarques :
-
le premier bit à un (suivant un bit de viol) est codé avec la valeur inverse du bit de viol qui le précède
-
On considère que la suite est conventionnellement précédée d'un bit de viol.
-
Dans une très longue suite de zéros tous les blocs successifs (sauf parfois le premier) sont codés dans la forme (b).
Δ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).
-
on a la relation : 2k <= Ln
-
notation : kB/nL, par exemple 4B/5B
quelques encodages de symboles FDDI
0
|
1
|
2
|
3
|
4
|
5
|
...
|
F
|
Idle
|
J
|
K
|
R
|
S
|
Halt
|
Quiet
|
11110
|
01001
|
10100
|
10101
|
01010
|
01011
|
...
|
11101
|
11111
|
11000
|
10001
|
00111
|
11001
|
00100
|
0000
|
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).
-
Exemple : RZ ∈ 1B/2T, biphase ∈ 1B/2B
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 :
-
La modulation est généralement effectuée ultérieurement en utilisant un des codes simples précédents.
-
Exemple : FDDI = 4B/5B + NRZI