Digitalni filtr napeti potenciometru jednoduch dig. filtr celocisleny
Lukáš Grepl
L.Grepl@sh.cvut.cz
Čtvrtek Duben 9 12:34:42 CEST 2009
> Dekuji za vysvetleni ... hledal jsem u sebe v scriptech a tau nenasel
> asi to bude jeste nekde jinde ... , musim se podivat.
http://en.wikipedia.org/wiki/Low-pass_filter
http://en.wikipedia.org/wiki/Time_constant
> Jinak vzhledem k tomu, ze y = y*neco + x, kde neco < 1, tak se filtr
> nemuze rozkmitat nebo jak bych to napsal. TO neco je vlastne pol
> toho filtru jestli tomu dobre rozumim.
Ano, myslím že máte pravdu. Pokud máme filtr
Y[n] = k*Y[n-1] + X[n]
potom
Y[n] - k*Y[n-1] = X[n]
převedeme do operátorového počtu
Y(z) - k*Y(z)*z^-1 = X(z)
Y(z)*(1 - k*z^-1) = X(z)
a máme přenos
G(z) = Y(z)/X(z) = 1/(1 - k*z^-1)
G(z) = z/(z - k)
Takže to k je pól a aby byl filtr stabilní, musí platit abs(k) < 1. Ale
už jsem tohle dlouho neviděl, tak snad je to odvození správně.
> Taky pokud budu udrzovat v celocislene matice soucet tech poslednich
> hodnot, tak se vyhnu problemum (coz vyjadroval i ten Vas vzorec, jak
> jste dobre napsal.)
Obecně jsou pro počítání v celočíselné aritmetice vhodnější FIR filtry
než IIR, to je rozhodně pravda. Speciálním případem FIR filtru je
zmíněné klouzavé průměrování - moving average.
To co jsem měl ale na mysli - a nevím jestli jsem byl správně pochopen -
je, že ta varianta IIR filtru, kterou jsem popsal na základě vašeho
"Algoritmu pro prumer posl.4", tj. obecně:
A[n] = A[n-1] - A[n-1]/k + X[n]
Y[n] = A[n]/k
k >= 1
má oproti základní podobě Y[n] = m*Y[n-1] + (1-m)*X[n] tu výhodu, že i
při počítání v celočíselné aritmetice nedochází k nežádoucí hysterezi
(alespoň mi to tak připadá, nemám to ověřeno a nezkoumal jsem to do
hloubky). Jinak jsou obě verze algebraicky ekvivalentní (m = 1 - 1/k).
Lukáš Grepl
Další informace o konferenci Hw-list