У меня есть два вектора пространственных данных (каждый около 2000 элементов в длину). Один - это свернутая версия другого. Я пытаюсь определить ядро, которое произвело бы такую свертку. Я знаю, что могу сделать это путем нахождения обратного преобразования Фурье отношения преобразований Фурье выходного и входного векторов. Действительно, когда я делаю это, я получаю более или менее ту форму, которую я ожидал. Тем не менее, мой вектор ядра имеет ту же размерность, что и два входных вектора, когда на самом деле свертка использовала только одну пятую (~ 300-400) точек. Тот факт, что я получаю правильную форму, но неверное количество очков, заставляет меня думать, что я не совсем правильно использую функции ifft и fft. Кажется, если бы я действительно поступал правильно, это должно было произойти естественно. На данный момент я просто делаю;
FTInput = fft(in);
FtOutput = fft(out);
kernel = ifft(FtOutput./FTInput).
Это правильно, и я должен правильно интерпретировать выходной вектор, или я упростил задачу? Я уверен, что это последнее, я просто не уверен, где.