Stap 3: Autocorrleation Code
for(i=0; i < len; i++) { sum = 0; for(k=0; k < len-i; k++) sum += (rawData[k]-128)*(rawData[k+i]-128)/256; }
De gegevens zijn in de array [rawData] . Wij aftrekken 128 van elke waarde, want het is 8 bits unsigned en we hebben ondertekend waarden nodig.
De som waarde is het resultaat van elke berekening van de autocorrelatiefunctie, dat wil zeggen elk punt van de functie. Om het geheugen besparen opslaan niet wij de output naar een matrix. We gonna werken op de individuele som waarden te vinden de eerste piek en daarom het berekenen van de periode.
De som waarden uitdragen naar worden uitgezet, krijgen we de autocorrelatiefunctie komt te staan. Vergelijking van het oorspronkelijke signaal (Zie ook afbeelding) is het duidelijk dat er periodiciteit in het originele signaal en dit duidelijk naar door de autocorrelatiefunctie voren.