İstediginiz filtre parametrelerini girip kod yazmadan kısa sürede kullanıma hazır filtre oluşturabilirsiniz. Bu kılavuz Furkan Filter Tool V1.0 programının nasıl kullanılacağını özetle anlatmaktadır. Program basit ve hızlı şekilde Low-Pass filtre tasarlayıp mikrodenetleyicide kullanmayı amaçlamakta. Eğer ana program hazır ise bir kaç dakika içerisinde filtrenizi tasarlayıp C kütüphanesi şeklinde uygulamanıza dahil edebilirsiniz.
Dahası program sayesinde digital filtreye ait Frekans-Amplitidue grafiği üzerinden hangi frekans aralığının ne kadar filtrelendiğini görebilirsiniz.
Z-Domain grafiği üzerine Pole veya Zero ekleyerek veya mevcut Pole ve Zero yerlerini kaydırarak dijital filtre üzerinden oynamalar veya Fine-Tuning yapabilirsiniz.
1 – Reset All: Dijital filtre parametrelerini (Zeros, Poles) resetler ve “Plot” komutunu çalıştırır
2 – Plot: Zeros ve Poles dijital filtre parametrelerini kullanarak aşağıda ki işlemleri gerçekleştirir:
- (1) Numerator katsayılarını hesaplar.
- (2) Denominator katsayılarını hesaplar.
- (3) Transfer Fonksiyonunun formulunu hesaplar.
- (4) Frekans tepkisinin grafiğini çizer.
- (5) Komplex düzlemde pole(x) ve zero(o) ları yerleştirir.
3 – Add Zero: Komplex düzlemde “konjuge zero” noktası ekler. Bunun için önce Add Zero butonuna tıklayıp sonrada komplex düzlem grafiği (Z-domain) üzerinde eklemek istediğimiz noktaya tıklamanız yeterlidir.
4 – Add Pole: Komplex düzlemde “konjuge pole” noktası ekler. Bunun için önce Add Pole butonuna tıklayıp sonrada komplex düzlem grafiği (Z-domain) üzerinde eklemek istediğiniz noktaya sol tıklamanız yeterlidir.
5 – Drag: Komplex düzlemde “konjuge pole” yada “konjuge zero” noktalarının pozisyonunu kaydırarak dijital filtrenin frekans tepkisi üzerinde oynama yapma imkanı sağlar.
Bunun için önce Drag butonuna tıklayıp sonrada komplex düzlem grafigi (Z-domain) üzerinde kaydırmak istediğimiz pole yada zeroya sağ tıklayıp basılı tutarak istediğiniz noktaya kaydırarak mouse butonunu bıraktığınızda, o noktaya kaydırmanız için yeterli olacaktır.
6 – Export: Tasarımını yaptığımız dijital filtreyi micro controller da çalıştırabileceğimiz C kütüphanesi ve örnek copy_main.c uygulaması ile seçilen kılasöre export etmenizi sağlar.
Kütüphaneyi kendi uygulamanızda kullanmak için filters.c ve filters.h kütüphanesini uygulama dosyanıza kopyalayın. Daha sonra sırası ile aşağıda numaralandırılmış kısımları copy_main.c den kendi main.c dosanıza kopyalayın. Compile yapın ve hazır.
NOT: Dijital filtrede, filtrelenecek frekanslar örnekleme frekansi üzerinden oransal olarak tespit belirlenir. Bu nedenle ADC örneklemesi timer aracılığı ile yapılması gereklidir.
7 – Help: Kullanım kılavuzu pdf dosyasını açar.
8 – About: Yazılım sahibinin iletişim bilgileri (E-posta) ve version bilgisi.
Otomatik Low Pass Filtre Tasarımı
Aşağıda ki resimde 1-4 arası parametreler tasarlanacak dijital filtre için en önemli giriş parametrelerdir.
Not: Filtre tasarımındaki ilk adım buradan amacınız doğrultusunda basit bir filtre oluşturmak.
1 – Sample Frequency: Örnekleme frekansı, dijital filtrenin ana parametresidir. Bütün diğer filtre parametreleri örnekleme frekansı Kullanılarak hesaplanır. Eğer örnekleme frekansı yanlış girilirse, diğer parametreler de yanlış hesaplanır.
Mesela örnekleme frekansi gerçekte 1000Hz ve cut-off frekansı 50Hz iken 2000Hz örnekleme frekansı girirseniz, 50Hz yerine filtre 25Hz de cut-off yapar.
2 – Filter CutOff: Cut-off yada kesim frekansı, low pass filtrenin kazancının -3dB yani: Vout=Vin*0.71 olduğu frekans.
3 – Filter Order: Dijital filtre derecesi, Bu değer ne kadar yüksek olursa cutoff sonrası frekanslar daha çok filtrelenir.
Fakat dezavantajı vardır: Filtrenin tepki süresini uzatır. Basit bir tabir ile 4. Derece bir filtrede, filtrede girişin etkisini 5. Örnekleme sonra çıkışta görebilirsiniz.
Yani filtrenizi tepki süresini geciktirir.
4 – Generate: Girilen; Sample frekansı., Cut-off frekansı ve filtre derecesine göre low-pass filtre tasarlar ve bu filtreye göre aşağısında yer alan filtre paramtrelerini günceller ve plot komutunu çalıştırır.
Örnek uygulama:
Mikrodenetleyici’nin ADCsinden 1Khz periodda veri okunuyor. Ölçmek istediğimiz sinyalin max frekansı 40Hz. Filtremiz 4. Seviye. 45Hz ve yukarısını filtrelemek istiyoruz. Önce parametrelerimizi filtre tasarım kısmına giriyoruz, sonra generate butonuna basıp filtre oluşturuyoruz.
Sonraki adım ise Export a tıklayıp uygulamamız için gerekli kod dosyalarını oluşturmak. Ve Export kısmındaki gibi oluşturulan dosyaları uygulamamıza kopyalamak
1- CCS C pic18F14k22 + Proteus simulasyonu (Hiç bir donanım kurmanıza gerek yok direk olarak çalıştırıp test edebilirsiniz)
Resimde görülen sarı renkli sinyal filtrelenmiş hali. Simülasyonu direk proteus demodan çalıştırıp debug yapabilirsiniz.
2-ESP32 arduino (Sadece ESP32 ve bir jumper kablosu + osiloskop ile test edebilirsiniz, ESP32 sinyali kendisi üretiyor adc den alıp filtreleyip DAC çıkışı veriyor)
Programı hazırlayan, paylaşan @PROTECH_ Teşekkürler.
Kaynak: picproje.org/index.php/topic,84176.msg646152/topicseen.html
İndirme linki. https://drive.google.com/file/d/1CfWcFWvKw-t5QhrS2GVv0KS-PPOkFVow/view
Yayım tarihi: 2025/02/10 Etiketler: filtre tasarım, low pass filtre