Ho due vettori di dati spaziali (ciascuno lungo circa 2000 elementi). Uno è una versione complicata dell'altro. Sto cercando di determinare il kernel che produrrebbe una tale convoluzione. So che posso farlo trovando la trasformata inversa di Fourier del rapporto tra le trasformate di Fourier dei vettori di uscita e di ingresso. In effetti, quando lo faccio ottengo più o meno la forma che mi aspettavo. Tuttavia, il mio vettore del kernel ha la stessa dimensionalità dei due vettori di input quando in realtà la convoluzione utilizzava solo circa un quinto (~ 300-400) dei punti. Il fatto che sto ottenendo la forma giusta ma il numero errato di punti mi fa pensare che non sto usando le funzioni ifft e fft in modo corretto. Sembra che se stessi davvero facendo la cosa giusta, questo dovrebbe accadere naturalmente. Al momento lo sto semplicemente facendo;
FTInput = fft(in);
FtOutput = fft(out);
kernel = ifft(FtOutput./FTInput).
È corretto e spetta a me interpretare correttamente il vettore di output o ho semplificato troppo l'attività? Sono sicuro che è quest'ultimo, non sono sicuro di dove.