Detrend (FPScript)
Supprime une tendance constante, linéaire ou adaptative d'un ensemble de données.
Syntaxe
Detrend(Signal, [ Mode = DETREND_CONSTANT ] [ , Parameter = 0 ])
La syntaxe de la fonction Detrend se compose des éléments suivants :
Section |
Description |
||||||||
---|---|---|---|---|---|---|---|---|---|
Signal |
L'ensemble de données avec la tendance que vous voulez supprimer. Toutes les structures de données sont autorisées, sauf Scalaire et Liste. Tous les types de données numériques sont autorisés. Pour les types de données complexes, un nombre est formé. Si l'argument est une liste, alors la fonction est exécutée pour chaque élément de la liste et le résultat est également une liste. |
||||||||
Mode |
Précise si une tendance constante, linéaire ou adaptative doit être soustraite. Si vous omettez l'argument, une tendance constante est soustraite. L'argument Mode peut avoir les valeurs suivantes :
Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété. Si l'argument n'est pas spécifié, il est défini à la valeur par défaut DETREND_CONSTANT . |
||||||||
Parameter |
Contrôle l'algorithme pour le calcul de la tendance adaptative. Si il est positif et spécifié sans unité, il précise le nombre N de voisins à prendre en compte pour déterminer le prochain point de mesure pertinent. Si il est négatif ou spécifié avec l'unité "%", il spécifie l'hystérésis en pourcentage de l'étendue de l'ensemble de données avec laquelle les maxima locaux sont recherchés pour déterminer N automatiquement. Si vous omettez l'argument ou passez 0, cela correspond à une hystérésis de 5%. Les structures de données autorisées sont Scalaire. Tous les types de données numériques sont autorisés. Pour les types de données complexes, un nombre est formé. Si l'argument est une liste, alors son premier élément est pris. S'il s'agit à nouveau d'une liste, le processus est répété. Si l'argument n'est pas spécifié, il est défini à la valeur par défaut 0 . |
Remarques
Le résultat a la même structure et la même unité que l'argument Signal.
Pour les structures de données composées, seule la composante Y est prise en compte et la composante X ou, le cas échéant, Z est copiée dans le résultat sans modification. Pour les matrices de données et les séries de signaux, le calcul est effectué pour chaque colonne ou chaque signal qu'elle contient. Les types de données temps calendaire et période de temps sont conservés dans le résultat. Pour tous les autres types de données numériques, le résultat est une valeur à virgule flottante de 64 bits.
Lors de la détermination de la tendance constante ou linéaire, la valeur moyenne du signal est d'abord calculée, puis une recherche commence pour le premier et le dernier passage de niveau en utilisant cette valeur. Si deux passages de niveau ont été trouvés, la valeur moyenne ou la meilleure ligne droite n'est calculée que pour l'intervalle entre ces deux passages à niveau. Cela permet d'éviter les erreurs qui se produisent à la fin de l'ensemble de données à cause de la coupure de phase des signaux périodiques. Si aucun passage de niveau n'a été trouvé, alors toutes les valeurs sont incluses dans le calcul.
Pour le calcul de la tendance adaptative, l'enveloppe supérieure et inférieure du signal sont calculées avec le même algorithme, qui est également utilisé par les fonctions UpperEnvelope et LowerEnvelope. Ces enveloppes sont ensuite échantillonnées par interpolation linéaire pour toutes les valeurs X de l'ensemble de données. La moyenne arithmétique est alors formée à partir de ces deux enveloppes. La tendance ainsi obtenue est soustraite des données initiales.
Disponible dans
FlexPro Basic, Professional, Developer Suite
Exemples
Detrend(Signal) |
Correspond à Signal - Trend(Signal). |
Integral(Detrend(Signal, DETREND_LINEAR)) |
Supprime une tendance linéaire du signal avant l'intégration. |
Detrend(Signal, DETREND_ADAPTIVE, 2%) |
Supprime une tendance adaptative du signal. Le nombre de voisins pour la recherche des points de mesure des enveloppes est déterminé en utilisant les maxima locaux dans le signal, qui sont recherchés en utilisant une hystérésis de 2%. |
DCRemovalFilter(DataSet) |
Supprime le décalage (offset) d'un ensemble de données (y compris les fréquences voisines) à l'aide de la fonction DCRemovalFilter (filtre passe-haut). |