Codage BHDn
# Codage BHDn

Le codage BHDn (bipolaire à haute densité d'ordre n) est un codage à 3 niveaux comme les codages bipolaires, 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.

## Règle de codage

Le 'n' de BHDn indique le nombre de 0 que l'on peut envoyer. On le choisit en fonction de la fiabilité du support et du matériel. La valeur pour le premier 1 à envoyer est fixée par convention entre l'émetteur et le récepteur.

* Si on doit envoyer un 1, on envoie l'inverse de la valeur envoyée pour le pas précédent.
* Si on doit envoyer un 0 :
   * Si les n+1 bits suivants ne sont pas tous à 0, on continue le codage comme en codage bipolaire simple.
   * Si les n+1 bits suivants sont tous à 0, les n bits suivants sont codés à 0 et le n+1 sera codé avec la même valeur que le code du 1 précédent (on viole alors l'alternance).
* Après une violation de l'alternance :
   * Si le bit suivant est un 1, il est codé avec la valeur inverse de celle qu'on vient de mettre pour l'alternance.
   * Si le bit suivant est un 0 :
      * Si les n+1 bits suivants ne sont pas tous à 0, on continue le codage comme en codage bipolaire simple.
      * Si les n+1 bits suivants sont tous à 0,le premier est codé avec la valeur inverse de celle qu'on vient de mettre pour l'alternance, les n-1 bits suivants sont codés à 0 et le n+1e sera codé avec la même valeur que le premier (on viole l'alternance).

Les niveaux sont -a,0,+a

