Arduino Pitch upptäckt algoritm (med AMDF) (3 / 8 steg)
Steg 3: simuleringar
Bilderna ovan visar några av de analysera bara jag gjorde i matta lab. Ledsen för att inte ge fullt ut. Men du kan se att jag gjorde några simuleringar av algoritmen innan du implementerar algoritmen. Detta visade åtminstone mig vad algoritmen skulle göra och vad förväntas returnerar jag kunde få.
Första bilden:
Gjorde bara en enkel sinusvåg. Märka dip på den andra harmoniskt! Jag koden inte en harmonisk detektor i koden ännu, men det behövs!
Andra bilden:
Körde ett test med en kvasi harmonisk ton. Jag använde en metod som kallas klippning att få algoritmen att ge tydliga distinktioner i beräkningar. Klippning är en form av "funktionen detection" och används ofta i autokorrelation algoritmer och är användbart eftersom kvasi harmoniska toner har sådan funktion om inte gör det inte och amplituden modulerar ständigt. Men i det här fallet fiol modulera inte så mycket från ram till ram. Det har ännu inte genomförts i koden. Försöker hitta ett effektivt sätt att genomföra peak detection och relativa gap skillnaden för att ta bort prover under sådan gräns.
Tredje bilden:
Försökte se hur dåligt algoritmen bröt samman när klippning var en konstant snarare än en andel av en beräknad topp.
Fjärde bilden:
Re sprang de första och andra bilderna utan klippning på 8 bitar precision nummer från ADC och 16-bitars tillägg belopp. Jag gjorde 7 bitars tal precision också men ta inte en bild.