series_fir()
Menerapkan filter Respons Impuls Terbatas (FIR) pada seri.
Fungsi tersebut mengambil ekspresi yang berisi array numerik dinamis sebagai input dan menerapkan filter Respons Impuls Terbatas. Dengan menentukan koefisien filter
, fungsi ini dapat digunakan untuk menghitung rata-rata bergerak, penghalusan, deteksi perubahan, dan kasus penggunaan lainnya. Fungsi ini mengambil kolom yang berisi array dinamis dan array dinamis statis koefisien filter sebagai input, dan menerapkan filter pada kolom. Output yang dihasilkan adalah kolom array dinamis baru, yang berisi output yang difilter.
Sintaks
series_fir(
filter seri,
[,
normalisasi[,
tengah]])
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
series | dynamic |
✔️ | Array nilai numerik. |
filter | dynamic |
✔️ | Array nilai numerik yang berisi koefisien filter. |
normalize | bool |
Menunjukkan apakah filter harus dinormalisasi. Yaitu, dibagi dengan jumlah koefisien. Jika filter berisi nilai negatif, maka normalisasi harus ditentukan sebagai false , jika tidak hasilnya akan berupa null . Jika tidak ditentukan, maka nilai default diasumsikan true , tergantung pada adanya nilai negatif dalam filter. Jika filter berisi setidaknya satu nilai negatif, maka normalisasi diasumsikan menjadi false . |
|
pusat | bool |
Menunjukkan apakah filter diterapkan secara simetris pada jendela waktu sebelum dan sesudah titik saat ini, atau pada jendela waktu dari titik saat ini mundur. Secara default, pusat adalah false , yang sesuai dengan skenario data streaming sehingga kita hanya dapat menerapkan filter pada titik saat ini dan yang lebih lama. Namun, untuk pemrosesan ad-hoc Anda dapat mengaturnya ke true , menjaganya tetap sinkron dengan rangkaian waktu. Lihat contoh di bawah. Parameter ini mengontrol penundaan grup filter. |
Tip
Normalisasi adalah cara yang mudah untuk memastikan bahwa jumlah koefisien adalah 1. Saat dinormalisasi adalah true
, filter tidak memperkuat atau meredakan seri. Misalnya, rata-rata bergerak empat bin dapat ditentukan oleh filter=[1,1,1,1] dan dinormalisasi=true
, yang lebih sederhana daripada mengetik [0.25,0.25.0.25,25].
Mengembalikan
Kolom array dinamis baru yang berisi output yang difilter.
Contoh
- Hitung rata-rata bergerak lima titik dengan mengatur filter=[1,1,1,1,1] dan normalisasi=
true
(default). Perhatikan efek center=false
(default) vs.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
Kueri ini mengembalikan:
5h_MovingAvg: Filter rata-rata bergerak lima titik. Lonjakan dihaluskan dan puncaknya bergeser sebesar (5-1)/ 2= 2 jam.
5h_MovingAvg_centered: Sama, tetapi dengan mengatur center=true
, puncaknya tetap berada pada lokasi aslinya.
- Untuk menghitung perbedaan antara titik dan yang sebelumnya, atur 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk