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


von Paul H. (powl)


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)


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)


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)


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 Michael W. (Gast)


Lesenswert?

Was bedeutet in diesem Zusammenhang "kausal"?

von Infinity Troll (Gast)


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)


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)


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)


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)


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 Michael W. (Gast)


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)


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 Michael W. (Gast)


Lesenswert?

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

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

von Matthias (Gast)


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)


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)


Lesenswert?

Moin,

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

Gruss
WK

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.