다음을 통해 공유


series_iir()

적용 대상: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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