Բովանդակություն:

FIR ֆիլտրացում `ավելի հուսալի հաճախականության հայտնաբերման համար` 5 քայլ
FIR ֆիլտրացում `ավելի հուսալի հաճախականության հայտնաբերման համար` 5 քայլ

Video: FIR ֆիլտրացում `ավելի հուսալի հաճախականության հայտնաբերման համար` 5 քայլ

Video: FIR ֆիլտրացում `ավելի հուսալի հաճախականության հայտնաբերման համար` 5 քայլ
Video: Aquarium FILTER GUIDE v.2 - Everything To Know About Filtration in Aquascaping 2024, Նոյեմբեր
Anonim
FIR զտիչ `ավելի հուսալի հաճախականության հայտնաբերման համար
FIR զտիչ `ավելի հուսալի հաճախականության հայտնաբերման համար

Ես իսկապես մեծ երկրպագու եմ akelirl- ի ՝ հուսալի հաճախականությունների հայտնաբերման վերաբերյալ DSP տեխնիկայի օգտագործմամբ ուսուցանելու վերաբերյալ, բայց երբեմն նրա օգտագործած տեխնիկան բավական լավը չէ, եթե աղմկոտ չափումներ ունեք:

Հաճախականությունների դետեկտորի համար ավելի մաքուր մուտք գործելու հեշտ միջոցներից մեկն այն է, որ ինչ -որ զտիչ կիրառվի այն հաճախականության շուրջ, որը ցանկանում եք հայտնաբերել:

Unfortunatelyավոք, թվային զտիչ ստեղծելը հեշտ չէ, և բավականին շատ մաթեմատիկա է ներգրավված: Այսպիսով, ես մտածեցի ինչ -որ ծրագիր ստեղծելու մասին `պարզեցնելու նման զտիչների ստեղծումը, թույլ տալու որևէ մեկին օգտագործել դրանք իրենց նախագծերում` չխորանալով մանրամասների մեջ:

Այս Ուղեցույցում ես մտադիր եմ 50Hz սինուս ալիք հայտնաբերել Arduino Uno- ով աղմկոտ չափման ժամանակ (Arduino- ն իրականում անհրաժեշտ չէ):

Քայլ 1: Խնդիր

Խնդիրը
Խնդիրը

Պատկերացրեք, որ չափված մուտքային տվյալները նման են վերևի կորին `բավականին աղմկոտ:

Եթե մենք կառուցենք մի պարզ հաճախականության դետեկտոր, ինչպիսին է akellyirl's Instructable- ը, արդյունքը կլինի «-inf» կամ ստորև նշված կոդի դեպքում ՝ «Այո, չափազանց շատ աղմուկ…»

Նշում. Ես օգտագործել եմ akellyirl- ի գրեթե բոլոր ծածկագրերը, բայց վերևում ավելացրել եմ rawData զանգված, որը պարունակում է աղմկոտ չափումներ:

Ստորև կարող եք գտնել ամբողջ ծածկագիրը «unfiltered.ino» անունով ֆայլում:

Քայլ 2: Լուծում

Լուծումը
Լուծումը

Քանի որ մուտքային տվյալները աղմկոտ են, բայց մենք գիտենք, թե ինչ հաճախականություն ենք փնտրում, մենք կարող ենք օգտագործել իմ ստեղծած գործիքը easyFIR անունով ՝ Bandpass զտիչ ստեղծելու և այն մուտքագրելու տվյալների վրա, ինչը հանգեցնում է հաճախականության դետեկտորի ավելի մաքուր մուտքի (վերևի պատկերը):

Քայլ 3: EasyFIR

EasyFIR
EasyFIR

EasyFIR գործիքը բավականին հեշտ է օգտագործել, պարզապես ներբեռնեք GitHub պահոցը և գործարկեք easyFIR.py ֆայլը ձեր չափումների մեկ օրինակով (CSV ձևաչափով):

Եթե բացեք easyFIR.py ֆայլը, ապա կգտնեք 5 պարամետր (տես վերևի պատկերը), որոնք կարող եք և պետք է փոխվեն ՝ կախված այն արդյունքից, որին կցանկանայիք հասնել: 5 պարամետրերը շտկելուց և պիթոնի ֆայլը կատարելուց հետո ձեր տերմինալում կտեսնեք հաշվարկված գործակիցները: Այս գործակիցները վճռորոշ նշանակություն ունեն հաջորդ քայլի համար:

Usageշգրիտ օգտագործման մասին լրացուցիչ տեղեկություններ կարող եք գտնել այստեղ ՝

Քայլ 4: Filտիչ

Ֆիլտրում
Ֆիլտրում

Եթե դուք հաշվարկել եք անհրաժեշտ զտիչի գործակիցները, ապա բավականին հեշտ է կիրառել իրական ֆայլը հաճախականությունների դետեկտորին:

Ինչպես տեսնում եք վերևի նկարում, ձեզ հարկավոր է ավելացնել միայն գործակիցները, applyFilter գործառույթը և այնուհետև զտել մուտքային չափումները:

Ստորև կարող եք գտնել ամբողջ ծածկագիրը «filtered.ino» անունով ֆայլում:

Նշում. Մեծ շնորհակալություն Stack Overflow Post- ին `զտիչի կիրառման հիանալի ալգորիթմի համար:

Քայլ 5: Վայելեք

Վայելեք
Վայելեք

Ինչպես տեսնում եք, այժմ մենք ի վիճակի՞ ենք 50Hz ազդանշան հայտնաբերել նույնիսկ աղմկոտ միջավայրում:

Խնդրում եմ ազատ զգալ հարմարեցնել իմ գաղափարն ու կոդը ձեր կարիքներին: Ես շատ շնորհակալ կլինեմ ներառել ձեր բարելավումները:

Եթե ձեզ դուր է գալիս իմ աշխատանքը, ես իսկապես կգնահատեի, եթե աջակցեիք իմ աշխատանքին աստղով GitHub- ում:

Շնորհակալություն աջակցության համար!:)

Խորհուրդ ենք տալիս: