共用方式為


series_iir()

適用於:✅Microsoft網狀架構Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel

在數列上套用無限脈衝響應篩選。

函式會採用包含動態數值數位的表達式做為輸入,並套用 無限脈衝響應 篩選。 藉由指定篩選係數,您可以使用 函式來:

函式會接受包含動態數位的數據行和兩個靜態動態數位的篩選 分母分子 係數的輸入,並在數據行上套用篩選。 它會輸出新的動態數位數據行,其中包含篩選的輸出。

語法

series_iir(數列, numerators , 分母)

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
系列 dynamic ✔️ 數值陣列,通常是make-seriesmake_list運算子所產生的輸出。
numerators dynamic ✔️ 數值陣列,包含篩選條件的分子係數。
分母 dynamic ✔️ 數值陣列,包含篩選條件的分母係數。

重要

第一個 a 元素 (也就是 a[0]) 不得為零,以避免除以 0。 請參閱下列 公式

篩選條件的遞歸公式

  • 請考慮輸入陣列 X,以及分別n_a和n_b長度的 a 和 b。 將產生輸出陣列 Y 之篩選的傳輸函式是由下列方式定義:
Y i = 0-1(b 0X i + b1Xi-1 + ... + b n b-1 Xi-n b-1 - a1Yi-1-a 2Yi-2 - ... - ana-1 Yi-n-1)

範例

計算累計總和。 搭配係數 分母=[1,-1] 和 numerators=[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