series_iir()
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
在數列上套用無限脈衝響應篩選。
函式會採用包含動態數值數位的表達式做為輸入,並套用 無限脈衝響應 篩選。 藉由指定篩選係數,您可以使用 函式來:
函式會接受包含動態數位的數據行和兩個靜態動態數位的篩選 分母 和 分子 係數的輸入,並在數據行上套用篩選。 它會輸出新的動態數位數據行,其中包含篩選的輸出。
語法
series_iir(
數列,
numerators ,
分母)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
系列 | dynamic |
✔️ | 數值陣列,通常是make-series或 make_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 |