mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hochpass - digital, quick & dirty für 8-bit Controller


Autor: X- Rocka (x-rocka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich suche einen einfachen schnellen Hochpass Algorithmus für einen 8-bit 
Controller.
Ich muss "nur" den offset eines Beschleunigungssensors wegbekommen, der 
mit dem AVR internen 10-bit ADC aufgenommen wird.

Eine Variante:
- über langes Interval mitteln => Offset
- vom aktuellen Messwert Offset abziehen.

Geht das eleganter mit 8-bit & 16bit Messwerten/Variablen?
Oder doch IIR (mit floats?)?

Danke,
X

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau so, wie du es vor hast, sollte es doch optimal gehen. Du musst ja 
nicht ein derart langes Intervall wählen, da es sich ja hier um einen 
Offset handelt, welcher nahezu konstant bleibt. 4-10 Messwerte sollten 
da durchaus ausreichend sein!

Vllt ist der Thread auch hilfreich: 
Beitrag "MOVING AVERAGE FILTER in FastAVR?"

Autor: Armin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
warum nicht die Tustin-Trafo auf einen Hochpass anwenden?


ich hab das mal für ein RC-Glied, also Hochpass 1. Ordnung 
durchgerechnet:
u[n] Eingang
y[n] Ausgang
RC gibt die Grenzfrequenz an: f=1/(2*pi*RC)
T Abtastrate in 1/sek


y[n] = RC*T/(T+2*RC)*(u[n] + u[n-1]) - (T-2*RC)/(T+2*RC) y[n-1]

für die Umsetzung brauchst du 2 Speicherzellen:
u[n-1] und y[n-1]
u[n] ist ja der aktuelle Wert am Eingang



hab das mal ins Excel getippt und funktioniert ganz gut.
Als Test habe ich die Eingangsfunktion u[n] = Sin [n²] gewählt
Der Ausgang schwächt sich schön ab...

hoffe, das passt soweit

Autor: Armin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm mist -.-
beim Hochpass müsste die Amplitude des Ausgangs ja steigen...


sieht nach Rechenfehler aus.
toll...

Autor: Armin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
okay,
ich hab den Fehler:

y[n] = 2RC/(T + 2RC)*(u[n] - u[n-1]) - (T - 2RC)/(T + 2RC)*y[n-1]

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.