series_iir()
Applique un filtre à réponse impulsionnelle infinie sur une série.
La fonction prend une expression contenant un tableau numérique dynamique en tant qu’entrée et applique un filtre Infinite Impulse Response . En spécifiant les coefficients de filtre, vous pouvez utiliser la fonction pour :
- calculer la somme cumulée de la série
- appliquer des opérations de lissage
- appliquer différents filtres passe-haut, passe-bande et passe-bas
La fonction prend comme entrée la colonne contenant le tableau dynamique et deux tableaux dynamiques statiques des coefficients de dénominateurs et de numérateurs du filtre, et applique le filtre sur la colonne. Elle génère une nouvelle colonne de tableau dynamique, qui contient la sortie filtrée.
Syntax
series_iir(
Série,
Numérateurs,
Dénominateurs)
Découvrez les conventions de syntaxe.
Paramètres
Nom | Type | Obligatoire | Description |
---|---|---|---|
Série | dynamic |
✔️ | Tableau de valeurs numériques, généralement la sortie résultante d’opérateurs make-series ou make_list . |
Numérateurs | dynamic |
✔️ | Tableau de valeurs numériques, contenant les coefficients de numérateur du filtre. |
Dénominateurs | dynamic |
✔️ | Tableau de valeurs numériques, contenant les coefficients de dénominateur du filtre. |
Important
Le premier élément de a
(autrement dit, a[0]
) ne doit pas être égal à zéro pour éviter la division par 0. Consultez la formule suivante.
Formule récursive du filtre
- Considérez un tableau d’entrée X et les tableaux de coefficients a et b de longueurs n_a et n_b respectivement. La fonction de transfert du filtre qui générera le tableau de sortie Y est définie par :
Exemple
Calculez une somme cumulée. Utilisez le filtre iir avec les coefficients dénominateurs=[1,-1] et les numérateurs=[1] :
let x = range(1.0, 10, 1);
print x=x, y = series_iir(x, dynamic([1]), dynamic([1,-1]))
| mv-expand x, y
Sortie
x | y |
---|---|
1.0 | 1.0 |
2.0 | 3.0 |
3,0 | 6.0 |
4.0 | 10.0 |
Voici comment l’encapsuler dans une fonction :
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)
Sortie
d | jj |
---|---|
[0,1,2,3,4] |
10 |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour