19 Haziran 2019 Çarşamba

Smoothing

Giriş
Dijital Sinyal işlemede gelen sinyal bazen ani zıplamalar gösterir. Bu ani değişimlerden etkilenmemek için smoothing algoritmaları kullanılır. Açıklaması şöyle.
The moving average is the most common filter in DSP, mainly because it is the easiest digital
filter to understand and use. In spite of its simplicity, the moving average filter is optimal for
a common task: reducing random noise while retaining a sharp step response. This makes it the premier filter for time domain encoded signals. However, the moving average is the worst filter for frequency domain encoded signals, with little ability to separate one band of frequencies from another. Relatives of the moving average filter include the Gaussian, Blackman, and multiplepass moving average. These have slightly better performance in the frequency domain, at the expense of increased computation time.
Moving Average Yöntemi
 Açıklaması şöyle.
The moving average of a list is a calculation resulting in a new, smoothed out list, created by averaging small overlapping sublists of the original.
"Running Average" ve "Moving Average" aynı şeylerdirMoving Average algoritmaları smoothing için en çok kullanılan algoritmalardan bir tanesi. Moving Average algoritmaları şimdiki değeri hesaplamak için geçmiş veriyi kullanır.

1. Simple Moving Average
Elimizde bir liste olsun. Bunu 3'lük alt listelere ayıralım
[8,  4,  6,  2,  2,  4]          Sublists:
                             <-  [8, 4, 6]
                             <-  [4, 6, 2]
                             <-  [6, 2, 2]
                             <-  [2, 2, 4]
Her listenin ortalaması şöyledir.
[6.0, 4.0, 3.3, 2.7]
2. Exponential Moving Average
En çok kullanılan Moving Average algoritmalarından bir tanesi Exponential Moving Average.
Açıklaması şöyle
"exponential moving average" is really just a single-pole lowpass filter

Formül şöyle
a(i+1) = tiny*data(i+1) + (1.0-tiny)*a(i)
Eğer tiny 1 - 1/N olarak seçilirse, window size olarak N seçilmiş gibi olur.

Formül şöyle de yazılabilir.
Sn = αY + (1-α)Sn-1

where Sn is the new average, α is the alpha, Y is the sample, and Sn-1 is the previous average.
Sadeleştirirsek şöyle olur. X yeni
Yn = αX + (1-α)Yn-1 → Yn = Yn-1 + α(X - Yn-1)
Bu da şöyledir. X yeni değer, Y ise eski değerdir.
Y += alpha * (X-Y);




Hiç yorum yok:

Yorum Gönder