INHOUDSOPGAWE:
Video: FIR -filter vir meer betroubare frekwensiedetectie: 5 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Ek is regtig 'n groot aanhanger van die instruksies van akellyirl oor betroubare frekwensiedeteksie met behulp van DSP -tegnieke, maar soms is die tegniek wat hy gebruik het nie goed genoeg as u raserige metings het nie.
'N Eenvoudige oplossing om 'n skoner insette vir die frekwensiedetektor te kry, is om 'n soort filter toe te pas om die frekwensie wat u wil opspoor.
Ongelukkig is dit nie maklik om 'n digitale filter te skep nie en is daar baie wiskunde betrokke. Daarom het ek daaraan gedink om 'n soort program te skep om die skep van sulke filters te vereenvoudig, sodat almal dit in hul projekte kan gebruik sonder om in die besonderhede te kyk.
In hierdie instruksies gaan ek 'n sinusgolf van 50Hz opspoor in 'n lawaaierige meting met 'n Arduino Uno (Arduino is nie regtig nodig nie).
Stap 1: Die probleem
Stel jou voor dat die gemete insetdata soos die kromme hierbo lyk - redelik raserig.
As ons 'n eenvoudige frekwensiedetektor bou soos die in akellyirl's Instructable, is die resultaat "-inf" of in die geval van die onderstaande kode: "Ja, te veel geraas …"
Nota: ek het omtrent al die kode van akellyirl gebruik, maar ek het 'n rawData -skikking aan die bokant bygevoeg met die lawaaierige metings.
Hieronder vind u die hele kode in 'n lêer genaamd "unfiltered.ino".
Stap 2: Die oplossing
Aangesien die insetdata raserig is, maar ons weet watter frekwensie ons soek, kan ons 'n instrument wat ek geskep het, easyFIR gebruik, om 'n Bandpass -filter te skep en dit op die invoerdata toe te pas, wat 'n baie skoner insette vir die frekwensiedetektor tot gevolg het (prent hierbo).
Stap 3: EasyFIR
Die easyFIR -instrument is redelik maklik om te gebruik; laai net die GitHub -bewaarplek af en voer die easyFIR.py -lêer uit met een voorbeeld van u metings (in CSV -formaat).
As u die easyFIR.py -lêer oopmaak, vind u 5 parameters (sien prent hierbo) wat u kan en moet verander, afhangende van die resultaat wat u wil bereik. Nadat u die 5 parameters aangepas het en die python -lêer uitgevoer het, sien u die berekende koëffisiënte in u terminale. Hierdie koëffisiënte is van kardinale belang vir die volgende stap!
Meer inligting oor die presiese gebruik kan hier gevind word:
Stap 4: Filtreer
As u nou die benodigde filterkoëffisiënte bereken het, is dit redelik maklik om die werklike lêer op die frekwensiedetektor toe te pas.
Soos u in die prent hierbo kan sien, hoef u slegs die koëffisiënte, die ApplyFilter -funksie by te voeg en dan die invoermetings te filter.
Hieronder vind u die hele kode in 'n lêer met die naam "filtered.ino".
Opmerking: baie dankie aan hierdie Stack Overflow Post vir die uitstekende filtertoepassingsalgoritme!
Stap 5: Geniet dit
Soos u kan sien, kan ons 'n 50Hz -sein opspoor, selfs in 'n raserige omgewing?
Voel asseblief vry om my idee en kode aan te pas by u behoeftes. Ek sal dit baie dankbaar wees om u verbeterings op te neem!
As u van my werk hou, sal ek dit baie waardeer as u my werk met ster op GitHub ondersteun!
Dankie vir jou ondersteuning!:)
Aanbeveel:
Slim motorfiets HUD-prototipe (draai-vir-draai-navigasie en soveel meer): 9 stappe
Slim motorfiets HUD-prototipe (draai-vir-draai-navigasie en soveel meer): Hallo! Hierdie instruksies is die verhaal van hoe ek 'n HUD-platform (Heads-Up Display) ontwerp en gebou het om op motorhelms gemonteer te word. Dit is geskryf in die konteks van die 'kaarte' -wedstryd. Ongelukkig kon ek dit nie heeltemal voltooi nie
Meer blaarslaai in minder ruimte of Groeiende blaarslaai in die ruimte, (meer of minder) .: 10 stappe
Groeiende meer sla in minder ruimte of … Groeiende blaarslaai in ruimte, (meer of minder): Dit is 'n professionele voorlegging aan die Growing Beyond Earth, Maker Contest, wat deur Instructables ingedien word. Ek kon nie meer opgewonde wees om vir die produksie van ruimtegewasse te ontwerp en my eerste Instructable te plaas nie. Om mee te begin, het die wedstryd ons gevra om
Maklike, goedkoop en betroubare aanraaksensor met slegs 3 dele: 3 stappe
Maklike, goedkoop en betroubare aanraaksensor met slegs drie dele: dit is baie handig om allerhande elektroniese toestelle met u vinger te beheer. In hierdie instruksies sal ek jou wys hoe om 'n maklike, maar kragtige aanraaksensor te bou wat foutloos werk. Al wat u nodig het, is 'n standaard transistor en twee
Betroubare, veilige, aanpasbare SMS -afstandsbediening (Arduino/pfodApp) - geen kodering nodig nie: 4 stappe
Betroubare, veilige, aanpasbare SMS -afstandsbediening (Arduino/pfodApp) - geen kodering nodig nie: Werk op 6 Julie 2018 op: 'n 3G/2G -weergawe van hierdie projek, met behulp van SIM5320, is hier beskikbaar Update: 19 Mei 2015: Gebruik die pfodParser -biblioteek weergawe 2.5 of hoër. Dit los 'n gerapporteerde probleem op omdat dit nie genoeg tyd toelaat om die skild aan te sluit
Kantelversterker vir kitaarversterker vir volledige of halwe stapels met aparte koppe en meer: 5 stappe
Gitaarversterker -kantelstaander vir volledige of halwe stapels met aparte koppe en meer: ek weet ek is mal, maar ek is goed daarmee. Ek het dit gebou om 'n paar teorieë te toets. Die ruk van die plaaslike musiekwinkel het my nie toegelaat om sy kosbare nuwe Marshall -stapels hierop te plaas nie, en my weggejaag. Ek kan hom nie kwalik neem dat hy so klein is nie