series_fir()

Seriye Sonlu Dürtü Yanıtı (FIR) filtresi uygular.

işlevi, giriş olarak dinamik bir sayısal dizi içeren bir ifade alır ve Sonlu Dürtü Yanıtı filtresi uygular. Katsayıları belirterek filter hareketli ortalama, düzeltme, değişiklik algılama ve daha birçok kullanım örneğini hesaplamak için kullanılabilir. işlevi, giriş olarak filtrenin katsayılarının dinamik dizisini ve statik dinamik dizisini içeren sütunu alır ve filtreyi sütuna uygular. Filtrelenmiş çıkışı içeren yeni bir dinamik dizi sütunu verir.

Syntax

series_fir(Serisi,filter [,normalize[,center]])

Söz dizimi kuralları hakkında daha fazla bilgi edinin.

Parametreler

Ad Tür Gerekli Açıklama
Serisi dynamic ✔️ Sayısal değerler dizisi.
Filtre dynamic ✔️ Filtrenin katsayılarını içeren sayısal değerler dizisi.
Normalleştirmek bool Filtrenin normalleştirilip normalleştirilmeyeceğini gösterir. Yani katsayıların toplamına bölünür. Filtre negatif değerler içeriyorsa normalleştirme olarak belirtilmelidir false, aksi takdirde sonuç olur null. Belirtilmezse, filtredeki negatif değerlerin varlığına bağlı olarak varsayılan değeri true varsayılır. Filtre en az bir negatif değer içeriyorsa normalleştirmenin olduğu falsevarsayılır.
Merkezi bool Filtrenin geçerli noktadan önceki ve sonraki bir zaman penceresine mi yoksa geçerli noktadan geriye doğru bir zaman penceresine mi simetrik olarak uygulandığını gösterir. Varsayılan olarak center, filtreyi yalnızca geçerli ve eski noktalara uygulayabilmemiz için akış verileri senaryosuna uyan değeridir false. Ancak geçici işleme için zaman serisiyle eşitlenmiş olarak ayarlayabilirsiniz true. Aşağıdaki örneklere bakın. Bu parametre filtrenin grup gecikmesini denetler.

İpucu

Normalleştirme, katsayıların toplamının 1 olduğundan emin olmak için kullanışlı bir yoldur. normalleştirildiğindetrue, filtre seriyi yükseltmez veya hafifletemez. Örneğin, dört bölmenin hareketli ortalaması filter=[1,1;1,1] ile belirtilebilir ve normalleştirilebilir=true; bu da [0,25,0,25.0,25,0,25] yazmaktan daha basittir.

Döndürülenler

Filtrelenmiş çıkışı içeren yeni bir dinamik dizi sütunu.

Örnekler

  • Filter=[1,1;1;1,1] ayarını yaparak ve normalleştirerek=true (varsayılan) beş noktanın hareketli ortalaması hesaplanır. Ortala=false (varsayılan) ile karşılaştırmasının etkisine truedikkat edin:
range t from bin(now(), 1h) - 23h to bin(now(), 1h) step 1h
| summarize t=make_list(t)
| project
    id='TS',
    val=dynamic([0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 20, 40, 100, 40, 20, 10, 0, 0, 0, 0, 0, 0, 0, 0]),
    t
| extend
    5h_MovingAvg=series_fir(val, dynamic([1, 1, 1, 1, 1])),
    5h_MovingAvg_centered=series_fir(val, dynamic([1, 1, 1, 1, 1]), true, true)
| render timechart

Bu sorgu şunu döndürür:
5h_MovingAvg: Beş puan hareketli ortalama filtre. Ani artış düzeltilir ve tepe noktası (5-1)/2 = 2 saat kaydırılır.
5h_MovingAvg_centered: Aynı, ancak ayarıyla center=truetepe özgün konumunda kalır.

Seri köknar.

  • Bir nokta ile önceki nokta arasındaki farkı hesaplamak için filter=[1,-1] değerini ayarlayın.
range t from bin(now(), 1h) - 11h to bin(now(), 1h) step 1h
| summarize t=make_list(t)
| project id='TS', t, value=dynamic([0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3])
| extend diff=series_fir(value, dynamic([1, -1]), false, false)
| render timechart

Seri köknar 2.