Généralités codages NRZ , NRZI et Manchester
Mise à jour 06/2013

Avertissement important : 

Les informations de cette page ne sont que des généralités dans le cadre des transmissions de données du type packet radioamateur (le lecteur à la recherche de démonstrations théoriques est invité à consulter des ouvrages spécialisés).

Introduction :
La transmission de données en mode série consiste à émettre dans le temps une suite d'éléments binaires (bits) ayant pour valeur "0" ou "1".  Ces éléments binaires sont transmis au rythme d'un signal d'horloge. On distingue 2 modes de transmissions:

Transmission série du type asynchrone :
Ce mode est utilisé par exemple dans les transmissions "série RS-232" ou radiotélétype (RTTY code Baudot). L'horloge de réception est déclenchée par un signal spécifique appelé Start. Ce signal correspond au passage de l'état "Mark" (1) à l'état  "Space" (0). A noter que l'état d'attente "Mark" est un état électriquement actif (présence d'une tension ou d'un courant).
Dans le cas de signaux série RS-232 le "1" (Mark) est "matérialisé" par une tension de -12V et le "0" par +12V. En logique style "TTL" le "1" est matérialisé par +5V et le "0" par 0V .

Après le bit de Start suivent N éléments d'information (N pouvant varier de 5 à 8 bits suivant le mode choisi). La fin de transmission des N bits est indiquée par un signal "Stop" d'une durée de 1 à 2 bits. 

L'avantage de cette technique est la simplicité de synchronisation. Un inconvénient est le "rendement" global de la transmission. Par exemple pour transmettre 8 bits utiles il faut transmettre systématiquement 11 bits (1 bit start + 8 bits données + 2 bits stop) ce qui peut être pénalisant dans le cas où l'on désire transmettre un flot important et continu de données.

Signalons que le terme "asynchrone" indique que la transmission des bits d'informations peut intervenir à des instants complètement aléatoires. C'est typiquement le cas lors de la transmission de codes caractères par un opérateur utilisant un clavier. 


Async serial


Un bit de parité peut être utilisé afin de détecter une éventuelle erreur de transmission. On peut tester la parité des "1" (le nombre total de "1" , bit de parité compris, doit être pair) ou l'imparité des "1"
(le nombre total de "1" , bit de parité compris, doit être impair). Les termes techniques anglais utilisés pour la gestion du "parity bit" sont  "even" pour pair et "odd" pour impair. L'exemple ci-dessus illustre l'utilisation du test de parité (mode even) ; on constate que le bit de parité est positionné à "0" puisque le code transmis comporte un nombre pair de "1". A noter que ce système de détection d'erreurs par simple parité est mis en défaut en cas d'erreurs doubles. La notion de """" parité impaire """" que l'on retrouve parfois dans certaines publications, est un contresens (abus de langage ou mauvaise traduction).

Transmission série du type  synchrone :
La transmission des éléments binaires s'effectue au rythme d'un signal d'horloge transmis en permanence. En pratique il faudrait transmettre ce signal de synchronisation sur une voie séparée des données. Cette solution est envisageable pour des liaisons filaires à très courte distance.

Une autre technique consiste à mélanger aux données le signal d'horloge au moment du codage. Il est souvent possible, côté réception, de recréer une horloge de synchronisation à partir du signal reçu.  D'une manière intuitive on peut imaginer que si le signal de données comporte de nombreuses alternances de niveaux il sera possible de vérouiller un signal d'horloge (PLL) .

Les transmissions synchrones sont généralement structurées sous forme de trames. Ces trames comportent un en-tête de "synchronisation bits" suivi d'un symbole de délimiteur de début de trame. 


"Synchro.  bits" Délimiteur
de trame
 N bits de données Code de détection d'erreurs Délimiteur
de trame

(Cf trames HDLC utilisées en packet radio).

Codage N R Z :
Le code NRZ est le moyen le plus simple de coder l'information: il y a une relation directe entre la valeur logique et une grandeur physique par exemple une tension électrique. On peut imaginer de coder le "1" logique par +5V est le "0" par 0V (dans ce cas le code est dit unipolaire). On pourrait tout aussi bien coder le "1" par -12v et le "0" par +12v. C'est donc un niveau électrique qui "matérialise" l'information ; toute inversion de polarité se traduira par une inversion de l'information.

Que signifie le sigle NRZ ? il s'agit de Non Return to Zero, le signal ne comportant pas de transition  "retour vers zéro"  (électrique) pendant une période bit (par opposition aux codages du type RZ).

Codage N R Z I :
Ce codage n'utilise pas directement le niveau mais un changement de niveau (par rapport au bit précédent) pour coder les valeurs logiques ; ce codage est du type différentiel. Par exemple l'apparition d'un "0" logique provoquera un changement de niveau électrique et il n'y aura aucun changement pour le "1" logique. Le codage pourra être polaire (tensions -V +V) ou unipolaire (0 +V).

Avec cette convention le codage est du type Non Return to Zero Inverted on Space , c'est à dire code NRZ avec inversion de signal sur un "space" (0 logique). C'est le codage NRZI-S qui est utilisé en transmission packet radio.  L'intérêt principal de ce codage est qu'il est insensible aux inversions de polarité du signal pouvant intervenir dans la chaîne de transmission.

La figure 1 illustre les codages NRZ et NRZI. Le signal horloge nous rappelle qu'il s'agit de transmission synchrone. Pour le codage NRZI on suppose ici que le niveau repos  était un niveau "haut".


fig. 1

La densité spectrale de puissance d'un signal NRZ (ou NRZI) à l'allure suivante (T = période bit) :


