# Codage Manchester

Le codage Manchester est un codage synchrone, ce qui signifie que, outre les données à transmettre, les signaux transmis intègrent également l'horloge de synchronisation nécessaire à leur décodage. 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.
Le code de Manchester tire son nom de son développement à l’Université de Manchester , où le codage a été utilisé en 1948 pour stocker des données sur le tambour magnétique de l’ordinateur Manchester Mark 1 .

## Principe

Les transitions du signal codé transmettent à la fois la valeur logique du bit (0 ou 1) et l'instant de son échantillonnage. Une transition intermédiaire est ajoutée lorsque des bits de même valeur se suivent.
Toutefois le schéma du code diffère entre le côté émetteur et le côté récepteur, même si leur référence commune est le signal de synchronisation :
* du côté émetteur, le signal doit être stabilisé à la valeur du bit à transmettre au moment du top de l'horloge qui provoque la transition de synchronisation ;
* du côté récepteur, la transition marque le top d'échantillonnage de la valeur du bit : celui-ci est égal à la valeur qui précédait cet instant ou l'inverse de la nouvelle valeur qui suit la transition.
Si un codage simple peut s'effectuer en plaçant temporellement la synchronisation au centre du bit comme illustré ci-dessous, ce qui donne un signal « haut » durant 50 % du temps, des émetteurs alimentés par piles peuvent réduire leur durée d'émission (état ON) en raccourcissant les périodes "hautes" avant ou après la transition de synchronisation, voire en ajoutant des transitions intercalaires.
| Valeurs à coder | Valeurs transmise |
| 0 logique | transition du niveau bas vers le niveau haut |
| 1 logique | transition du niveau haut vers le niveau bas |
Attention toutefois, cela peut être l'inverse. Les transitions du niveau haut au niveau bas indiquent alors des 0, ce qui suppose simplement que l'émetteur et le récepteur s'accordent sur la même logique.
Sur certaines de ses sondes météo, Oregon scientific contourne cette difficulté en doublant chaque bit avec le bit complémentaire (0→01, 1→10, 0110→01101001). La fréquence de synchronisation du récepteur étant la moitié de celle des bits, selon que cette synchronisation est calée sur le premier bit ou le second, le message reçu sera le message d'origine ou son complément logique.

## Utilisation

Ethernet 10BASE5, 10BASE2, 10BASE-T, 10BASE-FL.
Liaisons radio à courte distance : télécommandes radio, stations météo domestiques, ...
Réseau luminaires DALI (IEC 62386)

## Avantages

Mise en œuvre simple, codage et décodage faciles, pas de composante continue (donc pas de perte de synchronisation sur les suites de symboles identiques).
Les problèmes habituellement rencontrés avec les codes tels que NRZ, NRZI ou Miller :
* perte de synchronisation ;
* ligne coupée (à cause d'une rafale de 0) ;
* sensibilité aux parasites ;
* affaiblissement du signal car moyenne non nulle ;
sont résolus par le codage Manchester en supprimant les suites de 0 ou de 1.
La limite basse de la bande passante occupée n'est plus le continu comme dans les trois codes donnés en exemple. Elle vaut sensiblement la moitié de sa limite haute.

## Inconvénients

La limite haute de la bande passante occupée est doublée.

## D'un point de vue mathématique

Lorsque la distribution des bits transmis est équiprobablement répartie entre 1 et 0, la densité spectrale de puissance du codage Manchester s'exprime par :
$S(f)={\frac {1}{R}}\sin c^{2}{\frac {f}{2R}}\sin ^{2}{\frac {\pi f}{2R}}$
où $R$ est le débit binaire brut (10 Mbit/s, 100 Mbit/s, 1 Gbit/s...).
La densité spectrale de puissance de ce code est donc proportionnelle au carré du module de la transformée de Fourier de l'impulsion élémentaire rectangulaire.