Turinys:

FIR filtras patikimesniam dažnio aptikimui: 5 žingsniai
FIR filtras patikimesniam dažnio aptikimui: 5 žingsniai

Video: FIR filtras patikimesniam dažnio aptikimui: 5 žingsniai

Video: FIR filtras patikimesniam dažnio aptikimui: 5 žingsniai
Video: PENTAX K-3 - mechaninis, žemo dažnio (Low pass) filtras 2024, Liepa
Anonim
FIR filtras patikimesniam dažnio aptikimui
FIR filtras patikimesniam dažnio aptikimui

Aš esu labai didelis akellyirl pamokomų pamokų apie patikimą dažnio aptikimą, naudojant DSP metodą, gerbėjas, tačiau kartais jo naudojama technika nėra pakankamai gera, jei matuojate triukšmingai.

Vienas paprastas sprendimas, leidžiantis gauti švaresnę dažnio detektoriaus įvestį, yra tam tikro filtro pritaikymas aplink norimą aptikti dažnį.

Deja, sukurti skaitmeninį filtrą nėra lengva ir ten yra gana daug matematikos. Taigi galvojau sukurti kokią nors programą, kuri supaprastintų tokių filtrų kūrimą, kad kiekvienas galėtų juos naudoti savo projektuose, nesigilindamas į detales.

Šioje instrukcijoje aš aptiksiu 50 Hz sinusinę bangą triukšmingai matuojant naudojant „Arduino Uno“(„Arduino“tikrai nebūtina).

1 žingsnis: problema

Problema
Problema

Įsivaizduokite, kad išmatuoti įvesties duomenys atrodo kaip aukščiau pateikta kreivė - gana triukšminga.

Jei sukonstruosime paprastą dažnio detektorių, tokį, koks yra „Akellyirl Instructable“, rezultatas bus „-inf“arba toliau pateikto kodo atveju: „Taip, per daug triukšmo …“

Pastaba: Aš naudojau beveik visą akellyirl kodą, bet viršuje pridėjau rawData masyvą, kuriame yra triukšmingi matavimai.

Žemiau rasite visą kodą faile, pavadintame „unfiltered.ino“.

2 žingsnis: sprendimas

Sprendimas
Sprendimas

Kadangi įvesties duomenys yra triukšmingi, tačiau žinome, kokio dažnio ieškome, galime naudoti mano sukurtą įrankį, vadinamą „easyFIR“, kad sukurtume „Bandpass“filtrą ir pritaikytume jį įvesties duomenims, todėl dažnio detektoriaus įvestis bus daug švaresnė (vaizdas aukščiau).

3 žingsnis: „EasyFIR“

EasyFIR
EasyFIR

„EasyFIR“įrankį gana paprasta naudoti, tiesiog atsisiųskite „GitHub“saugyklą ir paleiskite „easyFIR.py“failą su vienu matavimo pavyzdžiu (CSV formatu).

Jei atidarysite failą easyFIR.py, rasite 5 parametrus (žr. Paveikslėlį aukščiau), kuriuos galite ir turėtumėte keisti, priklausomai nuo norimo rezultato. Pakeitę 5 parametrus ir įvykdę „python“failą, savo terminale pamatysite apskaičiuotus koeficientus. Šie koeficientai yra labai svarbūs kitam žingsniui!

Daugiau informacijos apie tikslų naudojimą rasite čia:

4 žingsnis: filtravimas

Filtravimas
Filtravimas

Dabar, jei apskaičiavote reikiamus filtrų koeficientus, dažnio detektoriui gana paprasta pritaikyti tikrąjį rinktuvą.

Kaip matote aukščiau esančiame paveikslėlyje, jums tereikia pridėti koeficientus, funkciją „ApplyFilter“ir filtruoti įvesties matavimus.

Žemiau rasite visą kodą faile „filtrated.ino“.

Pastaba: didelis ačiū šiam „Stack Overflow Post“už puikų filtrų taikymo algoritmą!

5 žingsnis: mėgaukitės

Mėgautis
Mėgautis

Kaip matote, dabar mes galime aptikti 50 Hz signalą net triukšmingoje aplinkoje?

Nedvejodami pritaikykite mano idėją ir kodą jūsų poreikiams. Būčiau labai dėkingas, jei įtrauktumėte savo patobulinimus!

Jei jums patinka mano darbas, būčiau labai dėkingas, jei palaikytumėte mano darbą su žvaigžde „GitHub“!

Ačiū už tavo pagalbą!:)

Rekomenduojamas: