Innehållsförteckning:
Video: FIR -filtrering för mer pålitlig frekvensdetektering: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Jag är ett riktigt stort fan av akellyirls instruerbara om pålitlig frekvensdetektering med hjälp av DSP -tekniker, men ibland är tekniken som han använde inte tillräckligt bra om du har bullriga mätningar.
En enkel lösning för att få en renare ingång för frekvensdetektorn är att applicera något slags filter kring frekvensen du vill upptäcka.
Tyvärr är det inte lätt att skapa ett digitalt filter och det är ganska mycket matte inblandat. Så jag tänkte skapa ett slags program för att förenkla skapandet av sådana filter, så att alla kan använda dem i sina projekt utan att gräva i detaljerna.
I denna instruerbara, jag kommer att upptäcka en 50Hz sinusvåg i en bullrig mätning med en Arduino Uno (Arduino är inte riktigt nödvändigt).
Steg 1: Problemet
Tänk dig att de uppmätta inmatningsdata ser ut som kurvan ovan - ganska bullrigt.
Om vi konstruerar en enkel frekvensdetektor som den i akellyirl's Instructable är resultatet "-inf" eller i fallet med koden nedan: "Ja, för mycket brus …"
Obs: Jag använde i stort sett all akellyirls kod men lade till en rawData -array högst upp som innehåller de bullriga mätningarna.
Nedan hittar du hela koden i en fil som heter "unfiltered.ino".
Steg 2: Lösningen
Eftersom indata är bullriga men vi vet vilken frekvens vi letar efter kan vi använda ett verktyg som jag skapade kallat easyFIR för att skapa ett Bandpass -filter och tillämpa det på ingångsdata, vilket resulterar i en mycket renare ingång för frekvensdetektorn (bilden ovan).
Steg 3: EasyFIR
EasyFIR -verktyget är ganska enkelt att använda, ladda bara ner GitHub -förvaret och kör filen easyFIR.py med ett exempel på dina mätningar (i CSV -format).
Om du öppnar filen easyFIR.py hittar du 5 parametrar (se bilden ovan) du kan och bör ändra beroende på det resultat du vill uppnå. När du har justerat de 5 parametrarna och kört pythonfilen ser du de beräknade koefficienterna i din terminal. Dessa koefficienter är avgörande för nästa steg!
Mer information om den exakta användningen hittar du här:
Steg 4: Filtrering
Om du nu har beräknat de nödvändiga filterkoefficienterna är det ganska enkelt att applicera den faktiska filen på frekvensdetektorn.
Som du kan se på bilden ovan behöver du bara lägga till koefficienterna, ApplyFilter -funktionen och sedan filtrera inmatningsmätningarna.
Nedan hittar du hela koden i en fil som heter "filtered.ino".
Obs: stort tack till denna Stack Overflow Post för den fantastiska filterapplikationsalgoritmen!
Steg 5: Njut
Som ni ser kan vi nu upptäcka en 50Hz -signal även i en bullrig miljö?
Du får gärna anpassa min idé och kod till dina behov. Jag skulle vara mycket tacksam för att inkludera dina förbättringar!
Om du gillar mitt arbete, skulle jag verkligen uppskatta om du stöder mitt arbete med stjärna på GitHub!
Tack för ditt stöd!:)
Rekommenderad:
CovBot - en WhatsApp -baserad chatbot för COVID 19 -information och mer: 7 steg
CovBot - en WhatsApp -baserad chatbot för COVID 19 Info & mer: CoVbot är en enkel och intuitiv Whatsapp -baserad chatbot. Botens huvudsakliga funktion är: Den kan ge dig den senaste statusen för COVID-19 i det land du väljer på ett enkelt och intuitivt sätt. Dessutom kan boten föreslå roliga aktiviteter att göra AT H
Odla mer sallad på mindre utrymme eller växa sallad i rymden, (mer eller mindre) .: 10 steg
Växande mer sallad på mindre utrymme eller … växande sallad i rymden, (mer eller mindre) .: Detta är en professionell underkastelse till Growing Beyond Earth, Maker Contest, som skickas in via Instructables. Jag kunde inte vara mer upphetsad över att planera för produktion av rymdgrödor och lägga upp min första instruktör. För att börja bad tävlingen oss att
Enkel, billig och pålitlig beröringssensor med endast 3 delar: 3 steg
Enkel, billig och pålitlig beröringssensor med endast 3 delar: Styrning av alla typer av elektroniska enheter med fingret kan vara ganska användbar. I denna instruerbara kommer jag att visa dig hur man bygger en enkel men kraftfull pekssensor som fungerar felfritt. Allt du behöver är en standardtransistor och två
Pålitlig, säker, anpassningsbar SMS -fjärrkontroll (Arduino/pfodApp) - Ingen kodning krävs: 4 steg
Pålitlig, säker, anpassningsbar SMS -fjärrkontroll (Arduino/pfodApp) - Ingen kodning krävs: Uppdatering 6 juli 2018: En 3G/2G -version av detta projekt, med SIM5320, finns här Uppdatering: 19 maj 2015: Använd pfodParser -biblioteket Version 2.5 eller högre. Det löser ett rapporterat problem att inte tillåta tillräckligt med tid för skölden att ansluta till
Förstärkare för gitarrförstärkare för hel- eller halvstack med separata huvuden och mer: 5 steg
Gitarrförstärkare Tilt -stativ för hel- eller halvstaplar med separata huvuden och mer.: Jag vet att jag är galen, men jag är okej med det. Jag byggde detta för att testa några teorier. Jocken på den lokala musikbutiken skulle inte låta mig lägga sina dyrbara nya Marshall -stackar på detta och sprang iväg mig. Jag kan inte riktigt skylla på honom för att han är så småsinnig