Étape 2: Description de l’algorithme de traitement du Signal
L’algorithme de Goertzel est un algorithme qui est utilisé pour détecter une seule fréquence de traitement du signal. Il agit comme un filtre passe-bande très étroite. Il produit une réponse très forte aux fréquences de la bande passante et une réponse beaucoup plus faible pour les fréquences à l’extérieur de la bande passante.
Dans mon implémentation de l’algorithme, les échantillons sont prélevés à un taux de 4 fois la fréquence pour être détectée. En utilisant un taux d’échantillonnage de 4 fois la cible fréquence rend coefficients utilisés dans l’algorithme être égal à 1 ou 0. Ceci élimine la nécessité d’effectuer une multiplication complexe et beaucoup de temps sur une micro de 8 bits. Je n’ai pas inclus tous les détails de mathématiques de l’algorithme ici, mais une recherche Google va produire des articles sur le sujet si vous êtes intéressé à en apprendre plus sur l’algorithme lui-même.
En raison de la restriction que la fréquence d’échantillonnage doit être 4 fois la fréquence de la cible, le taux d’échantillonnage requis sera différent pour chacun des 8 tons qui sont utilisés pour DTMF. Ainsi, l’algorithme doit être exécutée une fois pour chacun des 8 fréquences. Cela signifie qu’il faut un ensemble distinct d’échantillons pour chaque fréquence d’intérêt, comme chaque fréquence sera testé à un taux d’échantillonnage différent.
La netteté de la réponse du filtre par rapport à la fréquence est proportionnelle au nombre d’échantillons prélevés. La réponse de l’algorithme doit être assez forte pour qu’elle répond à la fréquence de la cible, mais ne répond pas à l’une des 7 autres fréquences. Une valeur de 120 échantillons a été trouvée pour produire une réponse raisonnablement étroite de l’expérimentation. Il y a bien sûr un compromis entre le nombre d’échantillons et de la durée d’exécution. Afin de détecter les tonalités courtes, le temps d’exécution devrait être aussi court que possible. Mais, pour apporter une réponse restreinte le nombre d’échantillons doit être plus grande, ayant pour résultat un plus long délai d’exécution. Le nombre d’échantillons devient le limitant facteur dans la rubrique court d’un ton peut être détectée.
Une fois que l’algorithme a traité 120 échantillons, il affiche une valeur. L’ampleur de cette valeur est proportionnelle à l’amplitude de la fréquence d’intérêt. Cette valeur qui en résulte est comparée à un seuil pour déterminer si la fréquence cible est présent.
Une fois que l’algorithme a été exécutée pour tous les 8 fréquences, le microprocesseur exécute la logique des résultats pour déterminer si une paire DTMF valide est présente. Une paire DTMF valide est réputée exister seulement si 1 rang end freq et 1 col freq est détectée. D’autres combinaisons sont considérés comme non valables.
Le graphique montre la réponse réelle mesurée à l’aide de cet algorithme en cours d’exécution sur un PIC 12F683. Le graphique montre que la réponse en fréquence de tout 8 fois l’algorithme est exécutée. L’axe des x est la fréquence en Hz. L’axe vertical est la valeur générée par l’algorithme. L’entrée est une sinusoïde de 1V, balayée de 600Hz et 1800Hz. Notez que la largeur de la réponse est plus large pour les filtres de fréquence plus élevées. Cela est dû au fait que la largeur de la réponse est proportionnelle à la fréquence d’échantillonnage, divisée par le nombre d’échantillons prélevés. Dans cette implémentation de l’algorithme, la fréquence d’échantillonnage est toujours quatre fois la fréquence de la cible, à simplement et accélérer le calcul. Toutefois, le même nombre d’échantillons est utilisé pour chacune des fréquences 8 cible. Le rendraient la largeur de la réponse même à chacun nécessiterait en utilisant la même fréquence d’échantillonnage pour chacun, ce qui impliquerait plus mathématiques de votre temps, ou il faudrait que le nombre d’échantillons prélevés à des fréquences plus élevées soit supérieure, qui pourrait allonger la durée d’exécution. Si vous utilisiez un microprocesseur avec véritable fonctionnalité DSP, le calcul supplémentaire peut être effectué très rapidement et il serait donc quelque chose qui vous comprendrait très probablement.
Malgré les différences dans la largeur de la réponse, l’opération a été très robuste à détecter les tonalités, même en présence de bruit important.