Mundarija:

Ishonchli chastotani aniqlash uchun FIR filtrlash: 5 qadam
Ishonchli chastotani aniqlash uchun FIR filtrlash: 5 qadam

Video: Ishonchli chastotani aniqlash uchun FIR filtrlash: 5 qadam

Video: Ishonchli chastotani aniqlash uchun FIR filtrlash: 5 qadam
Video: Фри файр 100 лвл аккаунт 2024, Iyul
Anonim
Ishonchli chastotani aniqlash uchun FIR filtrlash
Ishonchli chastotani aniqlash uchun FIR filtrlash

Men akellyirlning DSP texnikasi yordamida ishonchli chastotani aniqlash bo'yicha ko'rsatma berishining juda katta muxlisiman, lekin agar sizda shovqinli o'lchovlar bo'lsa, ba'zida u ishlatgan texnika etarli emas.

Chastota detektori uchun toza kirishni olishning eng oson yo'li - siz aniqlamoqchi bo'lgan chastota atrofida qandaydir filtrni qo'llashdir.

Afsuski, raqamli filtrni yaratish oson emas va bu erda juda ko'p matematika mavjud. Shunday qilib, men bunday filtrlarni yaratishni soddalashtirish, har kimga o'z loyihalarida tafsilotlarni o'ylamasdan foydalanishga ruxsat berish uchun qandaydir dastur yaratish haqida o'yladim.

Bu yo'riqnomada men 50 gigagertsli sinus to'lqinini Arduino Uno yordamida shovqinli o'lchovda aniqlayman (Arduino kerak emas).

1 -qadam: Muammo

Muammo
Muammo

Tasavvur qiling, o'lchangan kirish ma'lumotlari yuqoridagi egri chiziqqa o'xshaydi - juda shovqinli.

Agar biz akellyirl Instructable dagi kabi oddiy chastota detektori quradigan bo'lsak, natija "-inf" yoki quyidagi kod holatida bo'ladi: "Ha, juda shovqin …"

Eslatma: Men deyarli hamma akellyirl kodini ishlatardim, lekin yuqori qismiga shovqinli o'lchovlarni o'z ichiga olgan rawData qatorini qo'shdim.

Quyida siz butun kodni "unfiltered.ino" nomli faylda topishingiz mumkin.

2 -qadam: Yechim

Yechim
Yechim

Kirish ma'lumotlari shovqinli bo'lsa -da, lekin biz qidirayotgan chastotani bilamiz, biz bandFiltr filtrini yaratish va uni kirish ma'lumotlariga qo'llash uchun easyFIR deb nomlangan vositadan foydalanishimiz mumkin, natijada chastota detektori ancha toza bo'ladi. yuqoridagi rasm).

3 -qadam: EasyFIR

EasyFIR
EasyFIR

EasyFIR vositasidan foydalanish juda oson, faqat GitHub omborini yuklab oling va o'lchovingizning bir namunasi bilan (CSV formatida) easyFIR.py faylini ishga tushiring.

Agar easyFIR.py faylini ochsangiz, siz erishmoqchi bo'lgan natijaga qarab 5 parametrni (yuqoridagi rasmga qarang) topasiz va o'zgartirishingiz mumkin. 5 parametrni o'zgartirgandan va python faylini bajarganingizdan so'ng, siz terminalda hisoblangan koeffitsientlarni ko'rasiz. Bu koeffitsientlar keyingi qadam uchun hal qiluvchi ahamiyatga ega!

Aniq foydalanish haqida qo'shimcha ma'lumotni bu erda topishingiz mumkin:

4 -qadam: filtrlash

Filtrlash
Filtrlash

Agar siz kerakli filtr koeffitsientlarini hisoblagan bo'lsangiz, haqiqiy faylni chastota detektoriga qo'llash juda oson.

Yuqoridagi rasmda ko'rib turganingizdek, siz faqat koeffitsientlarni, applyFilter funktsiyasini qo'shishingiz va keyin kirish o'lchovlarini filtrlashingiz kerak.

Quyida siz "filtered.ino" deb nomlangan faylning to'liq kodini topishingiz mumkin.

Eslatma: ajoyib Stack Overflow Post -ga filtrni qo'llashning ajoyib algoritmi uchun katta rahmat!

5 -qadam: rohatlaning

Xursand bo'ling
Xursand bo'ling

Ko'rib turganingizdek, endi biz shovqinli muhitda ham 50 Gts signalni aniqlay olamizmi?

Iltimos, mening fikrimni va kodimni sizning ehtiyojlaringizga moslashtiring. Sizning yaxshilanishlaringizni qo'shganingizdan juda minnatdorman!

Agar sizga mening ishim yoqsa, GitHub -dagi yulduzlar bilan ishlashimni qo'llab -quvvatlasangiz, juda minnatdorman!

Qo'llab -quvvatlaganingiz uchun tashakkur!:)

Tavsiya: