Обратите внимание, что FFT умножение такое же, как круговая свертка (например, как если бы края ваших данных обернуты вокруг).Если вы не хотите, чтобы эти эффекты окружности были получены из результатов свертки, вы можете обнулить свои данные по крайней мере на ненулевую длину вашего ядра свертки плюс 1. Вы также должны обнулить свое ядро свертки, чтобы придать ему такую же длину.
Например, в вашем случае вы можете использовать FFT длиной 522 (512 + 9 + 1) или, возможно, FFT длиной 540 с меньшими ценовыми коэффициентами (библиотека FFTW может использоваться для очень эффективногоpower-of-2 FFT) или нулевое заполнение до 1024 FFT, если необходимо использовать степень 2.
Как и в ответе @ maola, как FFT данных, так и ядродолжно быть одинаковой длины (иначе частоты, которые вы умножаете, не будут совпадать), и вы должны выполнить сложное умножение в частотной области.