Mündəricat:

Daha Etibarlı Tezlik Algılaması üçün FIR Süzgəci: 5 Addım
Daha Etibarlı Tezlik Algılaması üçün FIR Süzgəci: 5 Addım

Video: Daha Etibarlı Tezlik Algılaması üçün FIR Süzgəci: 5 Addım

Video: Daha Etibarlı Tezlik Algılaması üçün FIR Süzgəci: 5 Addım
Video: Normalleşme sürecinde restoranlarda veya yaz tatilinde alınacak önlemler... 2024, Iyul
Anonim
Daha Etibarlı Tezlik Algılaması üçün FIR Süzgəci
Daha Etibarlı Tezlik Algılaması üçün FIR Süzgəci

Mən akellyirl -in DSP Texnikalarından istifadə edərək Etibarlı Tezlik Algılamağı öyrətməsinin həqiqətən böyük bir tərəfdarıyam, amma səs -küylü ölçüləriniz varsa bəzən istifadə etdiyi texnika kifayət qədər yaxşı olmur.

Tezlik detektoru üçün daha təmiz bir giriş əldə etmək üçün asan bir həll yolu, aşkar etmək istədiyiniz tezlik ətrafında bir növ filtr tətbiq etməkdir.

Təəssüf ki, rəqəmsal bir filtr yaratmaq asan deyil və bir çox riyaziyyat var. Buna görə də, bu cür filtrlərin yaradılmasını asanlaşdırmaq, hər kəsin öz detallarına girmədən öz layihələrində istifadə etməsinə icazə vermək üçün bir növ proqram yaratmaq barədə düşündüm.

Bu Təlimat kitabında, Arduino Uno ilə səs -küylü bir ölçüdə 50Hz sinus dalğası aşkar edəcəyəm (Arduino həqiqətən lazım deyil).

Addım 1: Problem

Problem
Problem

Ölçülmüş giriş məlumatlarının yuxarıdakı əyriyə bənzədiyini düşünün - olduqca səs -küylü.

Akellyirl's Instructable-dakı kimi sadə bir tezlik detektoru qursaq, nəticə "-inf" və ya aşağıdakı kod halında: "Bəli, çox səs-küy …"

Qeyd: Mən demək olar ki, bütün akellyirl kodlarını istifadə etdim, lakin səs -küylü ölçüləri ehtiva edən üst hissəyə rawData serialı əlavə etdim.

Aşağıda bütün kodu "unfiltered.ino" adlı bir faylda tapa bilərsiniz.

Addım 2: Həll

Həll
Həll

Giriş məlumatları səs -küylü olduğu üçün axtardığımız tezliyi bildiyimiz üçün bir Bandpass filtri yaratmaq və daxil olan məlumatlara tətbiq etmək üçün easyFIR adlı bir vasitədən istifadə edə bilərik ki, bu da tezlik detektoru üçün daha təmiz bir girişlə nəticələnər (yuxarıdakı şəkil).

Addım 3: EasyFIR

EasyFIR
EasyFIR

EasyFIR alətindən istifadə etmək olduqca asandır, sadəcə GitHub deposunu yükləyin və bir nümunənizlə (CSV formatında) easyFIR.py faylını işə salın.

EasyFIR.py faylını açarsanız, əldə etmək istədiyiniz nəticədən asılı olaraq dəyişə biləcəyiniz 5 parametr (yuxarıdakı şəklə bax) tapa bilərsiniz. 5 parametri düzəltdikdən və python faylını icra etdikdən sonra terminalınızda hesablanmış əmsalları görəcəksiniz. Bu əmsallar növbəti addım üçün çox vacibdir!

Tam istifadə haqqında daha çox məlumatı burada tapa bilərsiniz:

Addım 4: Filtrləmə

Filtrləmə
Filtrləmə

İndi lazım olan filtr əmsallarını hesablamısınızsa, həqiqi faylı tezlik detektoruna tətbiq etmək olduqca asandır.

Yuxarıdakı şəkildə gördüyünüz kimi, yalnız əmsalları, applyFilter funksiyasını əlavə etməli və sonra giriş ölçülərini süzməlisiniz.

Aşağıda bütün kodu "filtered.ino" adlı bir faylda tapa bilərsiniz.

Qeyd: Mükəmməl filtr tətbiqi alqoritmi üçün bu Stack Overflow Post sayəsində böyük təşəkkürlər!

Addım 5: Zövq alın

Zövq alın
Zövq alın

Gördüyünüz kimi, indi səs -küylü bir mühitdə belə 50Hz siqnalını aşkar edə bilirikmi?

Zəhmət olmasa fikrimi və kodumu ehtiyaclarınıza uyğunlaşdırmaqdan çekinmeyin. Təkmilləşdirmələrinizi daxil etməkdən çox məmnun olaram!

İşimi bəyənirsinizsə, GitHub -da ulduzla işimi dəstəkləsəniz çox şad olaram!

Dəstəyiniz üçün təşəkkürlər!:)

Tövsiyə: