J'ai deux vecteurs de données spatiales (chacune d'environ 2000 éléments de longueur). L'un est une version convolutive de l'autre. J'essaie de déterminer le noyau qui produirait une telle convolution. Je sais que je peux le faire en trouvant la transformée de Fourier inverse du rapport des transformées de Fourier des vecteurs de sortie et d'entrée. En effet, lorsque je fais cela, j'obtiens plus ou moins la forme que j'attendais. Cependant, mon vecteur noyau a la même dimensionnalité que les deux vecteurs d'entrée alors qu'en réalité la convolution n'utilisait qu'environ un cinquième (~ 300-400) des points. Le fait que j'obtienne la bonne forme mais le mauvais nombre de points me fait penser que je n'utilise pas correctement les fonctions ifft et fft. Il semble que si je faisais vraiment ce qu'il fallait, cela devrait se produire naturellement. Pour le moment je fais simplement;
FTInput = fft(in);
FtOutput = fft(out);
kernel = ifft(FtOutput./FTInput).
Est-ce correct et c'est à moi d'interpréter correctement le vecteur de sortie ou ai-je trop simplifié la tâche? Je suis sûr que c'est ce dernier, je ne sais pas où.