series_iir()
Platí pro: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Použije nekonečnou odezvu na řadu.
Funkce přebírá výraz obsahující dynamické číselné pole jako vstup a použije filtr Infinite Impuls Response . Zadáním koeficientů filtru můžete funkci použít k:
- výpočet kumulativního součtu řady
- použití operací vyhlazování
- použití různých filtrů s vysokým průchodem, pásmem a nízkým průchodem
Funkce přebírá jako vstup sloupec obsahující dynamickou matici a dvě statická dynamická pole jmenovatele filtru a koeficienty numerátorů a použije filtr na sloupec. Vypíše nový sloupec dynamického pole obsahující filtrovaný výstup.
Syntaxe
series_iir(
jmenovatele řad ,
,
)
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, obvykle výsledný výstup operátorů make-series nebo make_list . |
numerátory | dynamic |
✔️ | Matice číselných hodnot obsahující čitatelní koeficienty filtru. |
Jmenovatele | dynamic |
✔️ | Matice číselných hodnot obsahující jmenovatelové koeficienty filtru. |
Důležité
První prvek a
(tj a[0]
. ) nesmí být nula, aby se zabránilo dělení hodnotou 0. Podívejte se na následující vzorec.
Rekurzivní vzorec filtru
- Zvažte vstupní matici X a koeficienty a a b délky n_a a n_b. Funkce přenosu filtru, která vygeneruje výstupní pole Y, je definována takto:
Příklad
Výpočet kumulativního součtu Použijte filtr iir s jmenovateli koeficientů=[1;-1] a numerátory=[1]:
let x = range(1.0, 10, 1);
print x=x, y = series_iir(x, dynamic([1]), dynamic([1,-1]))
| mv-expand x, y
Výstup
linka | y |
---|---|
1.0 | 1.0 |
2.0 | 3,0 |
3,0 | 6.0 |
4.0 | 10.0 |
Tady je postup, jak ji zabalit do funkce:
let vector_sum=(x: dynamic) {
let y=array_length(x) - 1;
todouble(series_iir(x, dynamic([1]), dynamic([1, -1]))[y])
};
print d=dynamic([0, 1, 2, 3, 4])
| extend dd=vector_sum(d)
Výstup
d | dd |
---|---|
[0,1,2,3,4] |
10 |