Lågpassfilter i mjukvara!

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Gimbal
Inlägg: 8570
Blev medlem: 20 april 2005, 15:43:53

Re: Lågpassfilter i mjukvara!

Inlägg av Gimbal »

jesse skrev:Ta indata minus filter_output på lågpassfiltret så borde det väl bli högpass? (eller har jag helt fel?)
Ja det låter ju självklart nu när ni säger det. :humm:
Nerre
Inlägg: 27143
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Lågpassfilter i mjukvara!

Inlägg av Nerre »

Det beror väl lite på vad det är för filter, de flesta diskreta filter (kallas det väl när det handlar om sampel) innebär ju en viss fördröjning. Då kan man ju inte subtrahera en utsignal som kanske är fördröjd 3-4 sampel direkt från insignalen.

(Det är 15 år sen jag pillade med sånt där sist, som exjobb implementerade jag ett filter på en TMS320-C80, men det var inte jag som hade konstruerat filtret, jag bara kodade det.)
Bonzo
Inlägg: 32
Blev medlem: 27 april 2005, 17:52:11

Re: Lågpassfilter i mjukvara!

Inlägg av Bonzo »

Men man bör änndå alltid ha ett analogt filter innan gärna så brant som möjligt för att undvika vikning enligt Nyquistkriteriet.
Användarvisningsbild
Kubbuth
Inlägg: 161
Blev medlem: 29 mars 2011, 11:10:16
Ort: Hässelby, Stockholm

Re: Lågpassfilter i mjukvara!

Inlägg av Kubbuth »

Man kan köra unsigned på rubbet om man gör

Kod: Markera allt

data = |x|
tecken = x/data

bearbeta data osignerat här

retunera bearbetad_data*tecken
Så har jag alltid jobbat med samples.

Det fina är att man kan göra waveshape med x^y (edit, om x är mellan 0 och 1, jag har alltid använd en våg som är +-1 men inte större), låter man y öka/minska eller gå i våg får man effekter som påminner om filtersvep.
Användarvisningsbild
Icecap
Inlägg: 26610
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Lågpassfilter i mjukvara!

Inlägg av Icecap »

Skitbra! Har ett projekt där ett antal temperatursensorer behöver rensas till rimligt stabila data och detta är skitbra!

Ska sedan (när jag kommer hem, sitter vid stora tjejens fotbollsträning via mobilen) kolla om jag faktisk kan få lite extra bits på det vis, alltså om det är lagom med brus till att klämma ut lite extra bits.

Samtidig kan jag trilla ganska mycket på den utjämningsrutin jag skrev för att få stabila värden, ska se hur bra det blev senare ikväll.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Lågpassfilter i mjukvara!

Inlägg av jesse »

Jag läste i en bok om reglerteknik att detta filter (alltså "mitt" filter i första inlägget) även kallas Kalmanfilter. Det tog lite tid att fatta att det var samma sak, då de använde sig av ganska (onödigt) långa matematiska formler för att uttrycka det som skrivs med bara en rad kod.
Bild :wacko:

Här kommer högpassfiltret (blå kurva) (dvs indata (gul) minus utdata (orange) från lågpassfilter).
Av naturliga orsaker försvinner DC-komponenten, så resultatet hamnar kring noll-axeln:
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Gimbal
Inlägg: 8570
Blev medlem: 20 april 2005, 15:43:53

Re: Lågpassfilter i mjukvara!

Inlägg av Gimbal »

Nja ett kalmanfilter är väl ändå lite mer än en ett lågpassfilter.
Vad jag förstått (vilket inte är så mycket om just kalmanfilter, men ändå) är att kalmanfilter används för att mixa ihop flera olika signaler till en utsignal.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Lågpassfilter i mjukvara!

Inlägg av jesse »

Det kan hända att kalmanfilter går att applicera på fler dimensioner, men med en insignal så blir det samma formel, om man förenklar alla variabler och konstanter.

Kalman filter
Gimbal
Inlägg: 8570
Blev medlem: 20 april 2005, 15:43:53

Re: Lågpassfilter i mjukvara!

Inlägg av Gimbal »

Nja igen, själva vitsen med ett kalmanfilter är (tror jag) iden att blanda flera signaler. Har man bara en signal så är det inte längre ett kalmanfilter.

Ett vanligt ex brukar vara en bil på en rak väg, vars hastighet och position fås från en gps med jämna mellanrum. Men om man nu vill veta positionerna mellan gps uppdateringarna då? Då sätter man upp en datormodell över hur bilen rör sig som då kan köras med högre frekvens, det får då bli signal två om GPS signalen är signal ett. Dessa två signaler kan då mixas med ett kalmanfilter på något lurigt sätt och ut får man position och hastighet med hög frekvens.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Lågpassfilter i mjukvara!

Inlägg av jesse »

Då har författaren till boken om reglersystem haft fel, för enligt den boken (minns ej titel) så var detta ett kalman-filter:

y(n) = 0.99 * y(n-1) + 0.009*x(n)

där y(n) är filter-utdata och x(n) är inkommande samples.
Gimbal
Inlägg: 8570
Blev medlem: 20 april 2005, 15:43:53

Re: Lågpassfilter i mjukvara!

Inlägg av Gimbal »

Ja det låter mycket märkligt tycker jag, men å andra sidan så är jag kanske är ute och cyklar....
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Lågpassfilter i mjukvara!

Inlägg av jesse »

Googla på "Kalman lowpass filter" ...
Bonzo
Inlägg: 32
Blev medlem: 27 april 2005, 17:52:11

Re: Lågpassfilter i mjukvara!

Inlägg av Bonzo »

y(n) = 0.99 * y(n-1) + 0.009*x(n) borde det inte vara typ y(n) = 0.99 * y(n-1) + 0.01*x(n) så att summan av filterkonstanterna = 1

Pröva i till exempel Excel (eller skriv ett program) med =0,99*B1+0,009*A2 i ruta B2 och fyll kolumn A med ettor, dra sedan ned formeln i ruta A2 så ser man att det inte fungerar om inte filterkonstanterna = 1.
Användarvisningsbild
ToB
Inlägg: 678
Blev medlem: 22 februari 2004, 10:32:58
Skype: tobias_bjork
Ort: Sollentuna

Re: Lågpassfilter i mjukvara!

Inlägg av ToB »

På vilket sätt menar du att det inte funkar?
Gimbal
Inlägg: 8570
Blev medlem: 20 april 2005, 15:43:53

Re: Lågpassfilter i mjukvara!

Inlägg av Gimbal »

jesse skrev:Googla på "Kalman lowpass filter" ...
Ok, Jag gjorde en snabb-googling, hittar inget som stödjer att ett lowpass filter kan kallas för ett kalman filter.
Skriv svar