Arduino Pitch detectie algoritme (AMDF) (1 / 8 stap)

Stap 1: Het algoritme


Krediet:

Ik ben niet zeker wie de uitvinder van het algoritme, maar van wat google vertelt me een Britse statisticus door de naam van George Udny Yule had publiceerde een artikel in de late 1800 's met betrekking tot gedeeltelijke autocorrelatie algoritme. Bovendien er een bos van papers gepubliceerd door de IEEE vanaf de vroege 1900 's citeren verbeteringen aan de methode voor gebruik in elektronica.

AMDF - hier is de magere:

AMDF (N) = 1/N * som (ik = 0 -> N) van (| x(i) - x(i+N) |)

AMDF (de functie van de verschil van de magnitude van de autocorrelatie) is in feite de overlappende lijnen overtrekken op een gegeven venster van monsters. Hier is wat er in feite gebeurt:

1.) verzamelen gegevens vormen een venster van N * 2 monsters wide.

2.) knip het venster doormidden.

3.) de eerste helft over de bovenkant van de tweede helft overlay.

4.) nemen de absolute waarde van het verschil in het gebied tussen de twee golfvormen en samengevat.

5.) verdeel de som van het aantal monsters.

6.) herhaal de stappen 2 tot 6 voor een volledige zwaai van alle vertragingen N die u verwacht te voorkomen of aanwezig zijn in een golfvorm.

7.) als een quasi-harmonische Toon aanwezig is, de AMDF zal output van een laag aantal op of dicht bij 0 bij enige vertraging N.

8.) verdeel de samplefrequentie door uw vertraging N, en u hebt de meest waarschijnlijke frequentie van de quasi-harmonische Toon.

Een grote Let wel! De AMDF werkt niet op meer dan één Toon tegelijkertijd. U zal niet zitten kundig voor onderscheid maken tussen dubbele stopt, meerdere tokkelde notities, enz.

Andere algoritmen:

Voor zover mijn onderzoek heeft genomen mij, zijn er een paar van de andere toonhoogte detectie algoritmen daar. Natuurlijk meer, maar ik niet ook uitgebreid zoeken. Ik zal niet betrekking hebben op hen, maar ik noem ze horen voor uw verdere onderzoek als je daarvoor kiezen.

Natuurlijk, is de originele methode van de autocorrelatie daar de basis van AMDF. Het voordeel van AMDF over fundamentele autocorrelatie is dat de AMDF een bos van weglatingen en aanvullingen met één divisie heeft (die kan worden gecodeerd in een vermenigvuldiging). Voor de Arduino Uno die is native 8 bit architectuur en heeft geen hardware afdeling of vermenigvuldiging, is dit een absoluut pluspunt.

Een andere toonhoogte detectie algoritme is het Yin-algoritme. Dit algoritme beschikt over een zeer laag percentage foutenpercentage met elke stap van het algoritme detaillering van de doeltreffendheid ervan, zodat u kunt zo veel of zo weinig als u wilt implementeren. Uit getuigenissen heb ik gelezen dat het is niet zeer computationeel intensief dat is geweldig! Dus ja... Waarom ik niet heb er is omdat het Yin-algoritme blijkbaar een patent op het gebruik ervan heeft. Bovendien, als u rond zoekt, heeft iemand reeds de broncode voor u samengesteld in C zodat je met het spelen kunt. Er is een gepubliceerde document van het Yin-algoritme, ook zeer interessante dingen.

Hier is de broncode Yin, als je wilt om een kijkje te nemen!: http://mroy.chez-alice.fr/yin/index.html

Hier is de gepubliceerde papier op de algoritme: http://recherche.ircam.fr/equipes/pcm/cheveign/pss/2002_JASA_YIN.pdf

Gerelateerde Artikelen

Arduino frequentie detectie

Arduino frequentie detectie

Als een vervolg op de Arduino Audio Input tutorial die ik vorige week gepost, schreef ik een schets die analyseert een signaal binnenkomt de analoge ingang van de Arduino en bepaalt de frequentie. De code maakt gebruik van een sampling rate van 38.5k
Arduino Motion detectie eenvoudig project

Arduino Motion detectie eenvoudig project

Dit is een erg basic tutorial voor Arduino beginners, we wilden het simpel houden en naar het punt, het gebruik van PIR detectie bewegingssensoren en hoe u kunt besturen LED die gebaseerd is op de sensor uitvoergegevens.en zo simpel gezegd, de belang
Arduino Guitar Tuner

