series_iir()
適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
系列に無限インパルス応答フィルターを適用します。
この関数は、入力としての動的な数値配列を含む式を受け取り、無限インパルス応答フィルターを適用します。 フィルター係数を指定することで、関数を使用して次のことができます。
この関数は、動的配列と、フィルターの denominators および numerators 係数の 2 つの静的動的配列を含む列を入力として受け取り、列にフィルターを適用します。 フィルター処理された出力を含む、動的配列の新しい列が出力されます。
構文
series_iir(
series,
numerators ,
denominators)
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
系列 | dynamic |
✔️ | 数値の配列。通常は、 make-series または make_list 演算子の結果の出力です。 |
numerators | dynamic |
✔️ | フィルターの分子係数を含む数値の配列。 |
分母 | dynamic |
✔️ | フィルターの分母係数を含む数値の配列。 |
重要
0 による除算を避けるため、a
の最初の要素 (つまり、a[0]
) は 0 にしないでください。 の数式を参照してください。
フィルターの再帰式
- 入力配列 X、および長さがそれぞれ n_a と n_b である係数配列 a と b を考えます。 出力配列 Y を生成するフィルターの転送関数は、次のように定義されます。
Yi = a0-1(b0Xi + b1Xi-1 + ... + bnb-1Xi-nb-1 - a1Yi-1-a2Yi-2 - ... - ana-1Yi-na-1)
例
累積合計を計算します。 係数 denominators=[1,-1] および 数値=[1] で iir フィルターを使用します。
let x = range(1.0, 10, 1);
print x=x, y = series_iir(x, dynamic([1]), dynamic([1,-1]))
| mv-expand x, y
出力
x | y |
---|---|
1.0 | 1.0 |
2.0 | 3.0 |
3.0 | 6.0 |
4.0 | 10.0 |
関数にラップする方法を次に示します。
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)
出力
d | dd |
---|---|
[0,1,2,3,4] |
10 |