Simulation d'une communication numérique
Introduction
Bienvenue dans l'ère du tout numérique !Aujourd'hui, la majeure partie de l'information que nous utilisons est sous forme numérique. La circulation de cette information se fait elle aussi, logiquement, par le biais de signaux numériques.
Grâce à l'industrialisation de masse des processeurs et de l'ordinateur depuis les années 80, une révolution numérique s'est produite pour certaines technologies et services qui exploitent le calcul numérique (tels que télévision numérique, radio numérique, téléphonie numérique, cinéma numérique, DVD, baladeurs numériques, etc).
L'information est maintenant dans la plupart des cas véhiculée sous forme numérique que ce soit sur support filaire, fibres optiques par exemple, ou en radio, réseaux cellulaires ou réseaux locaux sans fil.
Un signal numérique, par opposition à un signal analogique, est un signal qui a été quantifié et échantillonné.
Un signal analogique, le son en sortie d'un haut parleur par exemple, est un signal continu pouvant prendre une infinité de valeur à chaque instant. Mathématiquement, un signal analogique est une fonction réelle continue définie sur un intervalle de nombres réels (un intervalle de temps en général).
Numériser un signal analogique consiste à en prélever des échantillons à certains instants, on parle alors d'échantillonnage, et à donner une valeur numérique, donc à une certaine précision fixée, de chacun de ces échantillons. On parle pour cette deuxième étape de quantification.
Les systèmes automatisés et informatisés traîtent et délivrent des informations numériques, très souvent sous forme de messages binaires Par exemple, le code ASCII, American Standard Code for Information Interchange, qui donne un code binaire à chacun des caractères de l'alphabet, est la norme la plus répandue de codage de texte en informatique.
Numérisation d'un signal analogique:
Le signal analogique (bleu) est échantillonné à intervalles réguliers.Seules les valeurs prélevées sont conservées, les échantillons marqués en rouge.
Ici, le signal numérique est alors la liste de nombres: [ -0,0371 0,0691 0,0558 -0,0533 … ]
Un signal numérique est donc simplement, en quelques sortes, une suite de nombres, d'où sa dénomination de "numérique" (la traduction anglaise de nombre, ou chiffre, est "digit", ce qui a donné par la suite l'anglicisme "digital" pour qualifier ce qui a attrait au numérique).
Pour autant, si la numérisation d'un signal analogique n'est pas une opération relevant d'une grande complexité (du moins, en omettant des questions telles que le codage de ces nombres, en nombres binaires par exemple, la précision du signal numérisé par rapport à son original analogique, ou encore telle que la possibilité de pouvoir retrouver après coup le signal analogique à partir de ses échantillons ... ), la communication: émission - transmission - réception, de ces signaux numériques est moins évidente.
Transmission d'un signal d'un émetteur jusqu'au récepteur
Une fois le signal numérisé, il est apte à être envoyé vers son destinataire via un organe d'émission (une carte réseau d'un ordinateur ou une antenne d'émission par exemple) puis un canal de transmission.
Ce canal peut-être tout simplement (pas en ce qui concerne son étude) l'air: c'est le cas par exemple des communications GSM, WIFI, ainsi que toutes les communications infrarouges (les télécommandes de télévision, chaîne HiFi, voiture, ...): après le tout numérique vient le tout sans-fils !
Toutes sortes de câbles permettent néanmoins encore de véhiculer un signal d'un point à un autre (bifilaire, coaxial, fibre optique, ...).
Les caractéristiques souhaitées pour le système de communication complet sont bien sûr à la base du choix du support de transmission: préférence pour un haut débit de transmission, pour une plus grande fiabilité, pour un coût moindre ... mais aussi plus simplement, pourrait-on envisager par exemple une communication filaire entre téléphones portables, ou entre un avion et sa tour de contrôle ?
Dans les pages qui suivent, les simulations sont réalisées en considérant une transmission des signaux en espace libre.
Pour cela, ces simulations intègrent une modélisation de la propagation d'ondes en espace libre. Les détails théoriques, numériques et informatiques de ces simulations peuvent être trouvés à cette page, et plus particulièrement les simulations bidimensionnelles.
Le but plus général de ce qui suit est de présenter les grands principes fondamentaux d'une chaîne complète de communication numérique: depuis le message à transmettre, son codage en un signal prêt à être envoyé, sa transmission dans l'air, sa réception, et enfin la détection du message original dans le signal reçu (éventuellement après une phase de filtrage).
L'ensemble des illustrations et animations sont réalisées par des simulations sur des cas concrets à l'aide du logiciel de calcul Matlab.
Codage d'un message binaire
Les informations numériques ne peuvent pas circuler sous forme de 0 et de 1 directement, il faut préalablement les coder sous forme d'un signal, qui pourra lui être émis.
On peut penser pour transmettre une information à utiliser des signaux sonores (pour une conversation de vive voix entre deux personnes par exemple, mais aussi des signaux ultrasons largement utilisés dans le domaine de l'imagerie comme l'échographie), des signaux lumineux (transmis par exemple dans une fibre optique) ou plus
généralement tous signaux électromagnétiques (infrarouge, lumière visible, rayons X, ... ), ou encore des signaux électriques qui vont pouvoir alimenter un circuit électrique puis une antenne prête à émettre.
Pour que la transmission soit optimale, il est nécessaire que le signal soit codé de façon à faciliter sa transmission sur le support physique.
En d'autres termes, il faut essayer d'adapter au mieux le signal que l'on souhaite envoyer au milieu de transmission qui va l'acheminer jusqu'à son récepteur.
Il existe pour cela une grande diversité de systèmes de codage, en voici quelques exemples.
Codage en bande de base d'un message binaire
Un signal (électrique ou optique, ... ) est caractérisé par sa densité spectrale de puissance (DSP).
On parle aussi d'encombrement spectral pour caractériser ces caractéristiques fréquentielles.
L'étude du spectre d'un signal est donné par
l'analyse de Fourier.
Avant d'être émis, on peut choisir de transposer le signal dans une autre bande de fréquence, on parle alors de modulation (en fréquence), ou bien de l'envoyer dans sa bande d'origine dans quel cas on parle de bande de base.
La transmission en bande de base s'avère particulièrement simple et économique, lorsque qu'aucune contrainte fréquentielle n'est imposée (comme par exemple une bande passante imposée).
Polar NRZ
Le code polaire NRZ (Non Return to Zero) est un des codes les plus simples à mettre en oeuvre, et donc très utilisé. C'est le codage auquel on pense presque le plus naturellement.
C'est un code polaire tel qu'un "1" du message soit codé par un signal constant "+V" (une tension par exemple) pendant toute la période d'horloge d'émission, et un "0" du message original est codé similairement par le signal constant et négatif "-V".
Codage Manchester
Le code Manchester est aussi un cosde polaire.
On recherche dans ce code à forcer le signal émis à varier, et donc surtout à éviter qu'un signal constant soit envoyé pour une longue suite de "1" ou de "0".
Chaque bit "1" est codé par un signal qui est un front descendant, tandis qu'un "0" est codé par un front ascendant.
On est ainsi assuré que quel que soit le message à émettre, le signal émis variera sur chaque période.
Les conséquences spectrales de l'introduction de telles variations sont très intéressantes pour de nombreux systèmes de communication.
Codage AMI
Le code AMI (Alternate Mark Inversion) est aussi un code polaire (tri-polaire pour être précis), comme les deux précédents, et est très proche du polaire NRZ.
L'objectif recherché pour ce code rejoint par contre celui du Manchester, en charchant à éviter la possibilité d'émettre un signal constant pendant une longue période.
Un "0" du message original est codé par un signal constant et nul pendant une période d'émission. Un "1" du message original est codé alternativement, d'où le nom de ce code, par un signal constant "+V" ou "-V".
Ainsi, un longue suite de "1" est codée par un signal oscillant entre "+V" et "-V".
Il existe une très grande variété de tels codes, codes unipolaire NRZ ou RZ, bipolaires NRZ ou RZ, HDBN, ... voir les deux TP sur le codage des signaux binaires.
Transmission idéale, dans un canal de transmission non bruité
On s'intéresse tout d'abord dans notre étude au cas "idéal": le cana de transmission transporte le signal émis jusqu'au récepteur sans le perturber des quelconques signaux parasites.On parle dans ce cas de canal de transmission idéal.
Transmission numérique d'informations dans un canal idéal
On transmet dans la simulation numérique suivante le message de 20 bits : 01101010101110010100La réception du signal émis se fait à distance de la source d'émission. Le point précis de mesure du champ propagé (antenne de réception) est figuré par une marque rouge.
Aucun bruit additif ne vient pertuber le signal émis, néanmoins:
- le signal qui se propage s'atténu avec la distance parcourue. C'est une propriété physique et mathématique de la propagation d'ondes: les fronts d'onde sont circulaires, centrés sur la source, et contiennent la même énergie; comme le rayon de ces cercles augmente lorsque l'onde s'éloigne de la source ...
-
on observe une distortion fréquentielle du signal transmis.
Le canal de transmission ne transmet pas nécessairement de la même façon des signaux de fréquences différentes; en particulier ce canal a une bande passante finie et les composantes hautes fréquences des signaux sont atténuées voire coupées.
Le signal reçu est donc toujours, même en abscence de bruits parasites, nettement déformé.
Dans la simulation qui suit, le signal émis est représenté à gauche, en fonction du temps, et on voit sa propagation sur la simulation du milieu. Le point rouge à droite dans cette figure représente le lieu de l'antenne de réception.
La figure de droite montre la simulation de la réception du signal: au tout début aucun signal n'est encore parvenu, puis au bout d'un certain temps, le signal est reçu.
Le signal reçu, représenté à gauche, est distordu, et il n'a pas évident d'en tirer le message, exactement et sans erreurs, émis au départ.
L'objectif de l'étude des communications numériques est justement d'arriver à retrouver, dans le signal reçu et déformé de droite, le message original envoyé.
Emission, transmission, réception et détection d'un message
Le message de 20 bits suivant: 01101010101110010100 a été émis et réceptionné dans la simulation du paragraphe précédent. L'objectif est donc maintenant de reformer ce message original, avec le moins d'erreurs possible.On détecte ici simplement le signal utile, réception du signal transmis (cela est moins facile dans un canal bruité, car alors du bruit, des interférences, et autres signaux parasites, exitent en permanence le récepteur)
La partie utile du signal est donc isolée, encadrée en rouge dans le resultat final de la simulation sur la figure qui suit.
Le signal reçu est ensuite échantillonné, c'est-à-dire qu'on le convertit en un signal numérique. On applique alors une règle de décision sur chacun des échantillons: si celui-ci est positif, on considère qu'il correspond à un "1" envoyé, s'il est négatif on considère au contraire qu'un "0" a été envoyé.
On reconstruit ainsi le message original (si tout se passe bien, comme ici en l'abscence de bruit environnant).
Comme on a émis un signal polaire:+1 pour un bit 1 et &minus1 pour un bit 0, on applique naturellement la règle de détection suivante: si l'échantillon du signal reçu est positif on considère qu'on a reçu un bit 1, si il est négatif, on a reçu un 0.
Le message reconstitué (en rouge) est ici complètement conforme au message envoyé (en bleu).
Transmission dans un canal réel bruité
Dans le cas précédent de la communication numérique dans un canal de transmission idéal, le message reçu est bien conforme au message émis, et ce sans traitement particulier.Malheureusement, une transmission réelle est toujours perturbée.
Par exemple, lors d'une transmission en espace libre (GSM, WIFI, ondes hertziennes, ...) de nombreuses autres sources parasites, tels que d'autres sources de message distinctes (dans le domaine des transmissions par ondes électromagnétiques, on parle de problèmes de compatibilité électromagnétique, ou CEM) peuvent venir interférer avec le signal transmis.
Ces perturbations dégradent alors la qualité du signal reçu, la phase finale de détection risque d'être entachée d'erreurs.
Emission, transmission sur un canal bruité et réception d'un signal
La simulation suivante présente des sources aléatoires de bruit, dont l'amplitude maximum ne dépasse pas 20 % de l'amplitude du signal à transmettre.Ces sources parasites de bruit viennent se superposer à la propagation du signal utile, et dégrade donc inévitablement le signal reçu.
On peut remarquer par exemple, que même en abscence d'émission de la source, le récepteur capte toujours un signal non négligeable.
Le problème est alors de pouvoir détecter parmi ce signal de fond, le signal contenant le message de l'emetteur.
Emission, transmission sur un canal bruité, réception et détection d'un message
Le bruit de fond a nettement perturbé le signal reçu. On arrive encore néanmoins, sans post-traitement particulier, à récupérer un message binaire "proche" de l'original.
Toutefois ce "proche" n'est en fait guère satisfaisant: sur les 20 bits émis, 5 reçus sont erronées.
Le taux d'erreur est de 25 %, ce qui est amplement suffisant pour rendre inutilisable n'importe quel programme, inaudible n'importe quel fichier sonore numérique ...
On peut préciser néanmoins que pour certaines applications, comme la téléphonie mobile un tel taux d'erreur (quoique encore un peu trop élevé) dégrade certes la qualité de la communication mais ne la rend pas inutilisable.
Le bruit qui entache cette communication est aléatoire, au contraire du signal émis et que l'on souhaite récupérer.
On peut, en utilisant cette hypothèse, mettre en oeuvre un post-traitement, c'est-à-dire un traitement après réception, visant à atténuer ce bruit parasite: c'est une opération de filtrage.
Emission, transmission sur un canal bruité, réception, filtrage et détection d'un message
Le problème est alors de pouvoir détecter parmi ce signal de fond, le signal contenant le message de l'emetteur.
La détection directe sur ce signal bruité produit des erreurs.
On filtre le signal reçu, avec un filtre adapté au signal envoyé. Le filtre adapté est le meilleur filtre qu'on peut appliquer au signal reçu pour en faire ressortir le signal d'origine: "meilleur" signifie ici que, parmi tous les filtres imaginables, c'est celui qui maximise le ratio signal/bruit aux instants d'échantillonage. Pour les détails mathématiques des filtres, on peut consulter le chapitre de cours sur le filtrages des signaux
On observe, après filtrage, non seulement une atténuation du bruit parasite, mais aussi, et cela et tout aussi important et intéressant, une mise en valeur du signal utile.
L'amplitude du signal utile, celui que l'on cherche à détecter, est amplifiée, ce qui facilite d'autant plus la détection et la reconstruction du message émis.
On peut ensuite appliquer, comme précédemment, une méthode simple de détection à ce nouveau signal filtré afin de restituer (presque) le signal numérique de départ.
Une seule erreur persiste au final, après filtrage, soit un taux d'erreur de 5%.
Le filtrage a permis de diviser par 5 le nombre d'erreurs lors de la détection du message dans le signal bruité reçu.
Pour de nombreuses applications, cette erreur est encore de trops. Par exemple, une seule erreur dans un programme exécutable, même si celui-ci comporte quelques milliers de lignes de code, le rendra totalement inopérant.
Pour certaines applications, où l'on souhaite pouvoir établir une communication fiable, il va falloir être conscient dès le début que la présence d'erreurs de transmission est un fait incontournable.
La théorie des codes correcteurs d'erreurs a été développée justement à cette fin, parmi l'ensemble des éléments de transmission d'information numérique.