# Modulation par impulsions et codage

La modulation par impulsions et codage$^,$ ou MIC (en anglais : pulse-code modulation, généralement abrégé en PCM) est une représentation numérique d'un signal électrique résultant d'un processus de numérisation. Le signal est d'abord échantillonné, puis chaque échantillon est quantifié indépendamment des autres échantillons, et chacune des valeurs quantifiées est convertie en un code numérique. Le traitement indépendant de chaque échantillon implique qu'il n'y a ni chiffrement, ni compression de données.
On trouve des fichiers de données MIC (PCM) bruts notamment dans les applications audio. Dans les télécommunications (RTC ou VoIP), ce sont des flux : on transmet les blocs d'échantillons à la file, sans préciser le début ni la fin. Dans les systèmes stéréophoniques ou multicanaux, les blocs d'échantillons correspondant à chaque canal sont multiplexés. Les fichiers WAV, AIFF et BWF indiquent dans leur en-tête le type de codage des données. Le plus souvent, les données audio en modulation par impulsions et codage sont des fragments (chunks) multiplexés échantillon par échantillon.

## Généralités

La représentation en modulation par impulsions et codage d'un signal se décompose en trois opérations : échantillonnage, quantification, codage.

### Échantillonnage

   L'échantillonnage consiste à prélever des échantillons sur un signal, généralement à intervalles de temps réguliers.
La fréquence d'échantillonnage se définit comme l'inverse de la durée entre deux échantillons successifs, ainsi, la fréquence d'échantillonnage correspond au nombre d'échantillons prélevés chaque seconde.
Le théorème d'échantillonnage de Nyquist-Shannon stipule que les fréquences du signal supérieures à la moitié de la fréquence d'échantillonnage ne peuvent pas être reconstruites.

### Quantification

   La quantification convertit une valeur prise dans un ensemble continu en une autre, correspondant à un nombre fini d'intervalles de valeurs possibles.
Dans les applications musicales, et quand le signal numérique doit être traité, la quantification est linéaire. Quelle que soit la finesse des intervalles, il y a toujours une différence entre la valeur analogique et la valeur quantifiée. Quand cette différence est supérieure au bruit de fond, elle est corrélée au signal et se perçoit comme une forme de distorsion. Pour l'éviter, on ajoute artificiellement du bruit au signal, dans un procédé connu surtout sous son nom anglais de dither.
En téléphonie, on utilise généralement des échelles logarithmiques, afin de réduire la quantité de données à transmettre. Le codage par défaut sur un DS0 est du 8 bits logarithmique à 8 kHz, soit du μ-law PCM (Amérique du Nord, Japon) ou du a-law PCM (Europe et la majeure partie du reste du monde). Ces systèmes quantifient le signal selon une courbe logarithmique, chaque échantillon linéaire sur 13 ou 14 bits étant requantifié à une valeur sur 8 bits. Ce système est décrit par la norme internationale G.711, qui est encore aujourd'hui la norme la plus utilisée en téléphonie fixe.

### Codage

   Le codage fait correspondre à chaque intervalle sur l'échelle de quantification un code unique conformément à un ensemble déterminé de règles.
Le plus souvent, ce code est un nombre binaire ; plusieurs types de code binaire sont d'usage courant, selon qu'on envisage le signal par rapport à la valeur extrême, sans signe, ou bien à sa valeur médiane, en positif ou en négatif, et dans ce cas, soit avec un bit de signe, soit en complément à 2$^n$.
Tant pour la transmission des codes que pour leur enregistrement magnétique ou optique, il est préférable qu'il n'y ait pas de longues séquences de 1 ou de 0.
* Ces séquences rendent difficile la reconstitution d'un signal d'horloge à partir des transitions.
* En audio, les valeurs extrêmes ne sont que rarement atteintes. Les codes composés entièrement de zéro ou de uns correspondent généralement à ces valeurs extrêmes.
La modulation d'impulsion peut se transmettre avec le codage Manchester, qui évite les périodes à niveau constant au prix d'un doublement de la fréquence. Avec un peu plus d'économie, la modulation 8 bits sur 14 bits, utilisée dans le disque compact assure qu'il y a deux, quatre, six, huit ou dix zéros par bloc de quatorze bits représentant chaque octet. Ces codages adaptés à l'enregistrement ou à la transmission des données se ramènent facilement à un tableau de valeurs binaires.

## Télécommunications
### Compression des données

Lorsque le coût des circuits est important et qu'une diminution de la qualité du son est envisageable, il peut s'avérer utile de comprimer le signal de parole. On utilise alors des méthodes basées sur la détection des corrélations entre les échantillons. Les procédés les plus anciens, utilisés en téléphonie, examinent uniquement le niveau du signal.
   Si le codage considère plus d'un échantillon, il ne s'agit plus de modulation par impulsions et codage (PCM).

#### Modulation delta

La modulation différentielle (ou delta) d'impulsion-code (DPCM), à l'inverse de la modulation linéaire LPCM, code les valeurs PCM comme différences entre la valeur courante et la valeur précédente. Pour l'audio, ce type de codage réduit le nombre de bits exigé de 25 % environ par rapport au PCM.

#### Adaptive Differential Pulse Code Modulation

Pour plus de réduction, au prix de plus de traitement, on utilise un algorithme d'ADPCM pour placer une série de 14 bits PCM linéaire (ou 8 bits en loi µ ou A) dans 4 bits ADPCM. Chaque section de signal PCM est transmise avec un en-tête qui indique la table de correspondance à utiliser. De cette façon, on double presque la capacité de la ligne. Le standard G.726 décrit les détails du procédé. Plus tard, quand on a constaté qu'on pouvait encore augmenter les taux de compression, des normes supplémentaires ont été publiées.
Certaines des techniques ADPCM sont utilisées dans des communications de voix sur réseau IP (VoIP).

#### Adaptative Multi Rate

En téléphonie mobile, on utilise des codecs avec compression (AMR ou AMR-WB). Il n'y a pas de flux MIC/PCM entre les appareils.

### Codage des données

La modulation d'impulsion peut utiliser le codage RZ (retour à zéro) ou le codage NRZ (non retour à zéro). Pour qu'un système NRZ soit synchronisé, en utilisant seulement l'information émise, il ne doit pas y avoir de longues séquences de symboles identiques, comme de longues séquences de 1 ou de 0. Pour les systèmes binaires PCM, la densité des 1 est un critère important (ones-density en anglais).
On contrôle souvent cette densité à l'aide de techniques de pré-codage telles que le codage RLL (Run Length Limited). Le code PCM est étendu en un code légèrement plus long garantissant une limitation du nombre de 1 avant la modulation du signal et son envoi dans le canal de transmission. Dans d'autres cas, on ajoute des bits supplémentaires (de synchronisation) dans le flux, ce qui garantit d'avoir au moins quelques transitions entre les symboles.
Une autre technique employée pour contrôler la densité de 1 est l'utilisation d'un polynôme embrouilleur. Cela a tendance à transformer les données brutes en un flux pseudo-aléatoire. Cependant le flux de départ peut être totalement récupéré en inversant l'effet du polynôme. Quand on utilise cette technique, de longues séries de 1 ou de 0 peuvent encore exister, mais sont considérées assez peu probables pour pouvoir être négligées ou à tout le moins tolérées.
Il peut arriver que la composante continue du signal modulé (courant continu, ou courant moyen) ne soit pas nulle. Puisque cette composante continue risque de polariser les circuits d'un détecteur hors de sa plage de fonctionnement, on prend des mesures spéciales de compensation en temps réel et l'on modifie au besoin les codes émis pour faire tendre la tension moyenne vers zéro si nécessaire.
Plusieurs de ces codes sont des codes bipolaires, où les impulsions peuvent être positives, négatives ou nulles. Typiquement, les impulsions différentes de zéro alternent entre des tensions positives et négatives. On peut toutefois transgresser ces règles afin de produire des symboles spéciaux utilisés pour la synchronisation ou d'autres buts particuliers.

## Histoire

Alec Harley Reeves a déposé le premier brevet de cette technologie à Paris en 1937. Il échantillonnait le signal téléphonique à 6 kHz sur 5 bits. La première transmission de parole par MIC a été réalisée avec l'équipement de codage de voix SIGSALY utilisé pour les communications alliées de haut niveau pendant la Seconde Guerre mondiale.
Le premier déploiement de la modulation par impulsions et codage pour le téléphone remonte à 1962 aux États-Unis, après le passage du tube électronique au transistor.