Megosztás a következőn keresztül:


series_fir()

Véges impulzusválasz (FIR) szűrőt alkalmaz egy sorozatra.

A függvény bemenetként egy dinamikus numerikus tömböt tartalmazó kifejezést vesz fel, és egy Véges impulzusválasz szűrőt alkalmaz. Az együtthatók megadásával filter mozgóátlag, simítás, változásészlelés és még sok más használati eset számítható ki. A függvény bemenetként felveszi a dinamikus tömböt tartalmazó oszlopot és a szűrő együtthatóinak statikus dinamikus tömbjét, és alkalmazza a szűrőt az oszlopra. Egy új dinamikus tömboszlopot ad ki, amely a szűrt kimenetet tartalmazza.

Syntax

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

További információ a szintaxis konvenciókról.

Paraméterek

Név Típus Kötelező Leírás
Sorozat dynamic ✔️ Numerikus értékek tömbje.
Szűrő dynamic ✔️ A szűrő együtthatóit tartalmazó numerikus értékek tömbje.
Normalizálni bool Azt jelzi, hogy a szűrőt normalizálni kell-e. Vagyis az együtthatók összegével osztva. Ha a szűrő negatív értékeket tartalmaz, akkor a normalizálást a következőként kell megadni: false, ellenkező esetben az eredmény lesz null. Ha nincs megadva, akkor a rendszer a negatív értékek szűrőben való jelenlététől függően az alapértelmezett értéket true feltételezi. Ha a szűrő legalább egy negatív értéket tartalmaz, akkor a normalizálás feltételezett értéke false.
Központ bool Azt jelzi, hogy a szűrő szimmetrikusan van-e alkalmazva az aktuális pont előtti és utáni időablakban, vagy az aktuális ponttól visszafelé haladó időablakban. Alapértelmezés szerint a center az false, amely megfelel a streamelési adatok forgatókönyvének, így csak az aktuális és a régebbi pontokra alkalmazhatjuk a szűrőt. Az alkalmi feldolgozáshoz azonban beállíthatja a értéket true, így szinkronizálva tarthatja az idősorokkal. Ez az alábbi példákon látható. Ez a paraméter szabályozza a szűrő csoportkéséset.

Tipp

A normalizálás kényelmes módja annak, hogy az együtthatók összege 1 legyen. Normalizált állapotban truea szűrő nem erősíti vagy csillapítja az adatsort. A négy intervallum mozgóátlagát például a filter=[1,1,1,1] és normalizált=true érték határozza meg, ami egyszerűbb, mint a [0.25.0.25.0.25,0.25] beírása.

Válaszok

Egy új dinamikus tömboszlop, amely a szűrt kimenetet tartalmazza.

Példák

  • Számítsa ki az öt pont mozgóátlagát a filter=[1,1,1,1], majd normalizálja=true (alapértelmezett) beállítással. Figyelje meg a középre=false (alapértelmezett) és a következőre truegyakorolt hatást:
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

Ez a lekérdezés a következőket adja vissza:
5h_MovingAvg: Öt pont mozgóátlag szűrő. A csúcs simul, és a csúcsa eltolódik a (5-1)/2 = 2h.
5h_MovingAvg_centered: Ugyanaz, de a beállításával center=truea csúcs az eredeti helyén marad.

Sorozat jegenyefenyő.

  • Egy pont és az azt megelőző közötti különbség kiszámításához állítsa be a filter=[1,-1] értéket.
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

Sorozat fenyő 2.