series_iir()
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
계열에 무한 임펄스 응답 필터를 적용합니다.
함수는 동적 숫자 배열이 포함된 식을 입력으로 사용하고 무한 임펄스 응답 필터를 적용합니다. 필터 계수를 지정하여 함수를 사용하여 다음을 수행할 수 있습니다.
이 함수는 동적 배열과 필터 분모 및 숫자 계수의 두 정적 동적 배열을 포함하는 열을 입력으로 사용하고 열에 필터를 적용합니다. 필터링된 출력을 포함하는 새 동적 배열 열을 출력합니다.
구문
series_iir(
계열,
숫자 ,
분모)
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
시리즈 | dynamic |
✔️ | 숫자 값의 배열로, 일반적으로 메이크 계열 또는 make_list 연산자의 결과 출력입니다. |
분자 | dynamic |
✔️ | 필터의 숫자 계수를 포함하는 숫자 값의 배열입니다. |
분모 | dynamic |
✔️ | 필터의 분모 계수를 포함하는 숫자 값의 배열입니다. |
Important
0으로 나누기를 방지하기 위해 (즉, a[0]
)의 a
첫 번째 요소는 0이 되어서는 안됩니다. 다음 수 식을 참조하세요.
필터의 재귀 수식
- 입력 배열 X와 계수는 각각 n_a 및 n_b 길이와 b의 배열을 고려합니다. 출력 배열 Y를 생성하는 필터의 전송 함수는 다음으로 정의됩니다.
Y i = a0-1(b0Xi + b1Xi-1 + + bnb-1 Xi-nb-1 - a1Yi-1-a 2Yi-2 - ... - a na-1 Yi-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 |