Cuprins:
Video: Filtrare FIR pentru detectarea mai frecventă a frecvenței: 5 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:41
Sunt un mare fan al instruirii lui akellyirl despre detecția fiabilă a frecvenței folosind tehnici DSP, dar uneori tehnica pe care a folosit-o nu este suficient de bună dacă aveți măsurători zgomotoase.
O soluție ușoară pentru a obține o intrare mai curată pentru detectorul de frecvență este aplicarea unui fel de filtru în jurul frecvenței pe care doriți să o detectați.
Din păcate, crearea unui filtru digital nu este ușoară și există destul de multă matematică implicată. Așa că m-am gândit să creez un fel de program pentru a simplifica crearea unor astfel de filtre, pentru a permite oricui să le folosească în proiectele lor, fără a săpa în detalii.
În acest Instructable, voi detecta o undă sinusoidală de 50Hz într-o măsurare zgomotoasă cu un Arduino Uno (Arduino nu este cu adevărat necesar).
Pasul 1: problema
Imaginați-vă că datele de intrare măsurate arată ca curba de mai sus - destul de zgomotoasă.
Dacă construim un detector de frecvență simplu ca cel din Instrucțiunea lui akellyirl, rezultatul este „-inf” sau în cazul codului de mai jos: „Da, prea mult zgomot …”
Notă: am folosit cam tot codul lui akellyirl, dar am adăugat o matrice rawData în partea de sus, care conține măsurătorile zgomotoase.
Mai jos puteți găsi întregul cod într-un fișier numit „unfiltered.ino”.
Pasul 2: Soluția
Deoarece datele de intrare sunt zgomotoase, dar cunoaștem frecvența pe care o căutăm, putem folosi un instrument pe care l-am creat, numit easyFIR, pentru a crea un filtru Bandpass și a-l aplica la datele de intrare, ceea ce duce la o intrare mult mai curată pentru detectorul de frecvență (imaginea de mai sus).
Pasul 3: EasyFIR
Instrumentul easyFIR este destul de ușor de utilizat, trebuie doar să descărcați depozitul GitHub și să rulați fișierul easyFIR.py cu un eșantion de măsurători (în format CSV).
Dacă deschideți fișierul easyFIR.py, veți găsi 5 parametri (a se vedea imaginea de mai sus) pe care le puteți și ar trebui să le modificați în funcție de rezultatul pe care doriți să îl obțineți. După ce ați modificat cei 5 parametri și ați executat fișierul python, veți vedea coeficienții calculați în terminalul dvs. Acești coeficienți sunt cruciale pentru următorul pas!
Mai multe informații despre utilizarea exactă pot fi găsite aici:
Pasul 4: Filtrare
Acum, dacă ați calculat coeficienții de filtrare necesari, este destul de ușor să aplicați filerul real pe detectorul de frecvență.
După cum puteți vedea în imaginea de mai sus, trebuie doar să adăugați coeficienții, funcția applyFilter și apoi să filtrați măsurătorile de intrare.
Mai jos puteți găsi întregul cod într-un fișier numit „filtered.ino”.
Notă: mulțumiri mari acestui Post Stack Overflow pentru algoritmul excelent al aplicației de filtrare!
Pasul 5: Bucurați-vă
După cum puteți vedea, acum putem detecta un semnal de 50Hz chiar și într-un mediu zgomotos?
Vă rugăm să nu ezitați să vă adaptați ideea și codul la nevoile dvs. Aș fi foarte recunoscător să includ îmbunătățirile dvs.!
Dacă îți place munca mea, aș aprecia cu adevărat dacă îmi sprijini munca cu star pe GitHub!
Mulțumesc pentru sprijin!:)
Recomandat:
Cultivarea mai multor salată în spațiu mai mic sau Cultivarea salatei în spațiu, (mai mult sau mai puțin) .: 10 pași
Cultivarea mai multor salată în spațiu mai mic sau … Cultivarea salată în spațiu, (mai mult sau mai puțin). Nu aș putea fi mai încântat să proiectez pentru producția de culturi spațiale și să postez primul meu Instructable. Pentru a începe, concursul ne-a cerut
Monitor de frecvență a impulsurilor fără fir cu 4Duino-24: 4 pași
Monitorul wireless al ritmului pulsului 4Duino-24: Monitorul wireless al ritmului pulsului este un proiect conceptual realizat pentru spitale și clinici, funcția sa principală este de a minimiza timpul de care au nevoie asistenții medicali sau medicii pentru a vizita fiecare pacient într-un spital. De obicei, medicii și asistentele medicale vizitează fiecare pacient pentru a verifica
Cel mai mic și mai simplu robot Arduino pentru evitarea obstacolelor vreodată: 5 pași
Cel mai mic și mai drăguț robot Arduino pentru evitarea obstacolelor vreodată: V-ați săturat de mari roboți stângaci care vă iau o jumătate de raft în cameră? Ești dispus să-ți iei robotul cu tine, dar pur și simplu nu ți se potrivește în buzunar? Poftim! Vă prezint Minibot, cel mai drăguț și mai mic robot de evitare a obstacolelor pe care l-ați putea evita
Aer mai rece! pentru mai puțini bani! Supraalimentarea aparatului de aer condiționat !!: 14 pași (cu imagini)
Aer mai rece! pentru mai puțini bani! Supraîncărcarea aparatului de aer condiționat !!: Puteți obține o răcire îmbunătățită și costuri mai mici de energie cu această metodă. Un aparat de aer condiționat funcționează prin comprimarea unui agent frigorific gazos până când se condensează în condensatorul (l-ați ghicit) din partea exterioară. Acest lucru eliberează căldură în exterior. Atunci când
Suport pentru hârtie pentru laptop, cel mai ieftin suport pentru laptop posibil: 4 pași
Suport pentru hârtie pentru laptop, cel mai ieftin suport pentru laptop posibil: se întâmplă să iubesc cutremurul 3 și mă îngrijorez cu privire la durabilitatea MacBook-ului meu. Nu am niciodată ideea de a cumpăra aceste suporturi pentru laptop cu ventilatoare, deoarece MacBook-urile nu au deloc găuri în partea de jos. Mă gândeam că acele jumătăți de bile ar putea să-mi îndoaie laptopul c