Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
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
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
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 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
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
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!:)