07-07-2015, 08:37 AM
(07-06-2015, 10:54 PM)Macola Wrote: U suštini se oversemplovanje svodi (bilo floating point ili ne) na sabiranje na primer 10 rezultata uzastopce, potom deljenje tog broja sa 10.
I onda dobiješ osrednjenu vrednost toga sa eliminisanim šumom i neravninama.
Za proračun aritm. srednje vrednosti postoji i rekurzivna formula:
Xsr,i = (Xsr,i-1)*(i-1)/i + Xi/i
gde je i tekući indeks, Xi trenuti uzorak, Xsr,i trenutna srednja vrednost, a Xsr,i-1 srednja vrednost kod indeksa (i-1).
Uzmimo kao primer niz uzoraka Xi=(1, 2, 2, 1), i=1..4, čija aritm. srednja vrednost iznosi 6/4 = 1,5. Rekurzivni račun daje:
i=1: Xsr,1 = X1 = 1
i=2: Xsr,2 = Xsr,1*(2-1)/2 + X2/2 = 1,5
i=3: Xsr,3 = Xsr,2*(3-1)/3 + X3/3 = 1.66666
i=4: Xsr,4 = Xsr,3*(4-1)/4 + X4/4 = 1,4999...
Naravno, gornji račun podrazumeva korišćenje FP aritmetike.
Prednost rekurzivne formule kod instrumenata sa displejom je mogućnost vizuelnog praćenja konvergencije krajnjeg rezultata u realnom vremenu.
Inače, ja ovu formulu koristim uvek kada mi treba aritmetička srednja vrednost jer je ekvivalentna standardnoj formuli, ali je matematički i programski elegantnija.
Za razliku od formule koju je naveo Nebojša, ova ima promenljive faktore težine i zato drukčiju frekventnu karakteristiku.
Pozdrav