İçindekiler:

Daha Güvenilir Frekans Tespiti için FIR Filtreleme: 5 Adım
Daha Güvenilir Frekans Tespiti için FIR Filtreleme: 5 Adım

Video: Daha Güvenilir Frekans Tespiti için FIR Filtreleme: 5 Adım

Video: Daha Güvenilir Frekans Tespiti için FIR Filtreleme: 5 Adım
Video: Trendyol da ki satıcının çakallığı 2024, Kasım
Anonim
Daha Güvenilir Frekans Tespiti için FIR Filtreleme
Daha Güvenilir Frekans Tespiti için FIR Filtreleme

Akelliirl'in DSP Tekniklerini Kullanarak Güvenilir Frekans Tespiti hakkındaki talimatlarının gerçekten büyük bir hayranıyım, ancak bazen kullandığı teknik, gürültülü ölçümleriniz varsa yeterince iyi değildir.

Frekans dedektörü için daha temiz bir girdi elde etmek için kolay bir çözüm, algılamak istediğiniz frekansın etrafına bir tür filtre uygulamaktır.

Ne yazık ki, bir dijital filtre oluşturmak kolay değil ve işin içinde oldukça fazla matematik var. Bu yüzden, bu tür filtrelerin oluşturulmasını basitleştirmek için, herhangi birinin projelerinde ayrıntılara girmeden kullanmasına izin vermek için bir tür program oluşturmayı düşündüm.

Bu Eğitilebilir Kitapta, bir Arduino Uno ile gürültülü bir ölçümde 50Hz'lik bir sinüs dalgası tespit edeceğim (Arduino gerçekten gerekli değil).

Adım 1: Sorun

Sorun
Sorun

Ölçülen girdi verilerinin yukarıdaki eğriye benzediğini hayal edin - oldukça gürültülü.

Akelliirl'in Instructable'ındaki gibi basit bir frekans detektörü oluşturursak, sonuç "-inf" veya aşağıdaki kod durumunda: "Evet, çok fazla gürültü …"

Not: Akellyirl'in kodunun hemen hemen tamamını kullandım ancak en üste gürültülü ölçümleri içeren bir rawData dizisi ekledim.

Aşağıda tüm kodu "unfiltered.ino" adlı bir dosyada bulabilirsiniz.

2. Adım: Çözüm

Çözüm
Çözüm

Giriş verileri gürültülü olduğundan ancak aradığımız frekansı bildiğimiz için, bir Bandpass filtresi oluşturmak ve bunu giriş verilerine uygulamak için easyFIR adlı oluşturduğum bir araç kullanabiliriz ve bu da frekans dedektörü için çok daha temiz bir girişle sonuçlanır (yukarıdaki resim).

Adım 3: EasyFIR

EasyFIR
EasyFIR

easyFIR aracının kullanımı oldukça kolaydır, sadece GitHub deposunu indirin ve ölçümlerinizin bir örneğiyle (CSV formatında) easyFIR.py dosyasını çalıştırın.

easyFIR.py dosyasını açarsanız, elde etmek istediğiniz sonuca bağlı olarak değiştirebileceğiniz ve değiştirmeniz gereken 5 parametre (yukarıdaki resme bakın) bulacaksınız. 5 parametreyi değiştirdikten ve python dosyasını çalıştırdıktan sonra, terminalinizde hesaplanan katsayıları göreceksiniz. Bu katsayılar bir sonraki adım için çok önemlidir!

Kesin kullanım hakkında daha fazla bilgiyi burada bulabilirsiniz:

4. Adım: Filtreleme

filtreleme
filtreleme

Şimdi, gerekli filtre katsayılarını hesapladıysanız, gerçek filtreyi frekans dedektörüne uygulamak oldukça kolaydır.

Yukarıdaki resimde de görebileceğiniz gibi, sadece katsayıları, applicationFilter işlevini eklemeniz ve ardından giriş ölçümlerini filtrelemeniz yeterlidir.

Aşağıda tüm kodu "filtered.ino" adlı bir dosyada bulabilirsiniz.

Not: Harika filtre uygulama algoritması için bu Yığın Taşması Postasına çok teşekkürler!

Adım 5: Keyfini çıkarın

Eğlence
Eğlence

Gördüğünüz gibi artık gürültülü bir ortamda bile 50Hz sinyali algılayabiliyor muyuz?

Lütfen fikrimi ve kodumu ihtiyaçlarınıza uyarlamaktan çekinmeyin. Geliştirmelerinizi eklemekten çok memnun olurum!

Çalışmamı beğendiyseniz, çalışmamı GitHub'da star ile desteklerseniz gerçekten minnettar olurum!

Desteğin için teşekkürler!:)

Önerilen: