series_fir()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Použije filtr konečných impulsových odpovědí (FIR) na řadu.
Funkce přebírá výraz obsahující dynamické číselné pole jako vstup a použije filtr Konečný impuls odpovědi . filter
Zadáním koeficientů se dá použít k výpočtu klouzavého průměru, vyhlazování, zjišťování změn a mnoha dalších případů použití. Funkce vezme sloupec obsahující dynamickou matici a statickou dynamickou matici koeficientů filtru jako vstup a použije filtr na sloupec. Vypíše nový sloupec dynamického pole obsahující filtrovaný výstup.
Syntaxe
series_fir(
filtr řad ,
[,
normalize[,
střed]])
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
řada | dynamic |
✔️ | Matice číselných hodnot. |
filter | dynamic |
✔️ | Matice číselných hodnot obsahující koeficienty filtru. |
normalizovat | bool |
Určuje, jestli má být filtr normalizován. To znamená, že děleno součtem koeficientů. Pokud filtr obsahuje záporné hodnoty, musí být normalizován jako false , jinak bude null výsledek . Pokud není zadáno, předpokládá se výchozí hodnota true v závislosti na přítomnosti záporných hodnot ve filtru. Pokud filtr obsahuje aspoň jednu zápornou hodnotu, předpokládá se, že normalizační hodnota je false . |
|
střed | bool |
Určuje, zda je filtr použit symetricky v časovém intervalu před a za aktuálním bodem nebo v časovém intervalu od aktuálního bodu zpět. Ve výchozím nastavení je false středem , který odpovídá scénáři streamovaných dat, abychom mohli použít filtr pouze na aktuální a starší body. Pro ad hoc zpracování však můžete nastavit , aby true se synchronizovala s časovými řadami. Podívejte se na příklady níže. Tento parametr řídí zpoždění skupiny filtru. |
Tip
Normalizace je pohodlný způsob, jak zajistit, aby součet koeficientů byl 1. Pokud je true
normalizováno, filtr nezmenší ani neztlumí řadu. Například klouzavý průměr čtyř intervalů je možné zadat pomocí filter=[1;1;1;1] a normalizovattrue
=, což je jednodušší než zadání [0,25,0,25.0,25,0,25,0,25].
Návraty
Nový sloupec dynamického pole obsahující filtrovaný výstup.
Příklady
- Výpočet klouzavého průměru pěti bodů nastavením filtru=[1;1;1;1;1] a normalizovat
true
= (výchozí). Všimněte si efektu středufalse
= (výchozí) vs. :true
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
Tento dotaz vrátí:
5h_MovingAvg: Filtr klouzavého průměru pěti bodů. Špička se vyhladí a její špička se posune o (5-1)/2 = 2h.
5h_MovingAvg_centered: Stejné, ale nastavením center=true
se špička nachází v původním umístění.
- Pokud chcete vypočítat rozdíl mezi bodem a jeho předchozím bodem, nastavte filtr=[1;-1].
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