series_fir()
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
계열에 FIR(유한 임펄스 응답) 필터를 적용합니다.
함수는 동적 숫자 배열을 포함하는 식을 입력으로 사용하고 유한 임펄스 응답 필터를 적용합니다. 계수를 지정하여 filter
이동 평균, 다듬기, 변경 감지 및 더 많은 사용 사례를 계산하는 데 사용할 수 있습니다. 이 함수는 필터 계수의 동적 배열과 동적 배열이 포함된 열을 입력으로 사용하고 열에 필터를 적용합니다. 필터링된 출력을 포함하는 새 동적 배열 열을 출력합니다.
구문
series_fir(
계열,
필터 [,
정규화[,
가운데]])
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
시리즈 | dynamic |
✔️ | 숫자 값의 배열입니다. |
filter | dynamic |
✔️ | 필터 계수를 포함하는 숫자 값의 배열입니다. |
normalize | bool |
필터를 정규화해야 하는지 여부를 나타냅니다. 즉, 계수의 합계로 나뉩니다. 필터에 음수 값 이 포함된 경우 정규화 가 로 false 지정되어야 합니다. 그렇지 않으면 결과가 됩니다 null . 지정하지 않으면 필터에 음수 true 값이 있는 경우 기본값으로 간주됩니다. 필터에 음수 값이 하나 이상 포함된 경우 정규화는 으로 false 간주됩니다. |
|
center | bool |
필터가 현재 지점 앞과 뒤의 시간 창에 대칭으로 적용되는지 또는 현재 시점의 시간 창에서 뒤로 적용되는지 여부를 나타냅니다. 기본적으로 중심은 false 스트리밍 데이터의 시나리오에 적합하므로 현재 및 이전 지점에만 필터를 적용할 수 있습니다. 그러나 임시 처리의 경우 시계열과 동기화된 상태로 유지하도록 true 설정할 수 있습니다. 아래 예제를 참조하세요. 이 매개 변수는 필터의 그룹 지연을 제어합니다. |
팁
정규화는 계수의 합계가 1인지 확인하는 편리한 방법입니다. 정규화되면 true
필터가 계열을 증폭하거나 감쇠하지 않습니다. 예를 들어 4개의 bin 이동 평균은 filter=[1,1,1,1]로 지정하고 정규화=true
할 수 있으며 이는 [0.25,0.25.0.25,0.25]를 입력하는 것보다 더 간단합니다.
반품
필터링된 출력을 포함하는 새 동적 배열 열입니다.
예제
- filter=[1,1,1,1,1]를 설정하여 이동 평균을 5포인트로 계산하고 정규화=
true
(기본값)합니다. 가운데false
=(기본값) 및 다음의 효과를 확인합니다.true
range t from bin(now(), 1h) - 23h to bin(now(), 1h) step 1h
| summarize t=make_list(t)
| project
id='TS',
val=dynamic([0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 20, 40, 100, 40, 20, 10, 0, 0, 0, 0, 0, 0, 0, 0]),
t
| extend
5h_MovingAvg=series_fir(val, dynamic([1, 1, 1, 1, 1])),
5h_MovingAvg_centered=series_fir(val, dynamic([1, 1, 1, 1, 1]), true, true)
| render timechart
이 쿼리는 다음을 반환합니다.
5h_MovingAvg: 평균 필터를 이동하는 5포인트입니다. 스파이크가 부드러워지고 피크가 (5-1)/2 = 2h로 이동됩니다.
5h_MovingAvg_centered: 동일하지만 설정center=true
에 따라 피크는 원래 위치에 유지됩니다.
- 점과 이전 점의 차이를 계산하려면 filter=[1,-1]를 설정합니다.
range t from bin(now(), 1h) - 11h to bin(now(), 1h) step 1h
| summarize t=make_list(t)
| project id='TS', t, value=dynamic([0, 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 3])
| extend diff=series_fir(value, dynamic([1, -1]), false, false)
| render timechart