Une approche du signal numérique

( échantillonnage, transmission par paquets, PID, correction d'erreurs, compression, traitement des données )

skyblue_1.gif

(rappel) Enregistrement analogique

Un exemple : le thermomètre enregistreur

img3.gif

 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.

 

skyblue_1.gif

Enregistrement numérique  

Un exemple : un relevé médical de températures

img4.gif

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.

 

skyblue_1.gif

Exemple de transmission de l’information numérique
 d'une courbe de température de l’infirmière au médecin traitant

img3.gif

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

skyblue_1.gif

La transmission de l’information numérique
plus fort !

   img5.gif

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

Et après une seconde de réflexion : " il y a mieux ! :   Je vais grouper les valeurs par paquets  (packet)  selon un protocole que je vais expliquer au médecin"

Son truc est simple :  Elle passe à chaque fois un paquet de 5 chiffres. Le médecin sait que les 3 premiers concernent la température et les 2 suivants la tension: ce qui lui permet de passer deux fois plus d’info pratiquement sans perdre de temps supplémentaire !

 

37012  38513  38013  38513  39014  39515  40016  39015  38514 37513

l'espace entre paquet n'apportant rien: on le supprime

37012385133801338513390143951540016390153851437513

skyblue_1.gif

 

img1.gif    La transmission de l'information numérique        img2.gif

 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.

skyblue_1.gif

 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.

skyblue_1.gif

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)

skyblue_1.gif

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.

img1.gif          img3.gif

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.

skyblue_1.gif

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.

img1.gif       img3.gif

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.

img4.gif

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.

 skyblue_1.gif

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.

img1.gif       

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.