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 true
a 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őretrue
gyakorolt 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=true
a csúcs az eredeti helyén marad.
- 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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: