Les signaux DTMF

Transcription

Les signaux DTMF
Plan de la présentation - Partie 1 Les signaux DTMF (Dual Tone Multi Frequency)
Frequency)
Le standard DTMF
La détection
Basée sur la DFT
L ’algorithme de Goertzel et avantages
Choix des paramètres de Goertzel
Séquencement des tâches
Céline Chataigner
ESPEO le 12/01/99
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
___________________________________________
1
Les signaux DTMF
Le standard DTMF
1209Hz 1336Hz 1477Hz 1633Hz
11
22
33
A
A
697Hz
44
55
66
BB
770Hz
77
88
99
CC
852Hz
**
00
##
D
D
941Hz
Un signal DTMF est
la somme de deux sinusoïdes
à deux fréquences différentes
Céline Chataigner
ESPEO le 12/01/99
Les signaux DTMF (Dual Tone Multi Frequency) sont un standard dans les
systèmes de télécommunication. Ils ont de nombreuses applications comme la
composition des numéros sur un cadran téléphonique, les systèmes d ’opérations
bancaires, les systèmes de répondeur vocal.
Un signal DTMF est la superposition de deux sinusoïdes à deux fréquences choisies
parmi huit. Ces fréquences sont fixées par les recommandations CCITT (Comité
Consultatif International des Téléphones et Télégraphe) Q23 et Q24 :
groupe des fréquences basses : 697, 770, 852, 941 Hz
groupe des fréquences hautes : 1209, 1336, 1477, 1633 Hz
Ainsi deux fréquences (une du groupe ‘ fréquence basse ’, l ’autre du groupe
‘ fréquences hautes ’) sur huit peuvent être combinées. On génère ainsi seize
signaux DTMF. Douze d ’entre elles sont utilisées dans les claviers téléphoniques
courants et la quatrième colonne est réservée pour un usage futur.
Les fréquences DTMF sont choisies de manière à pouvoir être distinguées même en
présence de parole sur la ligne.
2
Les signaux DTMF
La Détection des signaux DTMF
Le standard DTMF
La détection
Basée sur la DFT
L ’algorithme de Goertzel et avantages
Choix des paramètres de Goertzel
Séquencement des tâches
Céline Chataigner
ESPEO le 12/01/99
Décoder un signal DTMF implique l ’extraction des deux fréquences contenues
dans le signal et la détermination, à partir de ces valeurs, la touche correspondante.
La détection va se faire par l ’intermédiaire d ’une transformation mathématique
transformant le domaine temporelle par un domaine fréquentiel, soit la transformée
de Fourier. La transformée de Fourier Discrète (DFT) ou la transformée de Fourier
rapide (FFT) peuvent être utilisées. La FFT calcule tous les points possibles d ’une
DFT. Par exemple, pour une FFT, chacun des 256 points représentent 256
fréquences (N=0 => υ=0, N=255 => υ=1). D ’un autre côté, la DFT calcule
directement les fréquences qui vont nous intéresser (par exemple, la 20ième ou la
31ième fréquence sur les 256 fréquences possibles). Typiquement, si il y a plus de
log2N parmi N points qui sont désirés, il est plus rapide de calculer tous les N points
en utilisant la FFT et de ne pas tenir compte des points non désirés. Mais dans le cas
où seulement quelques points sont désirés, la DFT est alors plus rapide que la FFT.
Ainsi du point de vue du temps de calcul, pour déterminer les huit fréquences
DTMF, on utilisera plutôt la DFT.
X (k ) =
N −1
∑ x ( n )e
− j 2π
kn
N
n =0
Il est important de déterminer le bon nombre d ’échantillons, N, et la période
d ’échantillonnage T tels que la fréquence fi que l ’on cherche à détecter
corresponde à un des points de la séquence de fréquence, c ’est à dire fi=k/NT avec
k entier.
3
Les signaux DTMF
La Détection des signaux DTMF
Le standard DTMF
La détection
Basée sur la DFT
L ’algorithme de Goertzel et avantages
Choix des paramètres de Goertzel
Séquencement des tâches
Céline Chataigner
ESPEO le 12/01/99
Au lieu de déterminer la DFT directement, l’algorithme de Goertzel est implémenté
comme un filtre IIR (Réponse Impulsionnelle Infinie) du second ordre. Pour la
démonstration du passage de la DFT au filtre de Goertzel Cf. Annexe. La forme du
filtre de Goertzel est :
j
2πk
N
1− e
z −1
Gk ( z) =
2πk −1
1 − 2 cos(
) z + z −2
N
Y ( z) V ( z)
Gk ( z) =
×
avec,
V ( z) X ( z)
V ( z)
=
X ( z)
que l ' on peut écrire aussi sous la forme,
j
Y ( z)
1
et
=1− e
2πk −1
V ( z)
1 − 2 cos(
) z + z −2
N
2πk
V (n) = X ( n) + 2 cos(
)V (n − 1) − V (n − 2)
N
Y ( n) = V ( n) − e
j
2πk
N V (n
2πk
N
z −1
soit ,
− 1)
L’algorithme de Goertzel examine fréquence par fréquence à partir des huit
fréquences possibles pour déterminer quelle fréquence DTMF est présente sur la
ligne.
4
La détection des signaux DTMF
L ’algorithme de Goertzel et avantages
x(n)
yk(n)
coefk
z-1
coefW
n=N
n=0, 1, …, N-1
-1
z-1
feedback
vk (n) = coefk x vk (n-1) - vk (n-2) + x(n)
coefk
fs
= 8kHz
= 2cos(2*pi*k/N)
et
feedforward
yk(N) = vk (N) + coefW x vk (N-1)
k/N ≈ fDTMF/fs
coefW = -exp(2*i*pi*k/N)
Les calculs peuvent être simplifiés en utilisant l’algorithme de
Goertzel modifié.
modifié.
Céline Chataigner
ESPEO le 12/01/99
L ’algorithme de Goertzel nécessite seulement pour chacune des fréquences le
calcul de deux coefficients, un coefficient réel et un coefficient complexe. Mais cet
algorithme peut être modifié algébriquement de manière à ce que le résultat soit le
carré de l ’amplitude (soit une valeur réelle). Cette modification a des conséquences
sur la phase mais elle est inutile dans la détection de tonalité. L ’avantage de cette
modification est qu’elle permet de détecter un ‘ tone ’ en utilisant seulement un
coefficient réel.
De plus, comme l ’algorithme de Goertzel peut être vu sous la forme d ’un filtre IIR
du second ordre, il n ’y a pas besoin de stocker les N échantillons avant de pouvoir
calculer la sortie du filtre (alors qu’il le faudrait pour une DFT). Les calculs de
l ’algorithme de Goertzel peuvent être divisé en deux phases. La première, appelée
‘ feedback ’ correspond à la partie récursive du filtre. La deuxième, ‘ feedforward ’,
correspond à la partie non-récursive.
5
La détection des signaux DTMF
‘ Feedback ’ phase
v(n)
x(n)
v(n) = coefk x v(n-1) - v(n-2) + x(n)
avec
coefk = 2cos(2*pi*k/N)
v(-1)=0
v(-2)=0
n=0, 1, …, N-1
x(n) est l’échantillon entrant
v(n-1) et v(n-2) sont les deux mémoires
pour les points fréquentiels k
coefk
z-1
v(n-1)
-1
z-1
v(n-2)
Fs
k/N
= 8kHz
≈ fDTMF/fs
Céline Chataigner
ESPEO le 12/01/99
La phase ‘ feedback ’ intervient N fois (de n=0 à n=N-1). Durant cette phase, les
valeurs intermédiaires v(n) et v(n-1) sont stockées en mémoire. Leurs valeurs sont
déterminées par la formule récursive suivante :
v k (n) = coef k × v k (n − 1) − v k (n − 2) + x( n)
avec
v k (−1) = 0
v k (−2) = 0
A chaque fois, la nouvelle valeur vk(n) est enregistrée à la place de l ’ancienne
valeur vk(n-1). Cette ancienne valeur vk (n-1) est mise à jour à la place de
l ’ancienne valeur vk (n-2) - delay line.
6
La détection des signaux DTMF
‘ Feedforward ’ phase
v(n)
yk(N-1) = v(N) + coefW x v(N-1)
avec
coefW = -exp(2*i*pi*k/N)
fs
yk(n)
coefW
v(n-1)
n=N
k/N ≈ fDTMF/fs
= 8kHz
Céline Chataigner
ESPEO le 12/01/99
La phase ‘ feedforward ’ se fait une fois que la phase ‘ feedback ’ a effectué les
calculs pour les N échantillons. Cette phase génère un échantillon de sortie. Durant
cette phase, les nouveaux échantillons rentrant sont ignorés. La sortie est calculée
par la formule suivante puis on calcule l ’amplitude carrée de la sortie du filtre, on
évite ainsi le calcul avec un complexe :
y k ( N ) = v( N − 1) − W Nk v( N − 2)
= A − BW Nk
= A − Be
− j(
2πk
)
N
= A − Be − jθ
= A − B[cos(θ ) − j sin (θ )]
= A − B cos(θ ) + jB sin (θ )
y k ( N ) = ( partie réelle) + ( parite imaginaire)
2
2
= ( A − B cos(θ )) + (B sin (θ ))
2
2
2
= A 2 − 2 AB cos(θ ) + B 2 cos 2 (θ ) + B 2 sin 2 (θ )
[
]
= A 2 − 2 AB cos(θ ) + B 2 cos 2 (θ ) + sin 2 (θ )
= A − AB 2 cos(θ ) + B
2
2
= v 2 ( N ) − v( N )v( N )coef k + v 2 ( N − 1)
where 2 cos(θ ) = coef k
7
Les signaux DTMF
La Détection des signaux DTMF
Le standard DTMF
La détection
Basée sur la DFT
L ’algorithme de Goertzel et avantages
Choix des paramètres de Goertzel
Séquencement des tâches
Céline Chataigner
ESPEO le 12/01/99
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
___________________________________________
8
La détection des signaux DTMF
Choix des paramètres de Goertzel
k
=
f DTMF
fs
L’algorithme de Goertzel est basé sur celui de la DFT, ce qui impose
impose à
N et k d’être entier. Le calcul ne va pas s’opérer sur la fréquence
fréquence
DTMF exacte.
=> choix critique des paramètres
Céline Chataigner
ESPEO le 12/01/99
Le choix des coefficients k et N représente un compromis entre la précision sur la
fréquence à détecter et le temps de détection. Si N est trop grand, alors la précision
fréquentielle est très bonne mais le temps de calcul devient important (notamment à
cause de la phase ‘ feedback ’ qui opère N fois avant que la phase ‘ feedforward ’
puisse être exécutée).
Si la détection avait été faite à l ’aide d ’une FFT, les valeurs de N auraient dû être
multiple de deux. Mais ici la détection se fait avec l ’algorithme de Goertzel qui
n ’est pas limité pour les valeurs de N (si on le voit sous a forme d ’un filtre). On
peut donc utiliser n ’importe quelle valeur entière de N.
Les fréquences DTMF vont être référencées par la valeur de k. La fréquence
d ’échantillonnage est fixée par le téléphone à fs=8kHz, et k est donné par :
N
× f DTMF
fs
k doit être entier. Ainsi les points que l ’on va recherché ne correspondent pas
exactement à la fréquence DTMF désirée.
k=
Par exemple :
N=205
fi=697Hz
=>
kflottant = 17.861, kentier = 18 d ’où ∆k=0.139 et ∆f=5.4 Hz
fs=8kHz
9
Lesspécifications
spécificationsUIT
UIT::
Les
fréquentielles: :
••fréquentielles
f0-1.8%<<
f0-1.8%
f0-3% <<
f0-3%
detection
f0+1.8%
detection
<<f0+1.8%
nondetection
detection <<f0+3%
f0+3%
non
d’amplitude: :
••d’amplitude
twistmaximal
maximal(diffférence
(diffférenceentre
entreles
les
twist
deux‘tone’
‘tone’ààdétecter)
détecter): :55dB
dB
deux
temporelles: :
••temporelles
duréedu
dusignal
signal: :40
40ms
msminimum
minimum
durée
Minimum détectable
L’objectif est d’optimiser
les coefficients du filtre
pour maximiser l’écart entre
les deux seuils. Ceci permet
d’estimer un seuil
de détection confortable.
Maximum non détectable
interruption
24ms
ms
interruption
: :24
maximum
maximum
duréedu
dusilence
silence: :30
30ms
msminimum
minimum
durée
Céline Chataigner
ESPEO le 12/01/99
Plusieurs solutions se présentent alors :
• Exécuter l ’algorithme de Goertzel avec à chaque fois des N différents. Dans ce
cas là, le temps d ’exécution entre les différents algorithmes de Goertzel est
différent.
• Fixer N de manière à faire le minimum d ’erreur, ∆k, sur les fréquences à
rechercher. Là, le temps d ’exécution est fixe (proportionnel à N*fs), mais la
précision est moindre.
Le choix des coefficients k et N doit également respecter le standard DTMF (cf.
Annexe Recommandations Q23 et Q24) qui change suivant les pays. Par exemple,
pour le standard NTT (Nippon Telegraph & Telephon) :
•fréquencielles :
f0-1.8% < detection
f0-3%
< f0+1.8%
< non detection < f0+3%
• d’amplitude :
twist maximal (diffférence entre les deux ‘tone’ à détecter) : 5 dB
• temporelles :
durée du signal : 40 ms minimum
interruption : 24 ms maximum
durée du silence : 30 ms minimum
10
Les signaux DTMF
La Détection des signaux DTMF
Le standard DTMF
La détection
Basée sur la DFT
L ’algorithme de Goertzel et avantages
Choix des paramètres de Goertzel
Séquencement des tâches
Céline Chataigner
ESPEO le 12/01/99
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
___________________________________________
11
Frequencies from
the low group or
the high group
low
Not detected
Compute the Goertzel algorithm
1st iteration 697 Hz
2nd iteration 770 Hz
3rd iteration 852 Hz
4th iteration 941 Hz
high
Compute the Goertzel algorithm
1st iteration 1209 Hz
2nd iteration 1336 Hz
3rd iteration 1477 Hz
4th iteration 1633 Hz
detected
failed
Increment a detection counter and
check if the counter does not
exceed one since only one
frequency from the low group must
be detected.
detected
Increment a detection counter and
check if the counter does not
exceed one since only one
frequency from the low group must
be detected.
pass
failed
failed
pass
Check if the corresponding harmonic
is not present.
Check if the corresponding harmonic
is not present.
failed
pass
pass
failed
Not detected
failed
Check if reverse and forward twist is acceptable between the two selected
frequencies.
pass
Decode the DTMF digit sent
Check if the digit is a new one
No new DTMF
digit sent
No new DTMF
digit sent
Céline Chataigner
ESPEO le 12/01/99
La détection peut se faire de différentes manières… En voici un exemple :
• On choisit si on veut travailler en premier sur les fréquences ligne ou colonne et on
exécute le Goertzel correspondant. Si dans les fréquences ligne, deux fréquences ou
plus sont détectées alors le signal ne correspondra pas à un signal DTMF (idem pour
les fréquence colonne). En effet, la touche ‘ 2 ’ et ‘ 5 ’, par exemple, ne peuvent pas
avoir été enclenchées en même temps sur le ligne.
• On teste la durée du signal
• On teste l ’harmonique correspondant à la fréquence examinée. La détection de
DTMF calcule l ’amplitude carré des huit fréquences fondamentales mais aussi
l ’amplitude carré des harmoniques de ces fréquences. Cette information est utilisée
pour valider le test de manière à savoir si le signal est un réel signal DTMF. Cela va
nous permettre de discriminer un signal DTMF de la voix (puisque la voix contient
des harmoniques).
• On teste le twist entre les deux fréquences détectées
• On renvoie l ’information décodée s ’il y en a une
12

Documents pareils

decodage du dtmf

decodage du dtmf Calculer Max_high, maximum des 4 fréquences hautes, supérieur au niveau mini o Vérifier qu’il est supérieur au niveau mini o Vérifier que l’écart avec le 2ème niveau est supérieur au contraste mini...

Plus en détail