Tengo dos vectores de datos espaciales (cada uno de aproximadamente 2000 elementos de longitud). Uno es una versión enrevesada del otro. Estoy tratando de determinar el núcleo que produciría tal convolución. Sé que puedo hacer esto al encontrar la transformada inversa de Fourier de la relación de las transformadas de Fourier de los vectores de salida y entrada. De hecho, cuando hago esto obtengo más o menos la forma que esperaba. Sin embargo, mi vector kernel tiene la misma dimensionalidad que los dos vectores de entrada cuando en realidad la convolución solo usaba aproximadamente un quinto (~ 300-400) de los puntos. El hecho de que estoy obteniendo la forma correcta pero el número incorrecto de puntos me hace pensar que no estoy usando las funciones ifft y fft correctamente. Parece que si realmente estuviera haciendo lo correcto, esto debería suceder naturalmente. Por el momento simplemente estoy haciendo;
FTInput = fft(in);
FtOutput = fft(out);
kernel = ifft(FtOutput./FTInput).
¿Es correcto y depende de mí interpretar el vector de salida correctamente o he simplificado demasiado la tarea? Estoy seguro de que es lo último, pero no estoy seguro de dónde.