Numérisation d'un signal




Introduction


Vers la fin des années 30, Claude Shannon démontra qu'à l'aide de "contacteurs", c'est-à-dire d'interrupteurs, il était possible d'effectuer des opérations logiques en associant le nombre 1 pour "vrai", contacteur ouvert, et 0 pour "faux", contacteur fermé.
C'est sur ce principe que fonctionnent encore actuellement les ordinateurs et plus généralement toute technologie "numérique".

Toute donnée traitée actuellement par un système numérique est stockée et manipulée sous la forme de "nombres binaires", c'est-à-dire sous la forme de suites de "0" et de "1".
La représentation physique d'une telle information binaire peut en effet se faire naturellement par tout système à deux états:
  • des aspérités géométriques sur une surface (CD ...): un creux correspond à un 0 tandis qu'un 1 correspond à un 0;
  • un signal électrique: au delà d'un certain seuil on considère qu'on est face à un 1, en decà c'est un 0;
  • un système magnétique (bandes magnétiques, cassettes, ...): le support peut être magnétisé localement (enregistrement de données), puis l'orientation de ces champs magnétiques peut être observé (lecture des données).

On appelle bit un tel nombre, qui signifie binary digit, ou encore chiffre binaire. Un bit correspond à la plus petite unité d'information que peut manipuler un système numérique.
Avec un bit, on peut coder 2 nombres: 0 et 1
bitsValeur décimale
00
11

Avec 2 bits, on peut coder 22 = 4
bitsValeur décimale
000
011
102
113

Avec 3 bits, on peut coder 23 = 8
bitsValeur décimale
0000
0011
0102
0113
1004
1015
1106
1117

D'une manière générale, avec n octets, on peut coder 2n nombres ou caractères différents.

Un octet, en anglais byte, noté B (attention à la majuscule, à distinguer de la notation b: bit), est une unité d'information composée de 8 bits.
Les multiples classiques, "kilo", "méga", "giga", "peta", ... , peuvent aussi être appliqués. Il faut cependant noter que, appliqués à des octets, ces multiples ne représentent pas des multiples de 10 (ce qui est le cas pour la base naturelle des nombres décimaux), mais un multiple de 210 = 1024. Cette utilisation est en toute rigueur erronée, dans le système international: les multiples désignant des puissances de 10 et non de 2, mais, sûrement car l'ordre de grandeur reste le même, l'usage courant l'a conservée.
  • 1 ko, ou 1 kilo octets, représente donc 210 = 1024 ≃ 103 octets.
  • 1 Mo, ou 1 méga octets, représente 220 = 1 048 576 ≃ 106 octets.
  • 1 Go, ou 1 giga octets, représente 230 = 1 073 741 824 ≃ 109 octets.
  • 1 to, ou 1 téra octets, représente 240 = 1 099 511 627 776 ≃ 1012 octets.
  • 1 Po, ou 1 péta octets, représente 250 = 1 125 899 906 842 624 ≃ 1015 octets.
  • et ainsi de suite pour les autres multiples ...


Codage binaire d'un nombre


De nombreuses manières permettent de coder un nombre réel sous forme d'une suite binaire.
Il faut tout d'abord bien garder en tête que si un nombre réel peut avoir un nombre infini de décimales (c'est le cas de π, 2, 1/3, … ), et quelle que soit la méthode de codage utilisée, seul un nombre fini, et fixé à l'avance par le type de codage, de ses décimales peut-être codé et stocké par un système numérique.
Les méthodes de codage binaire les plus courantes sont les écritures en simple précision et double précision. L'écriture en simple précision requiert 32 bits pour coder un nombre, tandis que la double précision nécessite 64 bits.
La forme simple précision sur 32 bits est actuellement encore la plus utilisée, quoique les technologies numériques les plus récentes et les plus gourmandes en calcul (les applications graphiques et jeux vidéo entre autres) commence à exploiter les précisions du 64 bits. Le codage sur un nombre plus élevé de bits augmente bien sûr la précision des calculs, mais nécessite bien sûr en contrepartie des capacités en mémoires et en puissance de calcul (puissance des processeurs) accrues.

D'une manière générale, un nombre peut s'écrire sous la forme:
Nombre = (Signe) Mantisse × BaseExposant

Par exemple, en écriture scientifique, la base utilisée est 10 et la mantisse est un nombre réel positif strictement inférieur à 10.
Par exemple,
1023,432 = + 1,023432 × 1043
et
−0,0045112 = − 4,5112.10−3


Dans l'écriture binaire, la base utilisée est généralement 2, au lieu de 10 pour l'écriture scientifique. Les nombres sont donc représentés sous la forme :
Nombre = (Signe) Mantisse × 2Exposant


Les codages en simple et double précision utilisent cette forme.
Simple précision: Le codage s'effectue sur 32 bits, en utilisant:
  • 1 bit pour le signe: 0 pour le signe positif et 1 pour un signe négatif
  • 8 bits pour l'exposant: l'exposant peut prendre 28 = 256 valeurs, soit les nombres entiers de −127 à 128
  • 23 bits pour la mantisse
