Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Olen todella suuri fani akellyirlin ohjeista luotettavasta taajuuden havaitsemisesta DSP -tekniikoiden avulla, mutta joskus hänen käyttämänsä tekniikka ei ole tarpeeksi hyvä, jos sinulla on meluisia mittauksia.
Yksi helppo korjaus puhtaamman tulon saamiseksi taajuusilmaisimelle on käyttää jonkinlaista suodatinta sen taajuuden ympärillä, jonka haluat havaita.
Valitettavasti digitaalisen suodattimen luominen ei ole helppoa, ja siihen liittyy melko paljon matematiikkaa. Joten ajattelin luoda jonkinlaisen ohjelman, joka yksinkertaistaisi tällaisten suodattimien luomista, jotta kuka tahansa voisi käyttää niitä projekteissaan syventymättä yksityiskohtiin.
Tässä Instructable -ohjelmassa aion havaita 50 Hz: n siniaallon meluisassa mittauksessa Arduino Unolla (Arduino ei todellakaan ole tarpeen).
Vaihe 1: Ongelma
Kuvittele, että mitatut syöttötiedot näyttävät yllä olevalta käyrältä - melko meluisalta.
Jos rakennamme yksinkertaisen taajuusilmaisimen, kuten akellyirlin Instructable-ohjelmassa, tulos on "-inf" tai alla olevan koodin tapauksessa: "Joo, liikaa kohinaa …"
Huomautus: Käytin melkein koko akellyirlin koodin, mutta lisäsin yläosaan rawData -taulukon, joka sisälsi meluisia mittauksia.
Alta löydät koko koodin tiedostosta "unfiltered.ino".
Vaihe 2: Ratkaisu
Koska syöttötiedot ovat meluisia, mutta tiedämme etsimämme taajuuden, voimme luoda luomani työkalun nimeltä easyFIR luoda kaistanpäästösuodattimen ja soveltaa sitä syötetietoihin, mikä johtaa paljon puhtaampaan tuloon taajuusilmaisimelle (kuva yllä).
Vaihe 3: EasyFIR
EasyFIR -työkalua on melko helppo käyttää, lataa vain GitHub -arkisto ja suorita easyFIR.py -tiedosto yhdellä näytteellä mittauksistasi (CSV -muodossa).
Jos avaat easyFIR.py -tiedoston, löydät 5 parametria (katso yllä oleva kuva), joita voit muuttaa ja joiden pitäisi muuttua sen mukaan, minkä tuloksen haluat saavuttaa. Kun olet säätänyt 5 parametria ja suorittanut python -tiedoston, näet lasketut kertoimet päätelaitteessasi. Nämä kertoimet ovat ratkaisevia seuraavassa vaiheessa!
Lisätietoja tarkasta käytöstä löytyy täältä:
Vaihe 4: Suodatus
Jos olet laskenut tarvittavat suodatuskertoimet, varsinaisen suodattimen käyttäminen taajuudenilmaisimeen on melko helppoa.
Kuten yllä olevasta kuvasta näkyy, sinun tarvitsee vain lisätä kertoimet, ApplyFilter -toiminto ja suodattaa tulomittaukset.
Alta löydät koko koodin tiedostosta "filttered.ino".
Huomaa: suuri kiitos tästä Stack Overflow Post -palvelusta loistavasta suodatinsovellusalgoritmista!
Vaihe 5: Nauti
Kuten näette, pystymmekö nyt havaitsemaan 50 Hz: n signaalin jopa meluisassa ympäristössä?
Voit vapaasti mukauttaa ideani ja koodini tarpeisiisi. Olisin erittäin kiitollinen, jos voisin sisällyttää parannuksesi!
Jos pidät työstäni, olisin todella kiitollinen, jos tuet työtäni tähtien kanssa GitHubissa!
Kiitos tuestasi!:)