Algorithme de détection de Pitch Arduino (à l’aide de AMDF) (1 / 8 étapes)

Étape 1: L’algorithme

Crédit :

Je ne sais pas qui a inventé l’algorithme, mais de ce que google me dit un statisticien britannique par le nom de George Udny Yule a publié un document à la fin du XIXe siècle en ce qui concerne l’algorithme de l’autocorrélation partielle. En outre il y un tas d’articles publiés par l’IEEE à partir les améliorations citant du début des années 1900 à la méthode pour utilisent en électronique.

AMDF - Voici le maigre :

AMDF (N) = 1/N * somme (j’ai = 0 -> N) de (| ENTREES - x(i+N) |)

AMDF (fonction d’autocorrélation grandeur différence) est en fait tracer des lignes qui se chevauchent sur une fenêtre donnée d’échantillons. Voici ce qui se passe essentiellement :

1.) les données se rassemblent pour former une fenêtre de N * 2 échantillons à l’échelle.

2.) coupe la fenêtre en deux.

3.) au premier semestre sur le dessus de la seconde moitié de superposition.

4.) prendre la valeur absolue de la différence de la zone entre les deux formes d’onde et résumer.

5.) diviser la somme par le nombre d’échantillons.

6.) Répétez les étapes 2 à 6 pour un balayage complet de tous les retards N susceptible de se produire ou être présentes dans une forme d’onde.

7.) si un ton quasi harmonique est présent, l’AMDF sera sortie un faible nombre à ou proche de 0 à certain retard N.

8.) diviser la fréquence d’échantillonnage de votre retard N et vous avez la fréquence plus probable de la tonalité quasi harmonique.

Une grosse note cependant ! L’AMDF ne fonctionne pas sur plus d’un ton à la fois. Vous ne serez pas en mesure de différencier les doubles cordes, plusieurs notes grattés, etc..

Autres algorithmes:

Pour autant que ma recherche m’a pris, il y a quelques autre terrain là-bas des algorithmes de détection. De toute évidence plus, mais je n’a pas chercher trop largement. Je ne les couvrir, mais je les citerai entendre pour vos recherches plus poussées si vous le souhaitez.

Bien sûr, la méthode originale de l’autocorrélation est là-bas qui constitue le fondement de l’AMDF. L’avantage de l’AMDF sur base autocorrélation est que l’AMDF a un tas de soustractions et additions avec une division (qui peut être codée dans une multiplication). Pour l’Arduino Uno qui est natif de 8 bits architecture et n’a pas division de matériel ou de la multiplication, c’est un plus absolu.

Un autre algorithme de détection de hauteur est l’algorithme de Yin. Cet algorithme bénéficie d’un taux d’erreur très faible pourcentage avec chaque étape de l’algorithme décrivant son efficacité afin que vous pouvez implémenter autant ou aussi peu que vous le souhaitez. De témoignages, j’ai lu qu'il n’est pas très par le calcul intensif qui est génial ! Alors oui... Pourquoi je n’ai pas obtenu il y a parce que l’algorithme de Yin a apparemment un brevet sur son utilisation. En outre, si vous recherchez autour, quelqu'un a déjà compilé le code source pour vous en C afin que vous pouvez jouer avec elle. Il y a un article publié sur l’algorithme de Yin, des choses très intéressantes.

Voici le Code Source de Yin, si vous voulez jeter un oeil!: http://mroy.chez-alice.fr/yin/index.html

Voici l’article publié sur l’algorithme : http://recherche.ircam.fr/equipes/pcm/cheveign/pss/2002_JASA_YIN.pdf

Articles Liés

Commander une carte Arduino à l’aide d’une télécommande infrarouge

Commander une carte Arduino à l’aide d’une télécommande infrarouge

I-IntroductionBonjour à tous, mon nom est Noreddine Kessa, je suis un passionné de l'électronique.  Je me suis amusé ce week-end à jouer avec mon nouveau jouet, Kit Arduino ATmega328 bricolage que j'ai eu sur eBay, et je serais ravi de partager la jo
Application mobile pour surveiller et contrôle Arduino, à l’aide de kito.io plate-forme IOT

Application mobile pour surveiller et contrôle Arduino, à l’aide de kito.io plate-forme IOT

Surveillez et contrôlez votre Arduino depuis votre Mobile App de kito.J'ai développé une plate-forme d'Ito pour aider DIY Makers qui ne vient que pas besoin de connaître de Xcode, Android, JavaScript autrement que savent écrire des Sketches de l'Ardu
Comment lire une carte arduino à l’aide de LabVIEW

Comment lire une carte arduino à l’aide de LabVIEW

Cette vidéo montre comment lire une carte Arduino à l'aide de LabVIEW. LabVIEW possède une excellente interface qui le rend facile à enregistrer des données provenant d'une carte Arduino. Un des défis plus importants lorsque vous utilisez une carte A
Envoyer les données du capteur (DHT11 & BMP180) à ThingSpeak avec un Arduino, à l’aide de ENC28J60 Ethercard

