Eu tenho dois vetores de dados espaciais (cada um com cerca de 2000 elementos de comprimento). Um é uma versão complicada do outro. Estou tentando determinar o kernel que produziria tal convolução. Eu sei que posso fazer isso encontrando a transformação inversa de Fourier da razão das transformadas de Fourier dos vetores de saída e de entrada. De fato, quando faço isso, tenho mais ou menos a forma que estava esperando. No entanto, meu vetor de kernel tem a mesma dimensionalidade que os dois vetores de entrada quando, na realidade, a convolução usava apenas cerca de um quinto (~ 300-400) dos pontos. O fato de estar tendo a forma correta, mas o número errado de pontos me faz pensar que não estou usando as funções ifft e fft corretamente. Parece que se eu estivesse realmente fazendo a coisa certa, isso deveria acontecer naturalmente. No momento estou simplesmente fazendo;
FTInput = fft(in);
FtOutput = fft(out);
kernel = ifft(FtOutput./FTInput).
Isso está correto e cabe a mim interpretar o vetor de saída corretamente ou simplifiquei demais a tarefa? Tenho certeza que é o último, só não sei onde.