Tiefpassfilter

Neue Frage »

Zakum Auf diesen Beitrag antworten »
Tiefpassfilter
Hi smile
ich hab hier ein klein wenig diskussionsbedarf und hab gehofft ihr könnt mir helfen, den zu beseitigen.

Folgende Aufgabe steht: Ich will eine Zielerkennungsroutine schreiben, die einem Roboter ermöglicht, das Bild, dass seine Kamera aufnimmt, nach einem bestimmten Muster durchzusuchen und es zu erkennen.
Dazu muss ich das Signal erstmal filtern. Da mein Zielsymbol selber im moderaten Frequenzbereich liegen dürfte, heißt das, dass ich einen (rein mathematischen) Tiefpassfilter aufstellen muss .

Jetzt kommt der interesannte Teil: Das heißt konkret also für mich, ich muss eine diskrete Faltung im Ortsraum ausführen.

g(n) =Summe der f(n)*a(n-k)

Dabei hab ich
-g(n), also das gefaltete Signal sozusagen schon "gegeben", da es ja dem Signal des Ziels entsprechen soll. (Erste unsicherheit meinerseits)
-f(n) also das Eingangssignal variabel, da der Filter ja auf alles ansprechen soll(Zweite Unsicherheit meinerseits)
-a(n-k), die Systemantwort, auch Filter genannt,genau das was ich berechnen soll.


Liege ich soweit richtig mit meinen Annahmen?
Mazze Auf diesen Beitrag antworten »

Wenn Du das Signal diskret im Ortsraum faltest ist :

g(n) das Signal nach der Faltung
f(n) dein Eingangssignal
a(x) dein Faltungskern

Beispiel wäre etwa ein Kern der den Wagerechten gradienten eines Bildes ausrechnet dann wäre

f = b(x,y) das Bild

und



der Faltungskern (Sobelfilter)

g(x,y) wäre dann das Bild nach der Faltung.

edit:

Wieso sollte das gefaltete Signal gegeben sein? Das willst Du doch ausrechnen.
Zakum Auf diesen Beitrag antworten »

Das ist ja der interesannte Teil bei der Sache...
was mich interesiert ist ja grade der Faltungskern, den ich nicht gegeben habe, sondern rausfinden will.

Und der Punkt ist, dass ich dabei aus jeder beliebigen Eingangsfunktion die unpassenden Elemente (in meinem Fall die hochfrequenten) rausfiltern will.
Das Endsignal habe ich "de facto" gegeben, weil ich ja weiß, ab welcher Grenzfrequenz ich filtern will.

Letztendlich hoffe ich einfach ganz naiv, dass ich meine Formel im ersten Post nach a(x) umstellen kann und so den Filter einfach "ausrechne".
Weil ich ansonsten nicht wirklich einen Ansatz gefunden habe, mit dem ich einen Tiefpassfilter (den Faltungskern) rausfinden kann. verwirrt
Mazze Auf diesen Beitrag antworten »

Wir haben den Tiefpassfilter über eine Fouriertransformation und dann dort eine Simple multiplikation implementiert. Es ist ja:

Faltung im Ortsraum = Multiplikation im Frequenzraum.

Den Tiefpassfilter im Frequenzraum kannst du Dir leicht vorstellen :

f(x,y) * filter(x,y) wobei

filter(x,y) = 1 wenn frequenz < epsilon
0 sonst

(das ist n ideale Filter der blöde ringingeffekte erzeugt)

Wenn Du obigen filter invers Fouriertransformierst, solltest Du den zugehörigen Filter im Ortsraum kriegen. Ansonsten fällt mir auch nicht wirklich ein wie ein Tiefpassfilterkern aussieht.

edit :

Laut einer Referenz ist der Tiefpassfilter einfach ein simpler Mittelwertsfilter , also sei A die Matrix mit

dann ist der Filterkern :

Zakum Auf diesen Beitrag antworten »