En simple précision le plus petit nombre utilisable est ε = 2−127 ≃ 5,8.10−39 et le plus grand est 2128 ≃ 3,4.1038.
Ceci signifie entre autres, que deux nombres donc l'écart est inférieur à ε seront codés de la même façon, et donc, numériquement parlant, seront considérés comme étant égaux.

Double précision Le codage s'effectue sur 64 bits, avec:
  • 1 bit pour le signe
  • 11 bits pour l'exposant: l'exposant peut prendre 211 = 2048 valeurs, soit les nombres entiers de −1023 à 1024
  • 52 bits pour la mantisse


Numérisation d'un signal


Un signal analogique est un signal réel. La majoritée des signaux ou informations que l'on perçoit dans notre environnement est analogique: les sons qui parviennent jusqu'à notre oreille, la lumière qui excite les cellules photosensibles de notre rétine,
Mathématiquement, c'est une fonction à valeurs réelles, dont la variable est en général le temps est peut prendre toutes les valeurs réelles dans un intervalle donné.
Pour numériser, c'est-à-dire représenter sous la forme d'un ensemble de nombres stockables et manipulables par un système informatique, il a là deux difficultés:
  • la variable peut prendre une infinité de valeurs: seulement un certain nombre fini de telles valeurs peut être traîté par un ordinateur (ou tout autre système numérique.
  • la fonction, ou le signal, peut prendre aussi à chaque instant une infinité de valeurs différentes. Là aussi, un travail est nécessaire pour traîter informatiquement ces données.
La réponse au premier point consiste à échantillonner le signal. On ne considère dans toute l'étendue du signal que les valeurs prises à un certains nombres d'instants précis.
Dans un second temps, on quantifie les valeurs du signal à ces instants choisis; il s'agit de représenter, sous forme binaire le plus généralement, les valeurs du signal.

Ce sont les deux étapes incontournables de toute méthode de numérisation (sans parler des difficultés liées à l'acquisition même du signal original): Echantillonnage - Quantification

Le signal analogique (ci-dessous en bleu) est échantillonné à intervalles réguliers.
Seules les valeurs prélevées sont conservées (rouge).

Ici, le signal numérique est alors: [ -0,0371 0,0691 0,0558 -0,0533 ... ]
Chaque valeur est ensuite quantifiée, c'est-à-dire convertie sous un format numérique (binaire en général). Numérisation d'un signal analogique
Un point important à noter ici est que, suivant la capacité choisie pour représenter les valeurs prises par le signal analogique d'origine (sur 8 bits, 16 bits , ... ) des valeurs proches peuvent être représentées de la même façon, c'est-à-dire considérées comme égales.
Les nivaux du signal original sont donc lissées. Par exemple, deux sons d'amplitude très légèrement différentes sont représentés, et donc restitué par la suite à l'utilisateur de manière strictement identique.
Ce phénomène est un des inconvénients principalement pointé du doigt par exemple dans le cas de signaux sonores (et musicaux) et de leur numérisation et compression selon le format MP3.


Reconstruction du signal original après numérisation


Une question importante se pose suite à la numérisation d'un signal:
est-on capable, à partir des seuls échantillons numérisés de notre signal original, de reconstruire correctement le signal (analogique) original ?

Cette question est primordiale dans les applications les plus courantes.
On peut citer par exemple, pour illustrer cette problématique, l'utilisation de méthodes numériques dans le domaine du traitement de signaux sonores. La chaîne globale comporte deux étapes principales. La première effectue une conversion analogique / numérique, telle que détaillée ci-dessus, qui permet de numériser le ou les sons originaux. Une fois numérisé, le signal peut-être entre autre stocké sur un support adéquat (CD, disque dur, mémoire d'un lecteur MP3, ...).
La dernière étape consiste alors à restituer un signal audible à l'autilisateur, c'est-à-dire à transformer cet ensemble de données numériques (suite d'éléments binaires) en un son perceptible par l'utilisateur.
Bien sûr, et c'est là la moindre des choses, on souhaite que le son perçu par l'utilisateur soit bien celui qu'il aurait entendu directement sans ce traitement numérique.

Signal analogique original Echantillons du signal original
Un signal (par exemple sonore, un bruit quelconque, un morceau de musique, ...) échantillonné et numérisé (figure de gauche).
Seules les valeurs aux instants échantillonnés sont stockées (figure de droite).

1er signal reconstruit 2ème signal reconstruit 3ème signal reconstruit
Chacun des trois signaux ci-dessus a les mêmes échantillons que le signal original sans pour autant "concorder" avec celui-ci.
Le son restitué par chacune de ces trois reconstructions différera de toute évidence du son original enregistré numériquement.

Shannon, mathématicien et informaticien (avant l'heure !) a répondu à cette question en précisant les conditions à respecter pour que la reconstruction soit exacte.
Les hypothèses qui doivent être faites, les conditions à respecter, sont à chercher dans le domaine spectral, c'est-à-dire à rechercher dans le contenu fréquentiel du signal.
La théorie de Fourier donne les outils de compréhension et d'anlayse nécessaires à cette étude et à la réponse fournie par Shannon.




suivant: Transformée de Fourier - Analyse harmonique
LongPage: h2: 4 - h3: 0