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