fig. 2

On constate que le signal NRZ (ou sa variante NRZI) comporte beaucoup d'énergie dans les basses fréquences voire même une composante continue (en fonction du nombre de 1 et de 0 !). Si l'on veut transmettre ce signal sans déformation il faudrait, en théorie, une bande passante allant de "0" à l'infini.


Transmission du signal "bande de base" NRZI sur un canal radio :

En émission le signal "bande de base" codé NRZI modulera en FSK  (frequency shift keying ) :

 
Le problème classique en transmission de données est qu'il n'est pas possible en pratique de disposer d'une bande passante infinie afin de transporter sans déformation le signal bande de base (NRZ ou NRZI) initial.

fig. 3

En packet radio les limitations de bande passante seront dues essentiellement côte émission à la réponse du modulateur et côté réception  à la réponse des filtres de l'amplificateur "F.I." (fréquence intermédiaires) et du démodulateur.

fig. 4

La figure 4 montre l'allure d'un signal bande de base (courbe jaune) après passage dans une chaîne de transmission ayant une bande passante limitée (courbe verte = signal reçu). On constate que le signal initial est "filtré" et que la courbe présente de nombreux rebondissements d'amplitude. 

En faisant référence au signal reçu (fig.4 courbe verte) la figure 5 représente un tracé particulier appelé diagramme de l'oeil (eye pattern dans la littérature anglo saxonne). Ce diagramme regroupe, ici sur une durée de 2 bits, un ensemble de trajectoires correspondant à des combinaisons de changements d'amplitudes de "1 vers 0"  (+A vers  -A) et de "0 vers 1"  (-A vers +A). Les simulations s'effectuent sur une très longue suite (aléatoire) de symboles "1" et "0".  

fig. 5


Les rebondissements d'amplitudes observés ici sont la conséquence du temps d'amortissement de la réponse impulsionnelle du canal de transmission. Les éminents spécialistes en transmissions de données qualifient ce phénomène "d'interférences entre symboles"  (ou  ISI :  inter symbol interference). 

Insistons sur le fait que ce "brouillage" du signal reçu n'est pas du à des bruits parasites extérieurs  

La représentation du type "diagramme de l'oeil" permet d'observer :


La valeur de tension Vs correspond au seuil de décision , ici en milieu d'amplitude c'est à dire 0 volt. La valeur  kT correspond à l'instant de décision. C'est le point situé au "centre de l'oeil" qui fourni la meilleure probabilité de détection de "0" et de "1" , donc le taux d'erreur le plus faible.

Il a été démontré (critères de Nyquist) que certaines formes de signaux (donc certaines réponses de filtres) minimisent les effets néfastes de l'interférence entre symboles. C'est le cas de la fig. 6 dans laquelle les signaux de la courbe verte correspondent à la réponse temporelle d'un filtre du type "cosinus surélevé" (raised cosine filter) de coefficient  alpha=1.

fig. 6

Afin d'obtenir cette forme de signal après démodulation il faudrait maîtriser la réponse de l'ensemble du canal de transmission. Ce n'est pas une chose simple à réaliser, surtout en transmission "packet radioamateur" les équipements émetteurs / récepteurs ayant des caractéristiques assez disparates...  Le plus souvent c'est à l'émission que l'on synthétise une forme de signal (conversion Numérique/Analogique cf. "modem" type G3RUH),de façon à compenser au mieux la réponse des différents systèmes ce qui revient à agir partiellement sur la réponse du canal.
 
 

fig. 7

La fig. 7 montre l'allure du diagramme de l'oeil associé au signal filtré (courbe verte) de la fig. 6. On constate une très bonne convergence des trajectoires de courbes avec des "passages par zéro" pratiquement parfaits et une excellente marge de bruit au niveau amplitudes. C'est ce type de diagramme qu'il faudrait idéalement obtenir après démodulation si l'on désire un taux d'erreur le plus faible possible.


Codage Manchester (ou codage Bi-phase) :

Le codage Manchester est obtenu par le mélange (opération logique OU-exclusif) d'un signal horloge et d'un signal NRZ. De cette manière on peut, par exemple, matérialiser un "1" logique par une transition montante en milieu de période bit (T) et le "0" logique par une transition descendante.

fig. 9


Tout comme pour le NRZ il faudra, pour des raisons évidentes, éviter les changements de polarités dans la chaîne de transmission.

Le Manchester peut également être du type différentiel. Dans ce cas on utilise la variation du sens des transitions par rapport au bit précédent.

Dans l'exemple de la figure 10  on constate une inversion du sens des transitions du signal en milieu de période bit (durée = T)  pour les valeurs "0" logiques. Par contre un "1" logique conserve le sens de la transition précédente.


fig. 10

Avantages du code Manchester :

Inconvénient :

fig. 10


fig. 11

La courbe en vert de la fig.11 montre l'allure du signal Manchester après passage dans un filtre passe bas idéal dont la fréquence de coupure est de 1.6 x 1/T.


fig. 12

La courbe fig. 12  montre le diagramme de l'oeil du signal précédent filtré à 1.6 x 1/T.

Un codeur/décodeur Manchester (2400 -76800 bits/s) a été expérimenté par les radioamateurs slovènes. Ce montage utilise des circuits logiques standards du type C-MOS. La photo ci-dessous montre une réalisation proposée par les radioamateurs du TCP/ IP High Speed Group (Argentine).


Bibliographie:
Wireless Digital communications:  Design and Theory. Tom McDermott N5EG  (Tucson Amateur Packet Radio corporation)