Le codage bipolaire est un codage à 3 niveaux comme les codages BHDn, c’est-à-dire que les valeurs utilisées pour coder le signal composé de 0 et de 1 varieront entre -a 0 et a. Il est utilisé dans les réseaux informatiques pour injecter sur le média physique (couche 1 du modèle OSI) les valeurs logiques correspondant au flux d'entrée.

Codage bipolaire simple

modifier

Règle de codage

modifier
Valeurs à coder Valeurs transmise
0 logique 0
1 logique opposé de la valeur transmise au 1 précédent.

Exemple

modifier

les niveaux sont -a, 0,+a

codage bipolaire simple
0 1 2 3 4 5 6 7 8 9
Séquence 1 1 0 1 0 0 0 0 1 1
Codage a -a 0 a 0 0 0 0 -a a

Codage bipolaire d'ordre 2

modifier

Règle de codage

modifier
Valeurs à coder Valeurs transmise
0 logique 0
1 logique opposé de la valeur transmise au 1 précédent de même parité le plus proche.

Exemple

modifier

les niveaux sont -a, 0,+a

codage bipolaire d'ordre 2
0 1 2 3 4 5 6 7 8 9
Séquence 1 1 0 1 0 0 0 0 1 1
Codage a a 0 -a 0 0 0 0 -a a

Caractéristiques

modifier

Avantages:

  • Spectre étroit.
  • En conséquence, le signal codé est aussi facilement modulable sur une porteuse de base, ou supportera un débit important sur un support de transmission à fréquences basses.

Inconvénients:

  • Problèmes de décodage lors de longues séquences de 0.
    • Mais ce problème est résolu par le codage régulier de bits supplémentaires de façon à maintenir la synchronisation : plus ces bits sont fréquents, plus facile sera la synchronisation.
    • Avec la qualité de précision des horloges actuelles (et les applications pratiques de ce codage qui emploient des signaux de fréquence prédéterminée dans des canaux connus et normalisés) et grâce à l'utilisation de bande étroite, il est facile de maintenir la synchronisation pour des chaines assez longues de zéros, et on se contente souvent d'un bit de synchronisation à 1 tous les 16 à 64 bits, ou d'une synchronisation plus précise par l'utilisation de séquences de synchronisation en tête de trame plus longue.
  • le décodage bipolaire est moins stable autour du codet central (codé 0 et non -a ou +a) pour des transmissions à longue distance, car le signal tend à être transmis de façon différentielle (on ne détecte bien que les transitions, qui subissent aussi un déphasage, et l'amplitude d'une transition de +a vers 0 ou de +a vers -a est plus difficilement distinguable, ce qui rend difficile la synchronisation entre les séquences comme celle à 3 états (+a, 0, a) codant 101 et l, et celle à 2 états (+a, a) codant 11, ce qui privilégie les états -a et +a (c’est-à-dire la détection de bits 1) au détriment de l'état 0, particulièrement si les composantes continues sont importantes (longues chaînes de 0 sans transition); pour pallier le problème, il ne suffit pas d'insérer des 1 mais il faut aussi insérer quelque 0.
    • Une séquence FCS 01100110, codée (0,+a, -a, 0,0,+a, -a, 0), et reçue différentiellement comme (?, +, --, +, 0,+, --, +), placée en tête de trame convient bien à cet usage, mais la difficulté est de bien accorder le seuil de détection des composantes continues (pour établir le centre du signal différentiel codant le a), et à calibrer le rapport signal/bruit afin de déterminer les seuils de distinction des signaux différentiels de forte ou de faible amplitude (ce qui nécessite de coder suffisamment de bits à 1 pour déterminer le niveau de l'amplitude maximale.
    • Mais en pratique on procède par transformée de Fourier du signal, les transitions importantes (-a vers +a ou +a vers -a) ayant généré un signal différentiel important aux fréquences f et 2f mais nul à la fréquence f/2, au contraire des transitions incluant un 0 (dont la composante différentielle à la fréquence 2f est nulle).

Références

modifier