Forum: Mikrocontroller und Digitale Elektronik PIC Digital Low Pass Filter


von Raph (Gast)


Lesenswert?

Hallo Zusammen

Ich möchte ein Lowpass Filter Funktion für meinen PIC32 schreiben.
Ich möchte den float Wert von einem Acclerometer Filtern
kennt ihr ein gutes Tool im den Code zu erzeugen ...


dsPICFD ist nur für dspPIC ?

Gruß

Raph

von Master S. (snowman)


Lesenswert?

vorweg: bin hier nur sehr selten, also werde ich kaum ein 2. mal 
antworten.

definiere deinen TP ein bisschen besser, ansonsten schlage ich dir vor:

GefilterterWert = (AktuellerMesswert + 3 * GefilterterWert) >> 2;

das ist zwar ein tiefpass, aber ob er deinen ansprüchen gerecht wird..? 
ein weiterer punkt: kannst du den wert nicht auch als ganzzahl filtern? 
z.b. anstatt 22.3 einfach mit 223 rechnen und du als programmierer 
weisst, dass da noch ein punkt ist.

von Raph (Gast)


Lesenswert?

Danke für die Antwort.

Clever mit dem BitShifter... Gibts da vielleicht schon eine Libary von 
Mircochip ?

Gruß RL

von Bronco (Gast)


Lesenswert?

Der Code ist weniger das Problem, sondern, was für eine Art von Filter 
es überhaupt werden soll. Das wirst aber nur Du selber beurteilen 
können.

Du könntest z.B. mit einem gleitenden Mittelwert anfangen, das ist ein 
sehr einfacher Tiefpass Filter, aber sehr effizient gegen Rauschen.
http://de.wikipedia.org/wiki/Gleitender_Mittelwert

Oder ein PT1-Tiefpass, der geht im Grunde so
1
Y = Y * a + X * (1.0 - a)
mit
1
X = aktueller Messwert
2
Y = gefilterer Wert
3
a = Zeitkonstante (Gewichtungsfaktor) zwischen 0 und 1.0
http://de.wikipedia.org/wiki/PT1-Glied

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.