Я смотрю на некоторый код FFT в проекте Matlab, и FFT и обратное FFT вычисляются следующим образом:
% Here image is a 2D image.
image_fft = fftshift(image,1);
image_fft = fftshift(image_fft,2);
image_fft = fft(image_fft,[],1);
image_fft = fft(image_fft,[],2);
image_fft = fftshift(image_fft,1);
image_fft = fftshift(image_fft,2);
% Some processing and then same sequence of fftshift, ifft and fftshift to move to
% time domain
Я попытался найти некоторую информацию в Интернете, но у меня возникли проблемы с вопросом, почему fftshift необходимо выполнить перед вычислением БПФ.
Другой вопрос, который у меня есть, заключается в том, действительно ли это что-то конкретное для Matlab. Например, я планирую перенести этот код на C++ и использовать KISS FFT. Должен ли я отличаться от этого?