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.