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