Stap 7: Optioneel: algoritme Details
Het algoritme fungeert als een zeer smalle band pass filter. Het produceert een zeer scherpe reactie op frequenties binnen de pass-band, en een veel lagere reactie voor frequenties buiten de pass-band. De kleinste details van het algoritme van de Goertzel zal niet hier worden behandeld.
De algoritme lus monsters de ingang met de microprocessor gebouwd in A/D converter. De nodige wiskundige bewerkingen worden uitgevoerd in de periode tussen opeenvolgende monsters.
De verschillende variabelen in het algoritme gebruikt worden als volgt gedefinieerd:
Xn_sample = de laatste monster van de A/D converter
Xn = het laatste monster van de A/D converter vermenigvuldigd met de functie van het venster.
Y0 = de waarde van de output momenteel wordt berekend.
Y1 = de eerder berekende output waarde. (De output waarde uit de vorige iteratie van de lus).
Y2 = de waarde van de output van de iteratie de iteratie voordat de l vorige iteratie van de lus.
De onderstaande figuur toont een lijst van de variabelen die worden gebruikt in het algoritme.
Verwijzen naar het stroomschema in de bijgevoegde PDF om te zien hoe de Goertzel algoritme gedeelte van het programma op de processor wordt uitgevoerd. Zodra het algoritme heeft processen alle monsters (de bestandsbijlagen op het gebied van *.hex en *.asm gebruik 200 monsters), worden de reële en imaginaire componenten van de resultaten berekend. De reële en imaginaire gedeelten worden vervolgens gebruikt voor het berekenen van de grootte. De omvang is dat een maatregel van de frequentie van de doelgroep is aanwezig in de steekproef opgenomen gegevens. De omvang wordt vervolgens vergeleken met de drempel. Als de waarde groter dan de drempelwaarde is, wordt beschouwd als de frequentie worden opgespoord, en de uitgang hoog is ingesteld. Als de omvang lager dan de drempel is, is de uitgang laag ingesteld.
De scherpte van de filter reactie ten opzichte van frequentie is evenredig aan het aantal genomen monsters. Het antwoord van het algoritme moet scherp genoeg dat het reageert op de frequentie van de doelgroep, maar veel lagere reactie voor frequenties buiten de doelstelling produceert. Een waarde van 200 monsters bleek te produceren een redelijk smal reactie in experimenten.
Windowing functie
Na elk monster wordt verkregen met de A/D converter, is het eerst vermenigvuldigd met de waarde van een venster alvorens wordt gebruikt in de latere berekeningen. Verwijzen naar de foto's hieronder tonen de frequentierespons van het algoritme om te zien van de gevolgen van het venster. De omvang van de reactie is lager en de breedte van de respons is groter wanneer het venster wordt gebruikt, maar rimpelingen worden bijna geëlimineerd, waardoor de bepaling van het of de frequentie van doel aanwezig is makkelijker.
Er zijn vele types van windows die kunnen worden toegepast in digitale signaalverwerking. Dit heet een Hamming-venster. De vorm van de hamming-venster wordt weergegeven in een afbeelding hieronder. De plot hieronder toont de waarde van het venster-functie die wordt gebruikt voor elk van de monsters in de subroutine.