FIR -suodatus luotettavampaa taajuuden havaitsemista varten: 5 vaihetta
FIR -suodatus luotettavampaa taajuuden havaitsemista varten: 5 vaihetta
Anonim
FIR -suodatus takaa luotettavamman taajuuden havaitsemisen
FIR -suodatus takaa luotettavamman taajuuden havaitsemisen

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

Ongelma
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

Ratkaisu
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
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

Suodatus
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

Nauttia
Nauttia

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!:)