Share via


series_iir()

Aplica un filtro Infinite Impulse Response en una serie.

La función toma una expresión que contiene una matriz numérica dinámica como entrada y aplica un filtro Infinite Impulse Response . Al especificar los coeficientes de filtro, puede usar la función para:

La función toma como entrada la columna que contiene la matriz dinámica y dos matrices dinámicas estáticas de los denominadores y los coeficientes de numeradores del filtro, y aplica el filtro en la columna. De este modo, genera una columna de matriz dinámica que contiene el resultado filtrado.

Syntax

series_iir(Serie,Numeradores,Denominadores)

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Requerido Descripción
Serie dynamic ✔️ Matriz de valores numéricos, normalmente la salida resultante de los operadores make-series o make_list .
Numeradores dynamic ✔️ Matriz de valores numéricos que contiene los coeficientes numeradores del filtro.
Denominadores dynamic ✔️ Matriz de valores numéricos que contiene los coeficientes de denominador del filtro.

Importante

El primer elemento de a (es decir, a[0]) no debe ser cero, para evitar la división en 0. Consulte la fórmula siguiente.

Fórmula recursiva del filtro

  • Considere una matriz de entrada X y coeficientes matrices a y b de longitudes n_a y n_b respectivamente. La función de transferencia del filtro que generará la matriz de salida Y, se define mediante:
Yi = a0-1(b0Xi + b1Xi-1 + ... +b n b-1 Xi-nb-1 - a1Yi-1-a2Yi-2 - ... -a na-1 Yi-na-1)

Ejemplo

Calcule una suma acumulativa. Use el filtro iir con coeficientes denominadores=[1,-1] y 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

Salida

x y
1.0 1.0
2.0 3.0
3.0 6.0
4.0 10.0

A continuación se muestra cómo encapsularlo en una función:

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)

Salida

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