title: Codage BHDn
text: # 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
  
  