Compartilhar via


series_iir()

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Aplica um filtro de Resposta a Impulso Infinito em uma série.

A função usa uma expressão que contém matriz numérica dinâmica como entrada e aplica um filtro de Resposta ao Impulso Infinito. Ao especificar os coeficientes de filtro, você pode usar a função para:

A função usa como entrada a coluna que contém a matriz dinâmica e duas matrizes dinâmicas estáticas dos coeficientes denominadores e numeradores do filtro e aplica o filtro na coluna. Ela resulta em uma nova coluna de matriz dinâmica que contém a saída filtrada.

Sintaxe

series_iir(série, numeradores , denominadores)

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
série dynamic ✔️ Uma matriz de valores numéricos, normalmente a saída resultante de operadores make-series ou make_list .
Numeradores dynamic ✔️ Uma matriz de valores numéricos, contendo os coeficientes do numerador do filtro.
Denominadores dynamic ✔️ Uma matriz de valores numéricos, contendo os coeficientes denominadores do filtro.

Importante

O primeiro elemento de a (ou seja, a[0]) não deve ser zero, para evitar a divisão por 0. Veja a fórmula a seguir.

A fórmula recursiva do filtro

  • Considere uma matriz de entrada X e matrizes de coeficientes a e b de comprimentos n_a e n_b respectivamente. A função de transferência do filtro que irá gerar a matriz de saída Y, é definida por:
Y i = a0-1(b0Xi + b1Xi-1 + ... + bnb-1 Xi-nb-1 - a1Yi-1-a 2Yi-2 - ... - ana-1 Yi-na-1)

Exemplo

Calcule uma soma cumulativa. Use o filtro iir com coeficientes denominadores=[1,-1] e numeradores=[1]:

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

Saída

x a
1.0 1.0
2,0 3.0
3,0 6,0
4,0 10.0

Veja como envolvê-lo em uma função:

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)

Saída

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