DTMF toucher ton décodeur à l’aide de microprocesseur PIC Microchip (2 / 9 étapes)

Étape 2: Description de l’algorithme de traitement du Signal

Microprocesseurs de 12F683 the PIC construits au convertisseur A/D est utilisé pour échantillonner une forme d’onde audio d’entrée. Les échantillons sont analysés à l’aide de l’algorithme de Goertzel pour détecter si des 8 tons sont présents.

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.

Articles Liés

Un dé de LED à l’aide d’un PIC 16F84 (ou 16F88)

Un dé de LED à l’aide d’un PIC 16F84 (ou 16F88)

C'est une réimpression d'un projet que j'ai fait un certain nombre d'années - j'ai était le chalutage du web et découvert que d'autres avaient été rend, donc j'ai décidé de mettre le détail ici sur instructables.com - afin que d'autres puissent en pr
DIY colorant de ton cheveux avec Kool-aid

DIY colorant de ton cheveux avec Kool-aid

temporaire teindre vos cheveux avec kool aid. Fonctionne avec toutes les couleurs de cheveux (même si il fait très sombre)Étape 1: Ce que vous devez • 1 1/2 tasses d'eau•3 sucre gratuits packs d'aides cool (couleur est votre choix, je recommande de n
Lampe réveil (à l’aide de microprocesseur contrôlé gradateur)

Lampe réveil (à l’aide de microprocesseur contrôlé gradateur)

hiver frappe à la porte à nouveau en Europe.Je déteste se lever dans le noir, donc j'ai besoin d'une lampe-réveil...Maintenant les personnes normales seraient probablement toux jusqu'à l'E90, - pour un Philips Wake-Up Light.Ou obtenir un RIP-OFF pas
Arduino 12-mode Blue Box - Introduction

Arduino 12-mode Blue Box - Introduction

MISE À JOUR DU FIRMWARE ! -10/2/2015 - voir dernière étape pour plus de détailsPrésenté ici est axée sur un Arduino « Boîte bleue ». Il produit la boîte bleue « traditionnelle » tonalité de 2600 Hz et tonalités MF (multi-frequency), mais il fait bien
ROBOT AVOIDER DTMF se basant sur OBSTACLE

ROBOT AVOIDER DTMF se basant sur OBSTACLE

il est basé sur la technologie DTMF, par laquelle votre voiture répond à la basse et haute fréquence du numéro u enfoncé dans votre téléphone mobile, après avoir donné un anneau,Étape 1: Bloc diagramme Le travail principe derrière le projet est illus
Service à la clientèle IVR en utilisant DTMF

Service à la clientèle IVR en utilisant DTMF

Centre de service clientèle utilise IVR (Interactive Voice Response) répondant à la méthode via DTMF (Dual-Tone Multi-Frequency). Son simple pour obtenir le détail actuel par le biais de voix en appuyant sur le nombre sur le mobile après avoir appelé
Encodeur/générateur de bricolage Altoid DTMF !

Encodeur/générateur de bricolage Altoid DTMF !

Nous tenir pour acquis dans l'ère moderne, mais seulement quelques décennies (!), je me souviens encore très bien à l'aide de mon téléphone à cadran de composer un numéro. Dans le courant de l'école, avec l'avènement de Conférenceàtrois, notre famill
Twisted randonnée/sac à dos personnel (aka: bâton de marche)

Twisted randonnée/sac à dos personnel (aka: bâton de marche)

profondément dans les bois, une vigne se développe autour d'un jeune arbre. Que l'arbre grandit, il tente de se développer autour de la vigne. C'est à ce stade, il peut devenir un beau bâton de marche (ou personnel ou portée comme certaines personnes
Détecteur de fréquence à l’aide de PIC 12F683 processeur

Détecteur de fréquence à l’aide de PIC 12F683 processeur

ce projet décrit le matériel et j'ai développé un logiciel qui permet à un microprocesseur PIC de petite 8 bits de fonctionner comme un détecteur de fréquence unique ou un décodeur de tonalité.Un tel circuit peut être utilisé pour détecter la présenc
Arc de diddley arrière-pays - bâton de marche (pour ceux qui n’ont une guitare de grandes randonnées)

Arc de diddley arrière-pays - bâton de marche (pour ceux qui n’ont une guitare de grandes randonnées)

je voulais un instrument à cordes de prendre avec moi dans l'arrière-pays, celui qui pourrait survivre à une journée de randonnée dans le soleil ou la pluie avec agitation minime, mais qui fourniraient la musique et le plaisir autour du feu de camp à
Génération de signaux avec MATLAB. Exemple de DTMF en téléphonie

Génération de signaux avec MATLAB. Exemple de DTMF en téléphonie

En mathématiques, un signal est une fonction réelle d'une variable réelle f (t). En électronique, il représente l'évolution d'une tension (ou courant) au fil du temps et repose sur les performances de l'étage de l'amplificateur. Grâce à une mémoire t
Jar Closing Aid

Jar Closing Aid

Pot de clôture aide est un outil d'accessibilité DIY pour Fermer les pots sans endommager le couvercle ou le pot et sans la nécessité d'une haute résistance de l'utilisateur. L'aide est facile à reproduire, adapter, et qui peut être fait avec des out
Béton d’étang

Béton d’étang

l'idée de construire un étang jamais obtenu par le biais de mon esprit parce que j'ai pensé qu'une grande partie de l'espace était nécessaire (ce qui est le cas pour les plus gros mais pas les petits).  Alors quand mes parents ont décidé qu'il était
Forme en Place béton patio pavé

Forme en Place béton patio pavé

Pendant un certain temps, j'ai voulu créer un patio à l'extérieur de ma maison mais je ne voulais pas dépenser de l'argent sur les pavés patio et une dalle de béton n'a pas suffit le look que je voulais. Lors de mes recherches en ligne et à mon magas