РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
170 of 541 menu

Функция fftn

Функция fftn выполняет n-мерное быстрое преобразование Фурье над входным массивом. Она принимает массив данных, а также дополнительные параметры для управления осями и размерами преобразования. Результатом является комплексный массив той же формы, что и входной.

Синтаксис

np.fft.fftn(a, s=None, axes=None, norm=None)

Параметры

Параметр a - это входной массив, к которому применяется преобразование. Это может быть одномерный, двумерный или многомерный массив.

Параметр s определяет размеры преобразования по каждой оси. Если указан, то массив обрезается или дополняется нулями до заданных размеров. По умолчанию используется форма входного массива.

Параметр axes задаёт оси, по которым выполняется преобразование. По умолчанию преобразование применяется по всем осям массива.

Параметр norm управляет нормализацией результата. Может принимать значения "backward" (по умолчанию), "ortho" и "forward".

Пример

Выполним трёхмерное преобразование Фурье для массива размером 2x2x2:

import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) res = np.fft.fftn(arr) print(res)

Результат выполнения кода:

[[[36.+0.j -4.+0.j] [-8.+0.j 0.+0.j]] [[-16.+0.j 0.+0.j] [ 0.+0.j 0.+0.j]]]

Пример

Выполним преобразование только по указанным осям, например, по двум последним осям трёхмерного массива:

import numpy as np arr = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) res = np.fft.fftn(arr, axes=(-2, -1)) print(res)

Результат выполнения кода:

[[[ 10.+0.j -2.+0.j] [-26.+0.j 0.+0.j]] [[ 26.+0.j -2.+0.j] [-26.+0.j 0.+0.j]]]

Пример

Используем параметр s для дополнения массива нулями до указанных размеров перед преобразованием:

import numpy as np arr = np.array([[1, 2], [3, 4]]) res = np.fft.fftn(arr, s=(4, 4)) print(res)

Результат выполнения кода:

[[10.+0.j 0.+0.j -2.+0.j 0.+0.j] [ 0.+0.j 0.+0.j 0.+0.j 0.+0.j] [-4.+0.j 0.+0.j 0.+0.j 0.+0.j] [ 0.+0.j 0.+0.j 0.+0.j 0.+0.j]]

Пример

Применим ортогональную нормализацию для сохранения энергии при преобразовании:

import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) res = np.fft.fftn(arr, norm="ortho") print(res)

Результат выполнения кода:

[[ 8.5732141 +0.j -1.5 +0.8660254j -1.5 -0.8660254j] [-4.33012702+2.5j 0. +0.j 0. +0.j ] [-4.33012702-2.5j 0. +0.j 0. +0.j ]]

Смотрите также

  • функцию ifftn,
    которая выполняет обратное многомерное преобразование Фурье
  • функцию fft2,
    которая вычисляет двумерное дискретное преобразование Фурье
  • функцию ifft2,
    которая выполняет обратное двумерное преобразование Фурье
  • функцию fft,
    которая вычисляет одномерное дискретное преобразование Фурье
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить