Digitalni filtr napeti potenciometru
Aleš Novák
ales.novak@t-email.cz
Čtvrtek Duben 9 18:50:05 CEST 2009
TH> Konverguje to podstatně pomaleji než by konvergoval klouzavý průměr.
TH> Y[n] = Y[n-1]- Y[n-1]/k + X[n]
TH> k=4, X=3
TH> Y[0] = 0
TH> Y[1] = 0 - 0/4 + 3 = 3
TH> Y[2] = 3 - 3/4 + 3 = 6
TH> Y[3] = 6 - 6/4 + 3 = 8
TH> Y[4] = 8 - 8/4 + 3 = 9
TH> Y[5] = 9 - 9/4 + 3 = 10
TH> Y[6] = 10 - 10/4 + 3 = 11
TH> Y[7] = 11 - 11/4 + 3 = 12
TH> Y[8] = 12 - 12/4 + 3 = 12
A ted zmena X=2
Y[9] = 12 - 12/4 + 2 = 11
Y[10] = 11 - 11/4 + 2 = 11
Y[11] = 11 - 11/4 + 2 = 11
Dle meho nazoru to nefunguje. Meli bysme dospet k hodnote 8.
Ja kdysi pouzil nasledujici metodu celociselne filtrace (myslim, ze je
to normalni filtr prvniho radu):
- Vypocitam rozdil (nova hodnota - filtrovana hodnota).
- Tento rozdil vydelim konstantou tlumeni a vysledek
prictu k filtrovane hodnote. V pripade float matematiky tady
koncime. Tento postup uz tady byl uveden. V celociselne matematice
ale zbyde po deleni jeste zbytek (kladny nebo zaporny).
- Tyto zbytky postupne scitam do sumy zbytku.
- pokud abs(suma zbytku)>=konstanta tlumeni, zvetsim nebo zmensim
filtrovanou hodnotu o jedna podle znamenka sumy zbytku a tuto sumu
zbytku zmensim nebo zvetsim o konstantu tlumeni tak, aby se priblizila
k nule.
Jde o to, ze kdyz bude rozdil nove a filtrovane hodnoty napr. jedna,
tak postupnym kumulovanim zbytku drive nebo pozdeji tyto kumuly
dosahnou hodnoty tlumeni a filtrovanou hodnotu "postrcim" spravnym
smerem a kumuly srazim o hodnotu tlumeni blize k nule.
Pouzil jsem to v x51 v matematice bez znamenka a bylo to trochu
slozitejsi. Ale v Simatiku S5 se znamenkem to bylo presne podle popisu
vyse.
Jeste bych mel jednu otazku k filtrum: filtr druheho radu sestavim
tak, ze takoveto filtry zaradim dva za sebe? Tedy ze druhy filtr bude
filtrovat vysledek z prvniho filtru. Ma to nejaky smysl v praxi?
Novalex
HS>> Ja jsem to resil trochu jinak a tady IMHO float aritmetika potreba neni:
HS>> // Xs je suma N vzorku
HS>> Xs -= Xs/N;
HS>> Xs += AD;
HS>> X = Xs/N;
HS>> Hynek Sladky
HS>> Lukáš Grepl wrote:
>>>>>>Na jednoduché zatlumení nepotřebujete kruhový buffer. Stačí 1 proměnná. X
>>>>>>X = Xo + ( AD - Xo ) / n
>>>>>>Xo - proměnná před měřením
>>>>>>AD - výsledek měření
>>>>>>n - útlum
Další informace o konferenci Hw-list