Wie finde ich den Faltungskern im Frequenzbereich?


12

Ich habe zwei Vektoren von räumlichen Daten (jeweils ungefähr 2000 Elemente in der Länge). Eines ist eine gefaltete Version des anderen. Ich versuche, den Kernel zu bestimmen, der eine solche Faltung erzeugen würde. Ich weiß, dass ich dies tun kann, indem ich die inverse Fourier-Transformation des Verhältnisses der Fourier-Transformationen der Ausgangs- und Eingangsvektoren finde. In der Tat, wenn ich das tue, bekomme ich mehr oder weniger die Form, die ich erwartet hatte. Mein Kernelvektor hat jedoch die gleiche Dimension wie die beiden Eingangsvektoren, als die Faltung in Wirklichkeit nur etwa ein Fünftel (~ 300-400) der Punkte verwendete. Die Tatsache, dass ich die richtige Form, aber die falsche Anzahl von Punkten habe, lässt mich denken, dass ich die Funktionen ifft und fft nicht richtig verwende. Es scheint, als ob ich wirklich das Richtige täte, was natürlich passieren sollte. Im Moment mache ich einfach;

FTInput = fft(in); 
FtOutput = fft(out);
kernel = ifft(FtOutput./FTInput).

Ist das richtig und es liegt an mir, den Ausgabevektor richtig zu interpretieren oder habe ich die Aufgabe zu stark vereinfacht? Ich bin mir sicher, dass es das letztere ist. Ich bin mir nur nicht sicher, wo.


2
Sind Ihre Eingabedaten auf beiden Seiten auf die Länge des Faltungskerns aufgefüllt? Es sollte sein, sonst verliert man dort Informationen, die der Grund für diese Artefakte sein könnten.
links ungefähr

Antworten:


5

Wenn in Ihrem Signal Rauschen vorhanden ist, verursacht die einfache Fourier-Domänenteilung viele Fehler in Ihrem Ergebnis. Einige Möglichkeiten, dies zu vermeiden, sind die Verwendung der sogenannten Zweikanal-FFT ( Teil 1 und Teil 2 ). Ich kann auch vorschlagen, dass die Entfaltung über adaptive Filter, LMS- oder NLMS- Filter ([Normalized] Least Mean Squares) erfolgt. Diese Filter sind leicht verständlich und in Bezug auf die CPU-Zyklen nicht sehr teuer, wenn Ihre Signale lang sind. LMS adaptive Filter sind sehr robust gegen Rauschen.


Das war ein Vergnügen, danke und ich entdeckte eine ganz neue Art von Dingen, von denen ich nicht wusste, dass sie existieren.
Bowler

@Phonon funktionieren diese Links? Wofür ist das genau eine Anmeldung?
Spacey

@Mohammad: Hier können Sie auf technische Übersichtsartikel und Bücher von Brüel & Kjær zugreifen. Die Registrierung ist kostenlos und bietet Zugriff auf viele gute Artikel.
Thor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.