www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Wie Temperaturschwankungen filtern ?


Autor: Leo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich habe ein EVA Board mit einem AT90S8535 und einen Display.
Angeschlossen habe ich dabei einen Temperatursensor vom Typ: DS1820.
Nun ist es so das die ankommenden Werte relativ stark schwanken.
Ich hab mir überlegt dafür einen IIR Filter (zeitliche Filterung) zu 
implementieren.
Einen Mittelungsfilter möchte ich nicht einsetzen. Ich möchte
ein paar praktische Erfahrungen dabei sammeln. Wie müsste ich dabei 
genau vorgehen? Danke im voraus.

Autor: Leo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte ich so einen IIR-Filter erster Ordnung verwenden?

y(n)= a * x(n) + (1-a)*y(n-1)

Ich muss noch was ergänzen. Ich lese die Werte vom Temp. Sensor in der 
while(1) Schleife von main ein (Polling betrieb). Wie könnte ich da die 
Zeitermitteln wie schnell die Werte eingelesen werden. Ich denke die 
Zeit ist das schon sehr sehr kurz.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,


"a" ergibt sich aus der gewünschten Filterzeitkonstante und deiner 
Abtastzeit. Setz dir einfach parallel einen Timer auf und lies dessen 
Zählregister, wenn wieder eine aktuelle Temperatur vorliegt. Bilde die 
Differenz mit dem Zählregisterwert, als die letzte Temperatur vorlag und 
berechnet die Zeitdifferenz. Dann kannst du "a" neu berechnen und den 
Filter für den neuen Temperaturwert durchrechnen.

Alternativ einfach in einer Timer-ISR zyklisch ein "lies Temperatur" 
Flag setzen und dieses im Background abpollen. Dann kannst du "a" fix 
lassen. Bei der endlosen Zeit die der Sensor braucht, sollte das die 
bessere und einfachere Variante sein.


Gruß,
Alex

Autor: Maik Werner (werner01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein stück metall am sensor ist ein guter lp-filter

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.