Sisukord:

FIR -filtreerimine usaldusväärsemaks sageduse tuvastamiseks: 5 sammu
FIR -filtreerimine usaldusväärsemaks sageduse tuvastamiseks: 5 sammu

Video: FIR -filtreerimine usaldusväärsemaks sageduse tuvastamiseks: 5 sammu

Video: FIR -filtreerimine usaldusväärsemaks sageduse tuvastamiseks: 5 sammu
Video: Un Aperçu du Syndrome de Tachycardie Orthostatique Posturale (POTS) 2024, Juuli
Anonim
FIR -filtreerimine usaldusväärsemaks sageduse tuvastamiseks
FIR -filtreerimine usaldusväärsemaks sageduse tuvastamiseks

Ma olen tõeliselt suur akellyirli juhendatav fänn usaldusväärse sageduse tuvastamise kohta, kasutades DSP -tehnikaid, kuid mõnikord ei ole tema kasutatud tehnika piisavalt hea, kui teil on mürarikkaid mõõtmisi.

Üks lihtne lahendus sagedusanduri puhtama sisendi saamiseks on rakendada teatud filtrit selle sageduse ümber, mida soovite tuvastada.

Kahjuks pole digitaalse filtri loomine lihtne ja sellega kaasneb üsna palju matemaatikat. Seega mõtlesin luua mingi programmi, mis lihtsustaks selliste filtrite loomist, et igaüks saaks neid oma projektides kasutada ilma detailidesse süvenemata.

Selles juhendis tuvastan 50 Hz siinuslaine mürarikka mõõtmise korral Arduino Unoga (Arduino pole tegelikult vajalik).

Samm: probleem

Probleem
Probleem

Kujutage ette, et mõõdetud sisendandmed näevad välja nagu ülaltoodud kõver - üsna mürarikas.

Kui me konstrueerime lihtsa sagedusdetektori, nagu akellyirli Instructable'is, on tulemuseks "-inf" või alloleva koodi korral: "Jah, liiga palju müra …"

Märkus: kasutasin peaaegu kogu akellyirli koodi, kuid lisasin ülaossa rawData massiivi, mis sisaldas mürarikkaid mõõtmisi.

Allpool leiate kogu koodi failist nimega "unfiltered.ino".

2. samm: lahendus

Lahendus
Lahendus

Kuna sisendandmed on mürarikkad, kuid me teame otsitavat sagedust, saame kasutada minu loodud tööriista easyFIR, et luua Bandpass -filter ja rakendada see sisendandmetele, mille tulemuseks on sagedusanduri jaoks palju puhtam sisend (pilt ülal).

3. samm: EasyFIR

EasyFIR
EasyFIR

EasyFIR -tööriista on üsna lihtne kasutada, laadige lihtsalt alla GitHubi hoidla ja käivitage fail easyFIR.py koos ühe prooviga (CSV -vormingus).

Kui avate faili easyFIR.py, leiate 5 parameetrit (vt ülaltoodud pilti), mida saate muuta ja mida peaksite muutma sõltuvalt soovitud tulemusest. Pärast 5 parameetri muutmist ja pythoni faili käivitamist näete oma terminalis arvutatud koefitsiente. Need koefitsiendid on järgmise sammu jaoks üliolulised!

Lisateavet täpse kasutamise kohta leiate siit:

4. samm: filtreerimine

Filtreerimine
Filtreerimine

Kui olete vajalikud filtrikoefitsiendid välja arvutanud, on tegelikku filtrit sagedusandurile rakendada üsna lihtne.

Nagu ülaltoodud pildilt näha, peate lisama ainult koefitsiendid, rakenduse filter filtri ja seejärel filtreerima sisendmõõtmised.

Allpool leiate kogu koodi failist nimega "filtrated.ino".

Märkus: suur tänu sellele virna ülevoolu postitusele suurepärase filtrirakenduse algoritmi eest!

5. samm: naudi

Nautige
Nautige

Nagu näete, oleme nüüd võimelised tuvastama 50 Hz signaali isegi mürarikkas keskkonnas?

Palun kohandage minu ideed ja koodi vastavalt teie vajadustele. Oleksin väga tänulik, kui saaksin teie parandusi lisada!

Kui teile minu töö meeldib, oleksin väga tänulik, kui toetate minu tööd staariga GitHubis!

Tänan toetuse eest!:)

Soovitan: