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
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...