и пытаюсь связать fftshift/ifftshift с круговым сдвигом.fftshift/ifftshift в терминах circshift
N = 5
Y = 0:N-1
X = [0 1 2 3 4]
Когда я fftshift (X), я получаю
[3 4 0 1 2]
Когда я ifftshift (X), я получаю
[2 3 4 0 1]
Как связать fftshift/ifftshift для циклического сдвига? Это просто перемещение чисел в X в разных направлениях?
Мне нужно знать это, поскольку я пытаюсь реализовать эти две функции в терминах кругового сдвига в C++, что является функцией, которую я уже сделал.
Большое спасибо.
Просто введите 'open fftshift' и' open ifftshift' в окне команд. Оба не имеют встроенных функций. Они запрограммированы с использованием 'circshift'. Вы можете просто приспособиться к коду для вас на C++-программе. – Nemesis
@ Немезида спасибо, я не знал, что вы можете это сделать. Понятно, что между ними существует только одно различие - то, как он определяет, где поменять слева и справа от матрицы. Для fftshift используется ceil (N/2), тогда как ifftshift использует пол (N/2). – lppier