Une approche du signal numérique
( échantillonnage, transmission par paquets, PID, correction d'erreurs, compression, traitement des données )
(rappel) Enregistrement analogique
Un exemple : le thermomètre enregistreur
Un cylindre muni d’une feuille de papier millimétré est entraîné d’une façon continue par un mouvement horloger. La température est enregistrée en continue. la courbe est intimement liée au temps. La trace du stylet varie de façon « analogue » à la variation de température dans le temps.
Enregistrement numérique
Un exemple : un relevé médical de températures
On procède par échantillonnage. On relève, ici toutes les deux heures, la température du malade. Celle-ci est reportée sur la feuille.
Les valeurs sont quantifiées (sans virgule). Le nombre de chiffres représentatifs est choisi en fonction de la précision recherchée: 3 chiffres pour 38.5°C.
la courbe d ’évolution de la température est reconstituée en joignant chaque point.
La numérisation d’une information est très naturelle. Dès lors que nous découpons un événement en années, heures, secondes….on numérise. Parler de l ’évolution de la population d’un village au cours des années, c’est numériser. De l’évolution de son salaire, de la pluviométrie, du niveau d’une rivière de date en date…c’est toujours numériser.
Exemple de transmission de l’information numérique
d'une
courbe de température de l’infirmière au
médecin traitant
Chacun d'eux sait que le taux d’échantillonnage est d'une mesure toutes les deux heures.
Le dialogue ’’utile ’’ se résumera à l’énoncé des températures: 360, 355 ,380 , 390, 400, 375, etc...
En quelques chiffres le médecin peut reconstituer la courbe significative
La transmission de l’information numérique
plus
fort !
L’infirmière à relevé non seulement la température, mais aussi la tension du malade. On va lui demander de transmettre ces informations de la façon la plus concise possible…..
Dans un premier temps l’infirmière se dit: " je vais transmettre d’abord la liste des températures
370 385 380 385 390 395 400 390 385 375
et ensuite celle des tensions"
12 13 13 14 15 16 15 14 13
37012 38513 38013 38513 39014 39515 40016 39015 38514 37513
l'espace entre paquet n'apportant rien: on le supprime
37012385133801338513390143951540016390153851437513
La transmission de l'information numérique
Toujours plus fort
On reste avec notre infirmière (On a appris entre temps qu’elle se nomme Informatique !).
Jusqu’à présent elle ne transmettait que les valeurs concernant la température et la tension d’un seul malade…Or il sont 50 dans le service.
Que faire ?
Simple: dans le même esprit elle va faire précéder les 5 chiffres transmis par 2 chiffres supplémentaires (Le N° de chambre du malade, ici 23) . On appellera ces deux chiffres l’adresse ou PID (Packet Identifier). Ils désignent le malade concerné. Les paquets sont alors de 7 chiffres.
2337012 2338513 2338013 2338513 2339014 2339515 2340016
En rajoutant encore deux chiffres pour coder l’heure de la mesure, on peut même envoyer les paquets dans le désordre.
231537012 231738513 231938013 232138513 232339014 230139515 230340016
Un système de décodage adéquat pourra les remettre dans l’ordre et reconstituer les courbes pour chacun des malades.
Le "Packet" des radioamateurs utilise le même principe d'organisation (Protocole AX.25) mais comme il y a dialogue entre les machines , on ajoute un fanion (ou flag) pour marquer les débuts et fins de trame.
Bref détour vers la télévision numérique
C’est dans le même esprit qu’est réalisé l’encodage d’un signal numérique dédié à la télévision. On groupe par paquets un certain nombre d’informations en respectant un protocole qui permettra le décodage. Le flux de transport contient l'ensemble des paquets mêlant différents programmes. Chacun d'eux possède le PID du programme et son propre PID ainsi qu'une information horaire pour synchroniser le tout. On va ainsi retrouver des paquets concernant les signaux audio, vidéo, mais également pour le spectateur: du télétexte, des sous-titres, le nom des programmes en cours et à venir, et pour le décodeur des informations de service.
Oui, mais comment fait-on pour transmettre par exemple 4 films en même temps ?
C'est parcequ'on ne prend que les valeurs nécessaires à la reconstitution des information qu'on peut, dans un même temps, transmettre différents programmes. Pour en revenir à notre infirmière, elle pouvait ,en quelques secondes, transmettre la courbe représentative d’une journée d’évolution de la température…ce qui lui laissait le temps de passer par la même occasion la courbe représentative d’une journée d ’évolution de la tension et même... le temps de tchatcher 5mn avec le toubib.
Corrections d'erreurs
La transmission des données n’étant pas forcément fiable (Perturbations diverses) elle peut-être entachée d’erreurs. Il est ainsi nécessaire de s’assurer de l’intégrité des valeurs transmises. C’est un chapitre important du traitement du signal
Une solution de base : le contrôle de parité
On fait la somme des valeurs du paquet: si le chiffre est pair on fait précéder la paquet d’un 0, dans le cas contraire d’un 1.
2337012 2+3+3+7+0+1+2 = 18 Somme paire => 0
2338513 2+3+3+8+5+1+3 = 25 Somme impaire => 1
Ce qui donnera : 02337012 12338513
Le récepteur fait le même calcul. En cas d'erreur, soit le paquet n’est pas traité, soit le récepteur le redemande à l’émetteur
Dans ce
domaine il existe de nombreux « algorithmes » (principes de
calcul) , dont certains extrêmement
puissants sont en mesure non seulement de détecter les erreurs mais
également d'en corriger la plupart. La contrepartie, c'est une augmentation
des informations à transmettre. En télévision, ce
taux de correction ou FEC (Forward Error Correction) précise la part
réservée aux corrections dans le signal. Un FEC de 3/4 indique qu'environ
1/4 des valeurs transmises sert aux corrections d'erreurs. Un FEC de 3/4 est
une valeur standard mais il arrive que dans des conditions d'exploitation difficiles
on soit amené à consacrer près de la moitié du débit aux corrections. Le
récepteur mesure la qualité de la réception en comptabilisant le nombre d'erreurs
prises en compte dans un temps donné.
Ces
algorithmes de correction se basent notamment sur la dispersion des informations. On évite
ainsi de concentrer les erreurs car les perturbations arrivent le plus
souvent par à coups (burst). Cela facilite les corrections de même qu'il
est plus facile de corriger des phrases dont il manque certaines lettres qu'une
phrase dont il manque un mot
Un exemple pris sur Internet.
Où:
Symbol
Rate exprime la quantité d'informations transmises par seconde
FEC 3/4 Le taux de redondance
pour les corrections d'erreurs
SID : Service Identifier:
est en fait le PID identifiant la chaine
PID
video ou VPID : Video Packet Identifier (Identifiant des "packets"
contenant de la vidéo)
PID Audio ou APID: Audio
Packet Indentifier (Identifiant des "packets" contenant de l'audio)
Compression du signal
Le volume d’informations devient un point essentiel lorsqu’il s’agit de stocker ou transmettre un signal numérique: C’est un coût technique et financier et c’est du temps pour le traitement du signal. Le challenge est donc de le réduire au mieux. Il existe deux sortes de compression. la première dite destructive ampute une partie du signal, l'autre non destructive en conserve l'intégrité.
Un exemple de compression destructive: Nous avons vu plus haut que la quantification des températures se faisait sur trois chiffres (précision au dixième de degré). En considérant que cette précision n'est pas significative, il est possible de ne quantifier que sur deux chiffres
231537012 231738513 231938013 232138513 232339014
devient
23153712 23173813 23193813 23213813 232339014
Une autre solution consiste à diminuer le taux d'échantillonnage. Dans l'exemple initial on pourrait envisager une prise de température toutes les quatre heures au lieu de deux. Ceci se fait évidemment au détriment de la précision de l'information.
une compression destructive.
Un exemple de compression non destructive.
231537012 231738513 231938513 232138513 232338513 230139014
On constate ici une suite de paquets dont les valeurs après PID sont absolument identiques. Dans la réalité, par exemple dans le noir du bas des images ci dessus, plusieurs centaines de paquets consécutifs peuvent être concernés. Un solution possible consiste à créer un paquet qui indiquera que les paquets suivants sont identiques
231537012 231738513 23230000 230139014
A la réception, la machine, ne traitera que le premier paquet et appliquera le résultat à tous les paquets identiques qui suivront. La restitution de l'information est intégrale.
Traitement mathématique des données
Que ce soit du texte, des couleurs, du sons... toutes ces informations sont transmises sous forme de chiffres. Par exemple la lettre A correspond dans le code ASCII à la valeur 65. Une couleur pourra s'exprimer sur 3 valeurs représentant la proportion des trois couleurs fondamentales rouge, verte et bleue qui la compose. Un son pourra être caractérisé par sa fréquence et son volume....
Ainsi dans tous les domaines ou le signal capté doit être ensuite analysé, modifié, remis en forme, la possiblité d'appliquer un traitement mathématique à chacune des valeurs acquises devient un avantage fondamental de la numérisation.
Un exemple : un robot tireur d'élite.
Le robot va faire ce que fait intuitivement la petite fille qui vient de faire un premier un carton. Elle a remarqué que les impacts sont groupés en haut à gauche de la cible. Elle pense à réctifier le tir au second carton. Pour cela elle va de façon intuitive corréler les résultats.
1) Dans un premier temps, elle joint les impacts en un point qui sera le plus proche de chacun d'eux. C'est la méthode "des moindres carrés"
2) Ensuite elle fait une "translation" de ce point sur une droite passant par le centre de la cible: donc diamétralement opposé.
3) Au prochain tir elle visera ce point pour atteindre le centre de la cible.
Tout ça, un robot tireur pourrait le reproduire. Une caméra filme la cible. Compare l'image d'avant tir avec l'image d'après tir (c'est ce que font les détecteurs de mouvements) . En sont déduites les coordonnées des impacts (les pixels modifiés dans l'image) . les calculs intuitifs de la petite fille sont réalisés par le processeur...et le robot rectifie le tir. On pourrait sur ces bases imaginer recentrer une image ou estimer et prédire une direction tout en calculant la vitesse du déplacement d'un objet dans l'image.
A l'occasion de cet exemple, on peut évoquer ici une forme de filtrage.
Un tir a été parasité par une faute d'attention. Il ne peut que brouiller le système. Un algorithme va simplement l'éliminer en déclarant qu'un impact éloigné des autres de plus de x mm ne doit pas être pris en compte. On peut imaginer la même chose dans l'analyse d'une mélodie où toute valeur trop éloignée de celles qui l'entourent est rejetée comme étant du bruit.
Apperçu des difficultés
1) Analyse des signaux complexes
Si ce qui précède peut paraître simple, voire simpliste, c'est que les exemples ci-dessus font l'impasse sur la complexité des signaux à échantillonner donc à traiter: et cette simplicité est rarement la règle. Prenons le cas d'une même note jouée par différents instruments. Bien que la note et le volume soient identiques, chaque instrument produit un son différent parfaitement reconnaissable.
A la fréquence fondamentale (la note) s'ajoutent quantités d'autres fréquences qui vont définir le timbre de l'instrument. c'est la somme de toutes ces fréquences qui constitue le signal. Pour le traiter, il va falloir travailler sur chacune de ses composantes essentielles et pour cela les extraire du signal. Des calculs basés sur les "transformées de Fourrier" peuvent se charger du travail. Le passage de la représentation temporelle de l'oscilloscope à la représentation fréquentielle de l'analyseur de spectre est une visualisation de cette "transformation".
2) Transmission du signal numérique
Dans les exemples précédents, les calculs suggérés s'effectuaient en base décimale. Ce n'est plus le cas lorsque ceux ci sont confiés à des machines. Celles-ci fonctionnent avec des séries d'interrupteurs ouverts ou fermés. C'est le calcul binaire. 1 interrupteur permet deux positions, deux permettent 4 positions, 3 comptent jusqu'à 8 positions différentes... et 8 (un octet) jusqu'à 256 positions. Les valeurs ainsi traduites en binaire sont une suite d'états hauts et bas (1 et 0) qui, éléctriquement , sont représentés par des séries de créneaux.
La quantité formidable d'informations transmises fait que ces créneaux s'assimilent à de très brèves impulsions. Ce sont ces impulsions qui vont devoir moduler les émetteurs. Une dernière image pour entrevoir alors les difficultés à surmonter: On peut imaginer des milliers de cailloux tombant très rapidement et régulièrement l'un derriere l'autre au milieu d'une mare. Le problème est de les compter en analysant seulement les vaguelettes arrivant sur la berge....et le plus enthousiasmant c'est qu'on y parvient.