Frekvens detektor PIC 12F683 Processor med (7 / 12 steg)
Steg 7: Tillval: algoritm Detaljer
Algoritmen fungerar som ett mycket smalt band pass filter. Det ger en mycket skarp reaktion på frekvenser inom frekvensbandet pass, och en mycket lägre svar för frekvenser utanför passera bandet. De små detaljerna av Goertzel algoritmen kommer inte att omfattas här.
Algoritmen slingan tar prov den indata med mikroprocessor inbyggd A/D-omvandlare. De nödvändiga matematiska operationer utförs i tiden mellan på varandra följande prover.
De olika variabler som används i algoritmen definieras enligt följande:
Xn_sample = senaste provet från A/D-omvandlare
Xn = senaste provet från A/D omvandlare multiplicerat med hjälp av funktionen.
Y0 = produktionsvärde för närvarande positionsbestämning.
Y1 = tidigare beräknade produktionsvärde. (Produktionsvärde från den föregående iterationen av slingan).
Y2 = produktionsvärde från iteration iteration innan l tidigare iteration av loopen.
Figuren nedan visar en lista över de variabler som används i algoritm.
Se flödesschema i bifogade PDF-filen att se hur Goertzel algoritm portion av programmet körs på processorn. När algoritmen har processer alla prover (de bifogade filerna *.hex och *.asm använda 200 prov), beräknas de verkliga och imaginära komponenterna av resultaten. Den reella och imaginära delen används sedan för att beräkna omfattningen. Omfattningen är ett mått på hur mål ofta är närvarande i uppgifterna som ingick i urvalet. Omfattningen jämförs mot tröskeln. Om värdet är större än tröskelvärdet, frekvensen anses upptäckas och produktionen ligger högt. Om omfattningen är lägre än tröskelvärdet, sätts utdata låg.
Skärpan i filtret svaret kontra frekvensen är proportionell mot antalet prover som tagits. Svaret av algoritmen måste vara tillräckligt skarp för att det svarar på target frekvens men producerar mycket lägre svar för frekvenser utanför målet. Ett värde av 200 prover konstaterades för att producera ett tillräckligt smalt svar i experimenterande.
Fönstersystem funktion
Efter varje prov erhålls från A/D-omvandlare, är det första multiplicerad med en fönster innan det används i de efterföljande beräkningarna. Se bilderna nedan visar Frekvensgången av algoritmen att se påverkar av fönstret. Omfattningen av svaret är lägre och det svaret är bredare när fönstret används, men krusningar elimineras nästan, underlättar fastställandet av huruvida målet frekvensen är närvarande.
Det finns många typer av windows som kan tillämpas i digital signalbehandling. Här kallas ett Hamming fönster. Formen på fönstret hamming visas i en bild nedan. Tomten nedan visar värdet med hjälp av funktionen som används för var och en av tar prov i subrutinen.