series_fir()
Stosuje filtr Finite Impulse Response (FIR) w serii.
Funkcja przyjmuje wyrażenie zawierające dynamiczną tablicę liczbową jako dane wejściowe i stosuje filtr Finite Impulse Response . Określając filter
współczynniki, można go użyć do obliczania średniej ruchomej, wygładzania, wykrywania zmian i wielu innych przypadków użycia. Funkcja przyjmuje kolumnę zawierającą tablicę dynamiczną i statyczną tablicę dynamiczną współczynników filtru jako dane wejściowe i stosuje filtr w kolumnie. Zwraca nową kolumnę tablicy dynamicznej zawierającą odfiltrowane dane wyjściowe.
Składnia
series_fir(
Serii,
filter [,
normalize[,
center]])
Dowiedz się więcej o konwencjach składniowych.
Parametry
Nazwa | Typ | Wymagane | Opis |
---|---|---|---|
Serii | dynamic |
✔️ | Tablica wartości liczbowych. |
Filtr | dynamic |
✔️ | Tablica wartości liczbowych zawierających współczynniki filtru. |
Normalizacji | bool |
Wskazuje, czy filtr powinien być znormalizowany. Oznacza to, że jest podzielona przez sumę współczynników. Jeśli filtr zawiera wartości ujemne , normalizacja musi być określona jako false , w przeciwnym razie wynikiem będzie null . Jeśli nie zostanie określona, przyjmuje się, że przyjmuje się wartość true domyślną w zależności od obecności wartości ujemnych w filtrze. Jeśli filtr zawiera co najmniej jedną wartość ujemną, przyjmuje się, że normalizacja ma wartość false . |
|
Centrum | bool |
Wskazuje, czy filtr jest stosowany symetrycznie w przedziale czasu przed bieżącym punktem lub w przedziale czasu z bieżącego punktu do tyłu. Domyślnie środek to false , który pasuje do scenariusza przesyłania strumieniowego danych, dzięki czemu możemy zastosować filtr tylko do bieżących i starszych punktów. Jednak w przypadku przetwarzania ad hoc można ustawić go na true , zachowując synchronizację z szeregami czasowymi. Zobacz poniższe przykłady. Ten parametr steruje opóźnieniem grupy filtru. |
Porada
Normalizacja jest wygodnym sposobem upewnienia się, że suma współczynników wynosi 1. Gdy znormalizowana wartość to true
, filtr nie wzmacnia ani nie osłabia serii. Na przykład średnia ruchoma czterech przedziałów może być określona przez filtr =[1,1,1,1] i znormalizowana=true
, co jest prostsze niż wpisywanie [0,25,0,25.0.25,0,25].
Zwraca
Nowa kolumna tablicy dynamicznej zawierająca odfiltrowane dane wyjściowe.
Przykłady
- Oblicz średnią ruchomą pięciu punktów, ustawiając wartość filter=[1,1,1,1] i normalizuj=
true
(wartość domyślna). Zwróć uwagę na efekt środka=false
(wartość domyślna) atrue
:
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
To zapytanie zwraca:
5h_MovingAvg: Filtr średniej ruchomej pięciu punktów. Skok jest wygładzony i jego szczyt przesunięty o (5-1)/2 = 2h.
5h_MovingAvg_centered: To samo, ale przez ustawienie center=true
, szczyt pozostaje w pierwotnej lokalizacji.
- Aby obliczyć różnicę między punktem a poprzednim, ustaw filtr =[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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla