Функция ifftshift
Функция ifftshift выполняет обратный сдвиг нулевой частоты
в спектре сигнала. Она применяется для восстановления исходного
порядка элементов массива после применения функции fftshift.
В качестве первого параметра функция принимает массив данных.
Вторым необязательным параметром можно указать ось, вдоль которой
будет выполняться сдвиг. Если ось не указана, сдвиг выполняется
по всем осям одновременно.
Синтаксис
np.ifftshift(x, axes=None)
Пример
Давайте выполним обратный сдвиг для одномерного массива:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
res = np.ifftshift(arr)
print(res)
Результат выполнения кода:
[3 4 5 1 2]
Пример
Давайте применим ifftshift для восстановления
порядка элементов после использования fftshift:
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
shifted = np.fftshift(arr)
restored = np.ifftshift(shifted)
print("Original:", arr)
print("Shifted:", shifted)
print("Restored:", restored)
Результат выполнения кода:
Original: [10 20 30 40 50]
Shifted: [40 50 10 20 30]
Restored: [10 20 30 40 50]
Пример
Давайте выполним обратный сдвиг для двумерного массива по обеим осям одновременно:
import numpy as np
arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
res = np.ifftshift(arr)
print(res)
Результат выполнения кода:
[[11 12 9 10]
[15 16 13 14]
[3 4 1 2]
[7 8 5 6]]
Пример
Давайте выполним обратный сдвиг вдоль только одной указанной оси (оси строк):
import numpy as np
arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
res = np.ifftshift(arr, axes=0)
print(res)
Результат выполнения кода:
[[9 10 11 12]
[13 14 15 16]
[1 2 3 4]
[5 6 7 8]]
Пример
Давайте восстановим двумерный массив после применения
fftshift по обеим осям:
import numpy as np
arr = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16]])
shifted = np.fftshift(arr)
restored = np.ifftshift(shifted)
print("Original:")
print(arr)
print("\nShifted:")
print(shifted)
print("\nRestored:")
print(restored)
Результат выполнения кода:
Original:
[[1 2 3 4]
[5 6 7 8]
[9 10 11 12]
[13 14 15 16]]
Shifted:
[[11 12 9 10]
[15 16 13 14]
[3 4 1 2]
[7 8 5 6]]
Restored:
[[1 2 3 4]
[5 6 7 8]
[9 10 11 12]
[13 14 15 16]]