mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Filter gesucht


Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein verrauschtes Sensorsignal. Welche Filter unterdrücken zwar 
Rauschen aber erhalten plötzliche Sprünge? Was nehmt ihr für solche 
Zwecke? Median Filter habe ich ausprobiert.

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt darauf an,
- wie steil ein Sprung ist bzw. nach der Filterung noch sein darf
- wie viel Verzögerung der Filter erzeugen darf
- wie das Signal generell so aussieht
-  ob man z.B. das Rauschen unterhalb einer zu definierenden Schwelle 
annehmen kann,
- etc...

Vielleicht hast du ja mal ein Beispiel deines Signals (Tabelle und/oder 
Grafik)

: Bearbeitet durch User
Autor: Klaus (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> Kommt darauf an,
> - wie steil ein Sprung ist bzw. nach der Filterung noch sein darf
> - wie viel Verzögerung der Filter erzeugen darf
> - wie das Signal generell so aussieht
> -  ob man z.B. das Rauschen unterhalb einer zu definierenden Schwelle
> annehmen kann,
> - etc...
>
> Vielleicht hast du ja mal ein Beispiel deines Signals (Tabelle und/oder
> Grafik)

Ich habe ein Beispiel gemacht. Das ist auf die schnelle in Matlab 
entstanden, aber im Prinzip genau das: Ein verrauschtes Konstantsignal 
mit Kanten drin.

Welche Filter kämen denn generell in Frage? Es gibt ja sicher zumindest 
ein paar mögliche Kandidaten

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jeweils zwei mal gleitenden Mittelwert der z.B. 30 letzten Messungen 
berechnen (Abstand 15 Messungen) und dann Sprünge zwischen den beiden 
Mittelwerten als Signal werten.

Alternativ: Rauschen ist hier viel hochfrequenter als das Nutzsignal => 
Gutes Tiefpassfilter dem Sensor nachschalten (z.B. ein Siebenpoliges aus 
mehreren L und C ).
Berechnung mit Freeware AADE:
http://www.aade.com/

Autor: Horst (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Wenn die Kanten weiterhin scharf bleiben sollen, sind normale LTI-Filter 
ungeeignet. Dafür nimmt man dann eher Median-Filter oder etwas anderes 
nicht-lineares.

Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex schrieb:
> Jeweils zwei mal gleitenden Mittelwert der z.B. 30 letzten Messungen
> berechnen (Abstand 15 Messungen) und dann Sprünge zwischen den beiden
> Mittelwerten als Signal werten.

Wenn du das SO machst, haben die Mittelwerte keine Sprünge mehr, sondern 
sind schwache Rampen.

Du brauchst ein diskretes Filter, das jeweils Annahmen über Rauschen und 
Sprung macht und eine ausreichen große Betrachtungslänge. Gfs kann sich 
das Filter selber einstellen - im Rahmen gewisser Grenzen, vor allem für 
das Rauschen. Es läuft dann darauf hinaus, dass Sprünge unterhalb einer 
gewissen Stufe nicht mehr erkannt werden.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weißt du die Namen solcher Filter, die ich mir mal genauer ansehen 
sollte?

Median hatte ich wie gesagt schon probiert (Kantenerhaltung okay, aber 
Rauschunterdrückung nicht so überzeugend fand ich).

Autor: Master of the Universe (RWTH) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus schrieb:
> Median hatte ich wie gesagt schon probiert (Kantenerhaltung okay, aber
> Rauschunterdrückung nicht so überzeugend fand ich).

Mit welcher Länge denn?
Außerdem, was genau willst du alles an dem Signal messen? Ich dachte es 
geht nur um ein Rechteck? Oder auch noch die Höhe dessen? Dann kannst du 
ja erst die Kanten erkennen und dann bereichsselektiv noch LTI-Filter 
verwenden, dann sind die auch schön smooth.

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stell einfach ein paar Beispielsamples ein, dann wird irgendjemand dir 
schon ein Skript zusammenschustern, was die (von dir noch zu 
spezifizierenden) Größen rausholt.

Autor: Mr (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Schau mal nach Bessel Filter (für gute Spitzenerkennung).
Oder Gauß-Filter.

Wenn du schon dabei bist schau auch nach Tschebyscheff und Butterworth.

Autor: Joe F. (easylife)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus schrieb:
> Ich habe ein Beispiel gemacht. Das ist auf die schnelle in Matlab
> entstanden, aber im Prinzip genau das: Ein verrauschtes Konstantsignal
> mit Kanten drin.

Also wenn das "Signal" wirklich so aussieht, dann kann man da eh nicht 
all zu viel retten.
Einen gewissen Signal-to-noise Abstand sollte man schon haben.
Evtl. loht es ja, sich mal Gedanken zu machen, warum das Signal so 
schlecht ist und die Hardware entsprechend verbessern.

: Bearbeitet durch User
Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mr schrieb:
> Schau mal nach Bessel Filter (für gute Spitzenerkennung).
> Oder Gauß-Filter.
>
> Wenn du schon dabei bist schau auch nach Tschebyscheff und Butterworth.

Was soll denn Spitzenerkennung in diesem Fall sein?

Und nein, alles was du da vor dich hin faselst, ist in diesem Fall kein 
Filter, den man (als erstes) verwenden sollte. Der TO fragte explizit 
danach, Signaldiskontinuitäten nicht platt zu machen.
Wenn du lesen könntest, hab ich das aber schon dreimal erwähnt, dass 
LTI-Filter an dieser Stelle nutzlos sind!

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Bildverarbeitung heißen die übrigens rank order filters 
(Rangordnungsfilter). Du hattest ja nach einem Namen gefragt.

Autor: Burkhard K. (buks)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joe F. schrieb:
> Klaus schrieb:
>>Ein verrauschtes Konstantsignal
>> mit Kanten drin.
>
> Also wenn das "Signal" wirklich so aussieht, dann kann man da eh nicht
> all zu viel retten.

Biologen/Biophysiker arbeiten ständig mit solchen Signalen (z.B. EEGs, 
Patch-Clamp-Messungen, etc.) Wenn das Signal reproduzierbar ist - oder 
reproduzierbar gemacht werden kann, dann kommt "averagen" in Frage. Der 
Artikel in der englischen WP hat dazu sogar ein Matlab Script: 
https://en.wikipedia.org/wiki/Signal_averaging

So wie Joe's Signal aussieht, müssten aber wohl schon mind. 10000 
Wiederholungen gemittelt werden, um ein brauchbares S/N-Verhältnis zu 
bekommen - nichtkorrelierte Signal werden mit der Wurzel der 
Wiederholungen gedämpft.

Autor: Mr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Horst

Dein Ton ist sehr unangebracht (asozial und arrogant zu gleich) und 
hilft dem TE noch weniger als mein Tip sich die Standardfilter mal 
anzusehen.
Ich kann mir auch nicht vorstellen, dass er sie noch nicht kennt.

Der Bessel-Filter ist halt auf eine gute Rechteckübertragung ausgelegt.
Da kann ich auch nicht für, dass dir das nicht passt.

Ich hab halt keine Lust mir das png in Zahlen zu wandeln, dass ich sie 
mir ansehen kann.
(Wenn der Bessel-Filter nicht passt, versuch ein Signal welches du 
suchst (Rechteck) mit deinem Rauschen zu korrelieren (Ich weiß ja nicht 
genau was du vorhast)).

Ansonsten für alle anderen, welche sich auch von mir angegriffen fühlen 
bitte ich um Vergebung. Ich versichere hiermit, dass ich als ich das 
schrieb keine schlechten Gedanken hatte und auch niemanden schaden 
wollte.

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mr schrieb:
> Dein Ton ist sehr unangebracht (asozial und arrogant zu gleich) und
> hilft dem TE noch weniger als mein Tip sich die Standardfilter mal
> anzusehen.

Unangebracht vielleicht, aber weniger helfen nicht! LTI-Filter als erste 
Stufe bringen hier nichts, aber das kapierst du ja offenbar nicht.

Mr schrieb:
> Ich kann mir auch nicht vorstellen, dass er sie noch nicht kennt.

Warum schlägst du die dann vor?

Mr schrieb:
> Der Bessel-Filter ist halt auf eine gute Rechteckübertragung ausgelegt.

Was ist das für ein absoluter Blödsinn? Ein Bessel-Filter zeichnet sich 
nur durch Ripple- und Flankeneigenschaften gegenüber Butterworth etc 
aus.
Des weiteren kann man damit alles mögliche (TP, HP, BP, BS) bauen, was 
aber alles kein Rechteck erhält! Ein Rechteck besteht aus sehr vielen 
Oberwellen und nimmst du auch nur eine davon weg, war es das mit dem 
Rechteck.

Ich weiß ja nicht, wo du diesen Unfug gelernt hast, aber eine gute 
Rechteckübertragungsfunktion hat dieses Filter nicht. Genauso wenig wie 
alle anderen LTI-Filter (außer Allpass).

Mr schrieb:
> korrelieren

Das wiederum ist eine vernünftige Idee und könnte man auch mal 
probieren. AKF könnte da schon was bringen.

Autor: Mr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Horst
lass doch diese negativen Worte wie "Blödsinn", "Unfug" und "Gefasel" 
weg.
Damit hast du immer noch das Gleiche gesagt alle mögen dich, hören eher 
auf dich und du hast doppelt gewonnen, wenn du es denn so sehen willst 
(Gewonnen).

Ich kannte mal einen der war der absolute Obercrack, hat es sich aber 
mit allen Verscherzt und musste gehen. So gut wie alle anderen zusammen, 
war er eben doch nicht. Jetzt wird er wegen seines Wissens vermisst aber 
keinesfalls wegen seines Charakters. Ist doch ne doofe Sache.

Und mir ist bewusst das ich jetzt in deine Redensart zu viel hinein 
Interpretiere. Im Leben außerhalb des INets drückst du dich doch 
bestimmt auch anders aus?


...jaa das meine ich mit "Rechteckübertragung". Wenn der TE nicht 
spezifiziert, wie sein Rechteck auszusehen hat kann man halt nicht 
besser Antworten. Das hast du ja auch schon selber angemerkt.
Mit der AKF wird er auch kein Rechteck erhalten, weiß aber wo eins ist.

Und leg nicht alles so auf die Goldwaage. Z.B., dass es nichts zu 
"meinen" gibt sondern nur Richtig und Falsch. Da kann man ja immer noch 
einen drauf setzen. Es gibt ja gar kein ideales Rechteck. Eine Sache der 
Spezifikation eben.



Ich hab bestimmt schon ganz viele Minusse;-) oder? Bin zum Glück nicht 
angemeldet.

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.