次の方法で共有


series_fir()

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

系列に有限インパルス応答 (FIR) フィルターを適用します。

この関数は、入力として動的数値配列を含む式を受け取り、無限インパルス応答フィルターを適用します。 filter 係数を指定することによって、移動平均の計算、平滑化、変更検出などのさまざまなユース ケースに使用できます。 この関数は、入力としてフィルターの係数の動的配列と静的配列を含む列を受け取り、列にフィルターを適用します。 フィルター処理された出力を含む、動的配列の新しい列が出力されます。

構文

series_fir(series, filter [, 正規化[, center]])

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
系列 dynamic ✔️ 数値の配列。
フィルター dynamic ✔️ フィルターの係数を含む数値の配列。
normalize bool フィルターを正規化するかどうかを示します。 つまり、係数の合計で除算されます。 フィルターに負の値が含まれている場合は、normalizefalse として指定する必要があります。そうでない場合は、結果が null になります。 指定しない場合、filterに負の値が存在するかどうかに応じて、既定値の true が想定されます。 filter に少なくとも 1 つの負の値が含まれている場合は、normalizefalse と見なされます。
center bool フィルターを現在のポイントの前後の時間枠に対称的に適用するか、または現在のポイントから逆方向の時間枠に適用するかを示します。 既定では、中央は falseであり、現在のポイントと古いポイントにのみフィルターを適用できるように、ストリーミング データのシナリオに適合します。 ただし、アドホック処理の場合は、それを true に設定して、時系列との同期を維持することができます。 以下の例を参照してください。 このパラメーターは、フィルターのグループ遅延を制御します。

ヒント

正規化は、係数の合計が 1 であることを確認するための便利な方法です。 正規化trueされると、フィルターは系列を増幅または減衰しません。 たとえば、4 つのビンの移動平均は、 filter=[1,1,1,1,1]、 正規化=trueで指定できます。これは、「0.25,0.25.0.25,0.25]」と入力するよりも簡単です。

返品

フィルター処理された出力を含む新しい動的配列列。

  • filter=[1,1,1,1,1] と normalize=true (既定値) を設定することで、5 つのポイントの移動平均を計算します。 center=false (既定値) の場合と 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

このクエリは次の結果を返します。
5h_MovingAvg: 5 つのポイントの移動平均フィルター。 スパイクを平滑化し、ピークを (5-1)/2 = 2h ずらします。
5h_MovingAvg_centered: 同じですが、center=true を設定することによって、ピークが元の場所に留まります。

シリーズのモミ。

  • あるポイントとその前のポイントの差を計算するには、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

シリーズモミ 2.