series_fir()series_fir()

Applique un filtre de réponse impulsionnelle finie (FIR) sur une série.Applies a Finite Impulse Response (FIR) filter on a series.

La fonction prend une expression contenant un tableau numérique dynamique comme entrée et applique un filtre à réponse impulsionnelle finie .The function takes an expression containing a dynamic numerical array as input and applies a Finite Impulse Response filter. En spécifiant les filter coefficients, vous pouvez les utiliser pour calculer la moyenne mobile, le lissage, la détection des modifications et bien d’autres cas d’utilisation.By specifying the filter coefficients, it can be used for calculating a moving average, smoothing, change-detection, and many more use cases. La fonction prend la colonne qui contient le tableau dynamique et un tableau dynamique statique des coefficients du filtre comme entrée, et applique le filtre sur la colonne.The function takes the column containing the dynamic array and a static dynamic array of the filter's coefficients as input, and applies the filter on the column. Elle génère une nouvelle colonne de tableau dynamique, qui contient la sortie filtrée.It outputs a new dynamic array column, containing the filtered output.

SyntaxeSyntax

series_fir(x , filtre x [ , normaliser[ , Centre]])series_fir(x, filter [, normalize[, center]])

ArgumentsArguments

  • x: cellule de tableau dynamique de valeurs numériques.x: Dynamic array cell of numeric values. En général, le résultat des opérateurs Make-Series ou make_list .Typically the resulting output of make-series or make_list operators.
  • filtre: expression constante contenant les coefficients du filtre (stocké sous la forme d’un tableau dynamique de valeurs numériques).filter: A constant expression containing the coefficients of the filter (stored as a dynamic array of numeric values).
  • Normalize: valeur booléenne facultative indiquant si le filtre doit être normalisé.normalize: Optional Boolean value indicating whether the filter should be normalized. Autrement dit, divisé par la somme des coefficients.That is, divided by the sum of the coefficients. Si le filtre contient des valeurs négatives, Normalize doit être spécifié comme false . sinon, le résultat sera null .If filter contains negative values, then normalize must be specified as false, otherwise result will be null. S’il n’est pas spécifié, une valeur par défaut de Normalize est supposée, en fonction de la présence de valeurs négatives dans le filtre.If not specified, then a default value of normalize is assumed, depending on the presence of negative values in the filter. Si Filter contient au moins une valeur négative, Normalize est supposé être false .If filter contains at least one negative value, then normalize is assumed to be false.
    La normalisation est un moyen pratique de s’assurer que la somme des coefficients est 1.Normalization is a convenient way to make sure that the sum of the coefficients is 1. Le filtre n’amplifie pas ou n’atténue pas la série.Then the filter doesn't amplify or attenuate the series. Par exemple, la moyenne mobile de quatre emplacements peut être spécifiée par Filter= [1, 1, 1, 1] et normalized= true, ce qui est plus facile que de taper [0.25, 0.25.0.25, 0.25].For example, the moving average of four bins could be specified by filter=[1,1,1,1] and normalized=true, which is easier than typing [0.25,0.25.0.25,0.25].
  • Center: valeur booléenne facultative qui indique si le filtre est appliqué symétriquement sur une fenêtre de temps avant et après le point actuel, ou sur une fenêtre de temps à partir du point actuel vers l’arrière.center: An optional Boolean value that indicates whether the filter is applied symmetrically on a time window before and after the current point, or on a time window from the current point backwards. Par défaut, Center a la valeur false, ce qui correspond au scénario de données de streaming, où nous pouvons uniquement appliquer le filtre sur les points actuels et antérieurs.By default, center is false, which fits the scenario of streaming data, where we can only apply the filter on the current and older points. Toutefois, pour un traitement ad hoc, vous pouvez le définir sur true , en le conservant à la synchronisation avec la série chronologique.However, for ad-hoc processing you can set it to true, keeping it synchronized with the time series. Voir les exemples ci-dessous.See examples below. Ce paramètre contrôle le délai de groupedu filtre.This parameter controls the filter’s group delay.

ExemplesExamples

  • Calculez une moyenne mobile de cinq points en définissant Filter= [1, 1, 1, 1, 1] et Normalize = true (par défaut).Calculate a moving average of five points by setting filter=[1,1,1,1,1] and normalize=true (default). Notez l’effet de Center = false (par défaut) par rapport à true :Note the effect of center=false (default) vs. true:
range t from bin(now(), 1h)-23h to bin(now(), 1h) step 1h
| summarize t=make_list(t)
| project id='TS', val=dynamic([0,0,0,0,0,0,0,0,0,10,20,40,100,40,20,10,0,0,0,0,0,0,0,0]), t
| extend 5h_MovingAvg=series_fir(val, dynamic([1,1,1,1,1])),
         5h_MovingAvg_centered=series_fir(val, dynamic([1,1,1,1,1]), true, true)
| render timechart

Cette requête renvoie :This query returns:
5h_MovingAvg: filtre de moyenne mobile de cinq points.5h_MovingAvg: Five points moving average filter. Le pic est lissé et son point culminant est déplacé de (5-1)/2 = 2 h.The spike is smoothed and its peak shifted by (5-1)/2 = 2h.
5h_MovingAvg_centered: même, mais en définissant center=true , le pic reste à son emplacement d’origine.5h_MovingAvg_centered: Same, but by setting center=true, the peak stays in its original location.

Sapin de série

  • Pour calculer la différence entre un point et son précédent, définissez Filter= [1,-1].To calculate the difference between a point and its preceding one, set filter=[1,-1].
range t from bin(now(), 1h)-11h to bin(now(), 1h) step 1h
| summarize t=make_list(t)
| project id='TS',t,value=dynamic([0,0,0,0,2,2,2,2,3,3,3,3])
| extend diff=series_fir(value, dynamic([1,-1]), false, false)
| render timechart

Sapin de série