9 Haziran 2025 Pazartesi

C Dilinde Moving Average Filter (Hareketli Ortalama Filtresi) Nedir, Nasıl Uygulanır?

Hareketli Ortalama Filtresi (Moving Average Filter), sinyal işleme ve veri analizi alanlarında en çok tercih edilen basit ve etkili filtrelerden biridir. Gürültülü verilerin pürüzsüzleştirilmesi, ani değişimlerin yumuşatılması ve sensör okumalarının stabilize edilmesi gibi birçok uygulama alanında kullanılır. Özellikle gömülü sistemlerde, mikrodenetleyicilerde ve gerçek zamanlı uygulamalarda, C dili ile kolayca uygulanabilir olması sayesinde oldukça popülerdir.

Hareketli Ortalama Filtresi Nedir?

Kısaca, hareketli ortalama filtresi, belirli bir pencere (örneğin N örnek) içerisindeki verilerin aritmetik ortalamasını alarak yeni bir çıktı üretir. Böylece, kısa süreli gürültüler ve ani değişimler filtrelenmiş olur.

Matematiksel olarak:
Y[n] = (X[n] + X[n-1] + ... + X[n-(N-1)]) / N
Burada:

  • Y[n]: Filtrelenmiş çıktı

  • X[n]: En yeni giriş değeri

  • N: Pencere boyutu (window size)


Avantajları ve Dezavantajları

Avantajlar:

  • Basit ve hızlı algoritma

  • Bellek ve işlemci gereksinimi düşük

  • Gerçek zamanlı uygulamalara uygun

Dezavantajlar:

  • Ani değişimleri geciktirir (faz kayması)

  • Büyük pencerelerde tepki yavaştır

  • Herkese uyan tek boyutlu çözüm değildir; pencere boyutu dikkatle seçilmelidir


C Dilinde Moving Average Filter Nasıl Uygulanır?

Aşağıda, hareketli ortalama filtresinin C dilinde farklı şekillerde uygulanışı anlatılmaktadır.

1. Temel Uygulama: Döngüyle Ortalama Alma

Kullanımı:

Eksisi:

Her yeni örnekte tüm pencereyi toplar, bu da işlemciyi yorar.


2. Kayan Pencere ile Optimizasyon (Dairesel Buffer Kullanımı)

Dairesel (circular) buffer ve kayan toplam yaklaşımıyla işlem yükü azaltılabilir.

Kullanımı:

Avantajı:

  • Her örnek için sadece iki toplama/çıkarma işlemi gerekir.

  • Özellikle gömülü sistemlerde çok daha hızlıdır.


3. Uygulama Alanları

  • Sensör verilerinin düzeltilmesi (ör. sıcaklık, ivmeölçer)

  • Finansal zaman serilerinde veri yumuşatma

  • Gürültülü sinyal filtreleme (ör. ADC verisi)

  • Otomotivde, tıbbi cihazlarda, endüstriyel kontrol sistemlerinde


Pencere Boyutu (Window Size) Nasıl Seçilmeli?

  • Küçük pencere (örn. 3–5): Ani değişimlere daha duyarlı, az gecikme.

  • Büyük pencere (örn. 20–50): Daha yumuşak sonuç, daha fazla gecikme.

Kullanım amacınıza ve verinizin doğasına göre pencere boyutunu dikkatli seçmelisiniz.


Kodun Tamamı: Basit Moving Average Filter Kütüphanesi

Sonuç

Hareketli ortalama filtresi, basitliği ve etkililiğiyle öne çıkan bir filtreleme yöntemidir. C dilinde uygulanması da oldukça kolaydır. Kodunuzu ve pencere boyutunuzu ihtiyacınıza göre optimize ederek, birçok gerçek zamanlı uygulamada başarılı sonuçlar elde edebilirsiniz.

Sen de uygulaman için yukarıdaki örnekleri kolayca entegre edebilirsin!

C Dilinde Moving Average Filter (Hareketli Ortalama Filtresi) Nedir, Nasıl Uygulanır?

Hareketli Ortalama Filtresi ( Moving Average Filter ), sinyal işleme ve veri analizi alanlarında en çok tercih edilen basit ve etkili filtre...