空間データの2つのベクトル(それぞれ約2000要素の長さ)があります。1つは他の畳み込みバージョンです。このような畳み込みを生成するカーネルを決定しようとしています。出力ベクトルと入力ベクトルのフーリエ変換の比の逆フーリエ変換を見つけることでこれができることを知っています。実際、これを行うと、私が期待していた形になります。ただし、実際には畳み込みがポイントの約5分の1(約300〜400)しか使用していない場合、私のカーネルベクトルは2つの入力ベクトルと同じ次元を持ちます。正しい形状を取得しているが、ポイントの数が間違っているという事実から、ifftおよびfft関数をまったく正しく使用していないと思うようになります。私が本当に正しいことをしていれば、これは自然に起こるはずです。現時点では、私は単にやっています。
FTInput = fft(in);
FtOutput = fft(out);
kernel = ifft(FtOutput./FTInput).
これは正しいですか、出力ベクトルを正しく解釈するのは私次第ですか、それともタスクを単純化しすぎましたか?私はそれが後者だと確信しています、私はただどこにあるのか分かりません。
2
入力データの両側に畳み込みカーネルの長さまでゼロが埋め込まれていますか?そうでなければ、そこの情報を失うことになり、これがこれらのアーティファクトの原因である可能性があります。
—
leftaroundabout