series_iir()
在數列上套用無限脈衝響應濾波器。
函式會採用包含動態數值陣列的運算式做為輸入,並套用無限脈衝響應濾波器。 藉由指定篩選係數,您可以使用 函式來:
函式會接受包含動態數位的數據行,以及篩選條件分 母 和 numerators 係數的兩個靜態動態陣列,並在數據行上套用篩選。 它會輸出新的動態陣列資料行,其中包含已篩選的輸出。
語法
series_iir(
系列,
numerators,
分母)
深入瞭解 語法慣例。
參數
名稱 | 類型 | 必要 | Description |
---|---|---|---|
系列 | dynamic |
✔️ | 數值的陣列,通常是 make-series 或 make_list 運算子所產生的輸出。 |
numerators | dynamic |
✔️ | 數值陣列,包含篩選條件的數值係數。 |
分母 | dynamic |
✔️ | 數值陣列,包含篩選條件的分母係數。 |
重要
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)
範例
計算累計總和。 搭配係數 分母=[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 |
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應