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:
- calcular la suma acumulativa de la serie
- aplicar operaciones de suavizado
- aplicar varios filtros de paso alto, paso de banda y paso bajo
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:
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 |
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de