Envoyer les données du capteur (DHT11 & BMP180) à ThingSpeak avec un Arduino, à l’aide de ENC28J60 Ethercard

Remarque : Cette instructable est pour les vieux ENC26J60 Ethershield et ethercard. Si vous avez le WIZ5100 moderne basé Ethernetshield ou un ESP8266 aller visiter mes autres instructable que je mentionne ci-dessousEnviron un an et demi que j'ai publ
DIY aveugles Smart collent Arduino à l’aide de

DIY aveugles Smart collent Arduino à l’aide de

Salut, amis.Comment vas-tu?J'espère que vous êtes bien !Aujourd'hui dans ce instructable nous allons faire un bâton d'aveugle intelligent pour les personnes ayant une déficience visuelle.Avez-vous remarqué les personnes aveugles ?Leur vie est pleine
Détection par capteur Arduino et des flammes de feu

Détection par capteur Arduino et des flammes de feu

Détecteur de flamme est interfacé à arduino pour détecter les flammes. Conduit et buzzer sont interfacées à arduino pour indiquer la flamme.Composants de matériel requis:-1) détecteur (sortie analogique)Arduino 2)Conseil de pain 3)4) LEDAvertisseur s
Tutoriel sur la façon de faire un système de détection de fumée à l’aide d’Intel Galileo Gen2.

Tutoriel sur la façon de faire un système de détection de fumée à l’aide d’Intel Galileo Gen2.

Dans ce projet, nous irons sur comment construire un détecteur de fuméecircuit d'une carte Intel Galileo Gen2 parmi un peu plus d'appareils.Nous allons utiliser le détecteur de fumée MQ2 en l'espèce parce qu'il est judicieux de gaz de fumée et inflam
Horloge binaire Arduino à l’aide de la matrice de LED

Horloge binaire Arduino à l’aide de la matrice de LED

Ce site dispose de nombreux postes fines décrivant la construction d'horloges binaires. Je suis terriblement fragile, cependant et ont du mal avec toute soudure. Je voulais donc faire mine d'une matrice de LED contrôlé MAX7219 8 x 8.Étape 1: Lecture
Traçage des données en temps réel de Arduino à l’aide de Python (matplotlib)

Traçage des données en temps réel de Arduino à l’aide de Python (matplotlib)

Arduino est fantastique comme un intermédiaire entre votre ordinateur et d'un circuit électronique brut. À l'aide de l'interface série, vous pouvez récupérer des informations provenant de capteurs attachés à votre Arduino. (Vous pouvez également envo
Traçage et graphiques des données actives de Arduino à l’aide de la puissance de Python

Traçage et graphiques des données actives de Arduino à l’aide de la puissance de Python

Je vais vous montrer comment prendre vos projets Arduino au niveau suivant en ayant l'Arduino à interagir avec le langage de programmation Python. Python est un logiciel gratuit, que vous pouvez télécharger. Puisque vous avez déjà appris les rudiment
Comment contrôler la carte arduino à l’aide d’un téléphone android et un module bluetooth

Comment contrôler la carte arduino à l’aide d’un téléphone android et un module bluetooth

dans ce tutoriel, vous apprendrez comment utiliser un module bluetooth et inventeur app du MIT pour créer une liaison série sans fil entre un téléphone android et une carte arduino.Voici une courte vidéo montrant un exemple d'application que j'ai cré
Météo boîte ARDUINO à l’aide de ~ le plus facile

Météo boîte ARDUINO à l’aide de ~ le plus facile

Comment ça marche ?Vérifier la température autour de vous avec ce dispositif intelligent !Pour visiter des projets de Intresting plus : www.miymakers.comFacebook : www.facebook.com/miymakersÉtape 1: Comment ça marche ?Comment ça marche ?Le DHT11 est
Affichage de mesure de température sur 16 x 2 LCD avec réglage de la température supérieure et limite inférieure pour Arduino à l’aide de mise en garde

Affichage de mesure de température sur 16 x 2 LCD avec réglage de la température supérieure et limite inférieure pour Arduino à l’aide de mise en garde

Bonjour à tous, voici mon premier projet avec Arduino. Dans ce projet, je vais vous montrer comment faire pour mesurer la température et l'afficher sur un écran LCD 16 x 2 en utilisant Arduino et nous pouvons utiliser le bouton 2 pour choisir ce que
Arduino à l’aide du Module Rf NRF24L01

Arduino à l’aide du Module Rf NRF24L01

Je vais discuter de l'utilisation du module émetteur-récepteur NRF24L01 des modèles couramment utilisés dans les communications sans fil.Vous pouvez l'utiliser facilement à votre utilisation de ce module est très simple et très bonne gamme de projets