Ich brauch den Filter eigentlich nicht übersetzen, ich kann auch im Spektralraum rechnen, müsste dazu nur eben ein paar mal FFT, bzw. iFFT ansetzen.
Die erste Idee klingt wirklich sehr interesannt, ich spiel mal damit rum um zu schauen was passiert!
Das wäre ja schon fast zu einfach um wahr zu sein Big Laugh

Beim Mittelwertfilter würd ich mich glatt wehren! Augenzwinkern
Dort hab ich, egal wo ich ihn anwende, immer eine Verstärkung (ggf. , sprich abschwächung) die mir mein Signal verändert.
Der klassische Tiefpass 1.Ordnung verändert dagegen nur zu hohe Frequenzen und lässt die niedrigen unverändert.
Oder seh ich da was falsch? Ich hab bei diversen Quellen auch die Bezeichnung lowpass für den Mittelwertfilter gefunden, allerdings würde ich das schon fast auf mathematische Ungenauigkeit der Quellen zurückführen.
WebFritzi Auf diesen Beitrag antworten »

Werder Bremen hatte gestern gegen Dynamo Zagreb einen Tiefpassfilter eingebaut. Augenzwinkern
 
 
Mazze Auf diesen Beitrag antworten »

Hohe Frequenzen im Bild sind besonders an den Kanten innerhalb eines Bildes zu sehen. Was der Mittelwertfilter macht ist die Kanten zu verwischen, oder anders gesprochen die hohen Frequenzen zu löschen. Ein klassischer Mittelwertsfilter ist in etwa :



Mehrfaches Falten des Bildes mit diesem Faltungskern wird zunehmden die Konturen aus dem Bild wischen. Wenn Du erstere Methode anwenden willst würde ich Dir abe rnicht den Idealen filter wie oben beschrieben anraten, da dieser ein blöden Ringingeffekt im Bild erzeugt. Der Butterworth Filter ist dazu besser geignet. Je steiler die Grenze zwischen den erlaubten und den gefilterten Frequenzen, je stärker der Ringingeffekt. Umgekehrt wird bei sehr schwachem abstieg natürlich kaum was gefiltert Augenzwinkern

Zitat:
Der klassische Tiefpass 1.Ordnung verändert dagegen nur zu hohe Frequenzen und lässt die niedrigen unverändert.


Würde ich Unterschreiben da man ja im Frequenzraum einfach nur was abschneidet und Rücktransformiert. Wie gesagt, ich hab auch nur nachgeschaut weil ich nicht expliziet enen Tiefpassfilter bisher implementiert hab. Der Gaußfilter ist übrigens auch ganz nett und geeignet dafür :

Zitat:
Gaußfilter: Gaußfilter der Größe und einer Varianz Ã2 werden durch eine Impulsantwortmatrix beschrieben. Die Nachbarpunkte des Ausgangsbildes gehen damit nicht wie beim box-filter gleichwertig ein, sondern werden entsprechend einer zweidimensionalen Gaußglocke gewichtet. Gaußfilter sind damit isotrop und abklingend. Sie werden als reales optisches Bauteil als Gauß-Filterung der Fourier-Transformierten in der Apodisation eingesetzt.
Zakum Auf diesen Beitrag antworten »

Super, vielen Dank.
Ich bin jetzt fast sicher, dass die erste Möglichkeit hinhaut, ich werd nen fließenden Übergnang von 1 auf 0 einbauen, dann wird der Ringeffekt minimiert.

Hab übrigens ne schöne Seite gefunden, die Mittelwertfilter bzw. Polynomfilter darstellt, mit interaktiven Applets. Wen jemand mal schauen möchte, wie die funktionieren:

http://www.chemgapedia.de/vsengine/vlu/v...eich.vscml.html
Mazze Auf diesen Beitrag antworten »

Zitat:
Ich bin jetzt fast sicher, dass die erste Möglichkeit hinhaut


Die haut auch hin weil sie genau das macht was man sich unter einem Tiefpassfilter vorstellt. Das blöde ist halt das man zwei Fouriertransformationen machen muss, aber das ist auch alles Augenzwinkern
Neue Frage »
Antworten »



Verwandte Themen