series_iir()
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft 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:
- Calcular a soma cumulativa da série
- Aplicar operações de suavização
- Aplique vários filtros passa-alta, passa-banda e passa-baixa
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:
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 |