Forum: Digitale Signalverarbeitung / DSP / Machine Learning Ideale Filter auf bereits vorliegende Daten anwenden?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Paul H. (powl)


Bewertung
0 lesenswert
nicht lesenswert
Hi, nur mal hier zu meinem Verständnis:

Filter müssen ja kausal sein um frisch aufgenommene Daten zu filtern. 
Beispielsweise das Tiefpassfiltern eines Audiosignals. Daher können sie 
nicht ideal sein.

Was ist nun aber wenn man keine frisch per Line-In aufgenommenen 
Audio-Daten hat sondern ein ganzes Stück bereits fertig aufgenommen 
vorliegen hat. Dann ist man nicht mehr darauf angewiesen einen kausalen 
Filter zu verwenden weil der Filter nun bei der Bearbeitung aktueller 
Samples auch Samples aus der "Zukunft" abgreifen kann.

Kann man so quasi eine exakt scharfe Trennung bei einer bestimmten 
Frequenz bewerkstelligen?

von derguteweka (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Paul H. schrieb:
> Kann man so quasi eine exakt scharfe Trennung bei einer bestimmten
> Frequenz bewerkstelligen?

Nein, denn dein idealer Tiefpass hat eine unendlich lange Impulsantwort. 
Auch wenn dein Audiosignal zeitlich begrenzt ist, wird die Faltung aus 
deinem Signal und der Impulsantwort (sinc(x)) unendlich sein und damit 
schwer zu berechnen...

Gruss
WK

von Christoph db1uq K. (christoph_kessler)


Bewertung
0 lesenswert
nicht lesenswert
So ähnlich geht es aber mit dem Gauss-Filter. Ideal ist es nicht-kausal, 
aber ein Bildverarbeitungsprogramm hat das komplette Bild vorliegen, 
sodass man ein ideales (zweidimensionales) Gauss-Filter rechnen kann.

von derguteweka (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Christoph Kessler (db1uq) schrieb:
> So ähnlich geht es aber mit dem Gauss-Filter.

Nicht wirklich. Auch ein Gaussimpuls war und wird "theroetisch" nicht zu 
irgendeinem Zeitpunkt 0. Also ist auch die Impulsantwort eines idealen 
Gaussfilters unendlich lang. Damit das praktikabel wird, muss man beim 
Gauss, wie auch beim sinc(x) immer irgendwann mal sagen: So, jetzt 
isses gut, ich schneid' die Impulsantwort "vorne und hinten" mal ab 
(oder waehle eine elaboriertere Fenstermethode). Dann ist es immernoch 
nicht kausal, aber ich kanns "nachtraeglich" berechnen. Aber ich hab' 
dann eben kein ideales Filter mehr, sondern ein angenaehrtes 
(gefenstertes, mit all seinen Dreckeffekten). Und wenn ich meine 
abgeschnippelte Impulsantwort nur genug verzoegere, dann wirds auch 
irgendwann kausal. Aber nicht mehr ideal...

Gruss
WK

von M. W. (elektrowagi78) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Was bedeutet in diesem Zusammenhang "kausal"?

von Infinity Troll (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nichts ist unendlich scharf in dieser Welt und schon garkeine Daten in 
einem Digitalrechner.

Paul H. schrieb:
> Kann man so quasi eine exakt scharfe Trennung bei einer bestimmten
> Frequenz bewerkstelligen?

Nein, aber eine für deinen Anwendungsfall ausreichend scharfe Trennung.

von derguteweka (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Markus W. schrieb:
> Was bedeutet in diesem Zusammenhang "kausal"?

Das die Impulsantwort des Filters fruehestens zum Zeitpunkt des 
Anregungsimpulses von 0 verschieden ist, und nicht schon "lang" vorher, 
wie bei idealen sinc/Gauss/etc. Filtern.

Gruss
WK

von C Programmierer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Es wäre vielleicht kein klassisches Filter, aber könnte man nicht das 
Signal diskret Fourier-Transformieren, alle Frequenzen, die man nicht 
haben möchte ganz dreist auf 0 setzen und dann das diskrete Spektrum 
rücktransformieren? Das müsste doch das exakt scharf getrennte Signal 
ergeben.

von Selbsternannter Weltverbesserer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

C Programmierer schrieb:
> könnte man nicht das
> Signal diskret Fourier-Transformieren, alle Frequenzen, die man nicht
> haben möchte ganz dreist auf 0 setzen und dann das diskrete Spektrum
> rücktransformieren?

dies wird durchaus gemacht. Wenn man es richtig macht bekommt man am 
Ende sogar wieder ein reeles Zeitsignal ;-)

Mit freundlichen Grüßen
Selbsternannter Weltverbesserer

von C Programmierer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
So, ich habs mal ausprobiert und finde die Lösung doch eher suboptimal.

Die DFT geht von einem sich wiederholenden Signal aus. Das mag bei einem 
Musikstück, das auf Repeat gestellt ist ok sein, aber das ist idR ja 
nicht der Fall.

Ich denke die beste Lösung ist, die Aufnahme über einen FIR Filter mit 
doppelter Länge wie das Musikstück laufen zu lassen. Danach kann man die 
Antwort vor und nach dem Musikstück einfach abschneiden. Das sollte die 
optimale und auch vom TO gesuchte Lösung sein.

von M. W. (elektrowagi78) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
derguteweka schrieb:
> Das die Impulsantwort des Filters fruehestens zum Zeitpunkt des
> Anregungsimpulses von 0 verschieden ist, und nicht schon "lang" vorher,
> wie bei idealen sinc/Gauss/etc. Filtern.
>
> Gruss
> WK

ok, danke! Gut erklärt. Ich denke, dass bezieht sich auf die ausgedehnte 
Prozessierung über mehrere Koeffizienten und Samples. Allerdings 
verstehe ich nicht wie das praktisch verletzt werden kann. Real ist doch 
jede Prozessierung der eingehenden Realität hinterher?

von derguteweka (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Markus Wagner schrieb:
> Allerdings
> verstehe ich nicht wie das praktisch verletzt werden kann. Real ist doch
> jede Prozessierung der eingehenden Realität hinterher?

Ja, nicht-kausale Filter kann man nicht bauen; man kann nur mit ihnen 
rechnen. Sonst muesste man in die Zukunft schauen koennen (Das kann man 
auch probieren, bei bestimmten Signalen (Sprache, Bildsequenzen) klappt 
das auch oft recht gut. Aber man kann immer auch mal voellig daneben 
liegen).
So aehnlich ist es mit der Laenge der Filter. Da gibts immer eine 
Beschraenkung, weil man eben nicht unendlich schnell rechnen kann oder 
unendlich lange auf das Ergebnis warten.
Nur Chuck Norris kann in endlicher Zeit von Minus bis Plus Unendlich 
zaehlen.

Gruss
WK

von M. W. (elektrowagi78) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Das wäre doch was, ein "Norris Filter".

So ganz blicke ich immer noch nicht durch, aber ok.

von Matthias (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Beitrag "Übertragungsfunktion "akausaler Tiefpass""

Ist akausal, weil zukünftige Werte verwendet werden. Dadurch kommt es 
dazu, dass zB die Sprungantwort der Übertragungsfunktion vor dem Sprung 
ensteht (eben wegen der zukünftigen Werte...)

Markus Wagner schrieb:
> Real ist doch jede Prozessierung der eingehenden Realität hinterher?

Jein... Wenn man einige Samples zwischenbuffert, geht das schon. Man hat 
dann einen Zeitversatz, womit es ansich wieder kausal ist (Keine 
Sprungantwort vor dem Sprung). Durch die Verwendung der zukünftigen 
Werte wird die Phasenverschiebung kompensiert.

von Harald W. (wilhelms)


Bewertung
0 lesenswert
nicht lesenswert
Markus Wagner schrieb:

> Das wäre doch was, ein "Norris Filter".

Ist das ein Filter, welches unendlich scharf nach gut und böse filtert?

von derguteweka (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

Das ist ein Filter mit einem nicht-kausalen Roundhouse-Kick als 
Impulsantwort...

Gruss
WK

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.