Kazalo:
Video: FIR filtriranje za zanesljivejše zaznavanje frekvence: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Sem res velik oboževalec akellyirlovih navodil o zanesljivem zaznavanju frekvence z uporabo tehnik DSP, vendar včasih tehnika, ki jo je uporabil, ni dovolj dobra, če imate hrupne meritve.
Enostavna rešitev za čistejši vnos za detektor frekvenc je uporaba neke vrste filtra okoli frekvence, ki jo želite zaznati.
Na žalost ustvarjanje digitalnega filtra ni enostavno in za to je vključenih precej matematike. Zato sem razmišljal o tem, da bi ustvaril nekakšen program, ki bi poenostavil izdelavo takšnih filtrov, da bi vsem omogočil uporabo v svojih projektih, ne da bi se poglobil v podrobnosti.
V tem navodilu bom v hrupnem merjenju z Arduino Uno odkril 50 Hz sinusni val (Arduino v resnici ni potreben).
1. korak: Problem
Predstavljajte si, da so izmerjeni vhodni podatki podobni zgornji krivulji - precej hrupni.
Če sestavimo preprost frekvenčni detektor, kot je tisti v akellyirl's Instructable, je rezultat "-inf" ali v primeru spodnje kode: "Ja, preveč hrupa …"
Opomba: Uporabil sem skoraj vso kodo akellyirl, vendar sem na vrh dodal niz rawData, ki vsebuje hrupne meritve.
Spodaj najdete celotno kodo v datoteki z imenom "unfiltered.ino".
2. korak: Rešitev
Ker so vhodni podatki hrupni, vendar poznamo frekvenco, ki jo iščemo, lahko z orodjem, ki sem ga ustvaril, imenovanim easyFIR, ustvarimo pasovni filter in ga uporabimo za vhodne podatke, kar ima za posledico veliko čistejši vnos za detektor frekvence (zgornja slika).
3. korak: EasyFIR
Orodje easyFIR je precej preprosto za uporabo, samo prenesite skladišče GitHub in zaženite datoteko easyFIR.py z enim vzorcem vaših meritev (v formatu CSV).
Če odprete datoteko easyFIR.py, boste našli 5 parametrov (glejte sliko zgoraj), ki jih lahko in bi morali spremeniti glede na rezultat, ki ga želite doseči. Ko ste prilagodili 5 parametrov in izvedli datoteko python, boste v svojem terminalu videli izračunane koeficiente. Ti koeficienti so ključni za naslednji korak!
Več informacij o natančni uporabi najdete tukaj:
4. korak: Filtriranje
Zdaj, če ste izračunali potrebne koeficiente filtra, je zelo preprosto uporabiti dejansko polnilo na detektorju frekvence.
Kot lahko vidite na zgornji sliki, morate dodati samo koeficiente, funkcijo applyFilter in nato filtrirati vhodne meritve.
Spodaj najdete celotno kodo v datoteki z imenom "filtrirano.ino".
Opomba: velika hvala temu Stack Overflow Post za odličen algoritem uporabe filtra!
5. korak: Uživajte
Kot lahko vidite, zdaj lahko zaznamo 50Hz signal tudi v hrupnem okolju?
Prosim, da mojo idejo in kodo prilagodite svojim potrebam. Zelo bi bil hvaležen, če vključim vaše izboljšave!
Če vam je moje delo všeč, bi bil zelo hvaležen, če moje delo podprete z zvezdico na GitHubu!
Hvala za tvojo podporo!:)
Priporočena:
Načrt vezja za pridobivanje, ojačanje in filtriranje osnovnega elektrokardiograma: 6 korakov
Načrt vezja za pridobivanje, ojačanje in filtriranje osnovnega elektrokardiograma: Če želite dokončati ta navodila, potrebujete le računalnik, dostop do interneta in nekaj simulacijske programske opreme. Za namene te zasnove bodo vsa vezja in simulacije izvedeni na LTspice XVII. Ta simulacijska programska oprema vsebuje
Merjenje frekvence in napetosti napajalnika z uporabo Arduina: 6 korakov
Merjenje frekvence in napetosti napajalnika z uporabo Arduina: Uvod: Cilj tega projekta je merjenje napajalne frekvence in napetosti, ki je v Indiji med 220 do 240 voltov in 50Hz. Za zajem signala ter izračun frekvence in napetosti sem uporabil Arduino, lahko uporabite katero koli drugo mikrokontrolo
Filtriranje internetnih vsebin z uporabo DNS: 10 korakov
Filtriranje internetnih vsebin z uporabo DNS: Posodobljeno 3. februarja 2021 in vključuje dodatne informacije v 8. koraku & 9. Splošno znano je, da je na internetu veliko vsebin, ki niso ravno primerne za ogled otrok. Kar pa ni tako splošno znano, je dejstvo, da ste
Merilnik frekvence z uporabo mikrokrmilnika: 8 korakov
Merilnik frekvence z uporabo mikrokrmilnika: Ta vadnica preprosto navaja, kako izračunati frekvenco impulznega vira z mikrokrmilnikom. Visoka napetostna stopnja impulznega vira je 3,3 V, nizka pa 0 V. Uporabil sem STM32L476, Tiva lansirno ploščo, 16x2 alfanumerični LCD in nekatere žice 1K resi
Zaznavanje onesnaženosti zraka + filtriranje zraka: 4 koraki
Odkrivanje onesnaženosti zraka + filtriranje zraka: Učenci (Aristobulus Lam, Victor Sim, Nathan Rosenzweig in Declan Loges) nemške švicarske mednarodne šole so sodelovali z osebjem podjetja MakerBay pri izdelavi integriranega sistema za merjenje onesnaženosti zraka in učinkovitosti filtriranja zraka. Ta