Codes DTMF

Un article de Wikipédia, l'encyclopédie libre.

Les codes DTMF (dual-tone multi-frequency) sont les combinaisons de fréquences utilisées pour la téléphonie moderne (c'est-à-dire pas à impulsions). Ces codes sont utilisés pour la composition des numéros de téléphones, et ils ont permis la création des premiers serveurs vocaux interactifs.

Techniquement, chaque touche d'un téléphone correspondent à un couple de deux fréquences audibles qui sont jouées simultanément. De cette façon, huit fréquences bien distinctes permettent de coder seize touches. Ces fréquences peuvent être reconnues par des dispositifs électroniques et sont utilisées pour réaliser des serveurs vocaux. Dans le tableau suivant figurent des touches « A » à « D » : celles-ci étaient utilisées par l'armée américaine pour représenter la priorité d'une communication.

1209 Hz 1336 Hz 1477 Hz 1633 Hz
697 Hz 1 2 3 A
770 Hz 4 5 6 B
852 Hz 7 8 9 C
941 Hz * 0 # D

Ainsi, le couple de fréquences correspondant à 1 est (1209 Hz, 697 Hz), celui de 2 est (1336 Hz, 697 Hz), et ainsi de suite, jusqu'à celui de D : (1633 Hz, 941 Hz).

Les huit fréquences utilisées restent dans la bande passante du téléphone (qui se situe entre 300 et 3400 Hz), et ont été choisies pour éviter les harmoniques.

Sommaire

[modifier] Génération des DTMF

La génération d'un signal sinusoïdal est assez aisée :


s[k] = \sin\left(2\pi \cdot \frac{f}{f_\mathrm{ech}} \cdot k\right)

où on a:

  • s[k] est l'échantillon obtenu
  • k est le numéro de l'échantillon (partant de 0)
  • f est la fréquence que l'on veut générer
  • fech est la fréquence d'échantillonnage.

Pour générer une certaine tonalité DTMF, il suffit de récupérer les deux fréquences associées, et de générer un signal qui est la somme des deux sinusoïdes correspondantes.

Voici un exemple de génération d'un signal comme étant une somme de deux sinusoïdes à des fréquences respectives f1 et f2, à une fréquence d'échantillonnage fech, et avec une amplitude comprise entre 0 et 255 :

  • u_1 = 2\pi \cdot \frac{f_1}{f_\mathrm{ech}}
  • u_2 = 2\pi \cdot \frac{f_2}{f_\mathrm{ech}}
  • s[k] = 128 + 63 \cdot \sin(u_1 \cdot k) + 63 \cdot \sin(u_2 \cdot k)

[modifier] Détection des DTMF

La détection de tonalités DTMF peut être effectuée en utilisant entres autres les algorithmes suivants :

[modifier] Composants DTMF

MT 8870

[modifier] Liens externes

Les lecteurs souhaitant en savoir plus sur la détection des DTMF sont invités à considérer le lien suivant (en anglais), sur la comparaison des trois algorithmes mentionnés ci-dessus :