Udostępnij za pośrednictwem


series_iir()

Dotyczy: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Stosuje filtr Nieskończona odpowiedź impulsowa w serii.

Funkcja przyjmuje wyrażenie zawierające dynamiczną tablicę liczbową jako dane wejściowe i stosuje filtr Nieskończona odpowiedź impulsu. Określając współczynniki filtru, można użyć funkcji w celu:

Funkcja przyjmuje jako dane wejściowe kolumnę zawierającą tablicę dynamiczną i dwie statyczne tablice dynamiczne mianowników i współczynników liczników filtru i stosuje filtr w kolumnie. Zwraca nową kolumnę tablicy dynamicznej zawierającą odfiltrowane dane wyjściowe.

Składnia

series_iir(mianowniki serii, , )

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
seria dynamic ✔️ Tablica wartości liczbowych, zazwyczaj wynikowe dane wyjściowe operatorów make-series lub make_list .
liczniki dynamic ✔️ Tablica wartości liczbowych zawierająca współczynniki liczbowe filtru.
mianowniki dynamic ✔️ Tablica wartości liczbowych zawierająca współczynniki mianownika filtru.

Ważne

Pierwszy element ( a czyli a[0]) nie może być zero, aby uniknąć dzielenia o 0. Zobacz następującą formułę.

Formuła cykliczna filtru

  • Rozważmy tablicę wejściową X i współczynniki tablice a i b długości odpowiednio n_a i n_b. Funkcja transferu filtru, która wygeneruje tablicę wyjściową Y, jest definiowana przez:
Yi = a0-1(b0 X i + b1Xi-1 + ... + bb-1 Xi-nb-1 - a1-Yi-2-Y i-2 - ... -na-1 Yi-n-1)

Przykład

Oblicz sumę skumulowaną. Użyj filtru iir z mianownikami współczynników=[1,-1] i liczników=[1]:

let x = range(1.0, 10, 1);
print x=x, y = series_iir(x, dynamic([1]), dynamic([1,-1]))
| mv-expand x, y

Wyjście

x t
1.0 1.0
2.0 3.0
3.0 6.0
4.0 10,0

Oto jak opakowować go w funkcji:

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)

Wyjście

d dd
[0,1,2,3,4] 10