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