Arduino Guitar Tuner

Bouw je eigen elektrische gitaar tuner met behulp van de Arduino! Ik besloot om dit te maken want ik wilde om te experimenteren met de audio-invoer en frequentie detectie. Ik gebruikte Amanda Ghassaei de methode voor de detectie van Arduino frequenti
Betrouwbare frequentie detectie met DSP technieken

Betrouwbare frequentie detectie met DSP technieken

nauwkeurige detectie van frequentie is belangrijk voor vele projecten zoals gitaar/Piano-Tuners, trillingen Analyzers, tekeer beeldschermen, MEMs Sensor analyse en laboratoriuminstrumenten.Er zijn vele mooie voorbeelden van projecten die proberen op
Real Time ' Face-Tracking Robot met Arduino en Matlab

Real Time ' Face-Tracking Robot met Arduino en Matlab

Real time ' face-tracking verwijst naar de taak van het opsporen van menselijke gezichten in een video-stream en bijhouden van de gedetecteerde of herkende gezichten. Er zijn tegenwoordig veel echte wereld toepassingen van gezichtsherkenning en ander
Arduino Pocket Lightning Detector

Arduino Pocket Lightning Detector

Wij allen genieten van werken en buiten spelen. Maar ik denk dat iedereen het ermee eens dat door bliksem terwijl je plezier buiten uitdagend krijgen getroffen... niet leuk!OK genoeg met de leuke intro...Dit project kwam tot stand toen, terwijl ik wa
Pad van de Arduino Synth DIY 4 x 4

Pad van de Arduino Synth DIY 4 x 4

Dit project neemt een Arduino Uno en tal van andere onderdelen en hen verandert in een synth-pad dat kan een verscheidenheid van verschillende tonen spelen, opnemen die tonen en spelen ze terug en leren een gebruiker hoe om nieuwe muziek te spelen.St
Automatische geheime bibliotheek deur

Automatische geheime bibliotheek deur

Ik heb altijd al wilde hebben een geheime boekenplank deur. Wie zou niet? Dus toen ik klaar mijn zolder was, ik had de kans om te bouwen van een aangepaste boekenplank deur die opent en sluit door te schuiven in een ruimte achter de muur, waaruit mij
Contactloze AC detector

Contactloze AC detector

Dit instructable idee was als een technische uitdaging: probeer te detecteren van de aanwezigheid van een AC live wire, zonder contact en zonder stroom die. De schoonheid van het is dat u enkel een MCU (hier arduino nano), een draad, twee weerstanden
Ouderenzorg Monitor (Intel IoT)

Ouderenzorg Monitor (Intel IoT)

OverzichtDit is een Instructable voor een controle en het attenderen van apparaat voor iemand zoals een bejaarde die zich op hun eigen tijde tijdens de dag of de nacht en die mogelijk een risico voor het vallen of wellicht wat hulp gedurende die tijd
Self Balancing ondersteboven slinger

Self Balancing ondersteboven slinger

Dit is mijn poging om de omgekeerde slinger balanceren op een kar met twee wielen chassis. Ik had gezien de anderen hier en werd geïnspireerd om te proberen mijn eigen versie. De Arduino is heerlijk eenvoudig te programmeren en u kunt oprapen het in
Mobiele vaccin Monitor (Intel IoT)

Mobiele vaccin Monitor (Intel IoT)

Overzicht van het project:Dit is vaak voor onder ontwikkelde (N.Africa) en ontwikkelende landen (zoals India) waar de vaccins opslagomgeving (temperatuur) bijhouden een groot probleem is. Wanneer het milieu is niet optimaal (temperatuur is niet binne
EL Wire Lightsuit

EL Wire Lightsuit

Elektroluminescente Wire is zeer interessant. Terwijl het niet bijzonder goed, in een donkere kamer fotograferen, is het effect heel briljant. Heb ik besloten om een Arduino gecontroleerd licht pak met een bijgevoegde helm. De hier geschetste methode
Slim draagbare IOT vaccin

Slim draagbare IOT vaccin

Smart vaccin Monitor met IOTProbleemstelling: dit project is van toepassing op onder ontwikkelde als minder ontwikkelde landen waar de vaccins opslagomgeving (temperatuur) bijhouden een groot probleem is. Wanneer het milieu is niet optimaal (temperat