Модули и функции · встроенный MicroPython FEMM 5
numpy.fft
Дискретное преобразование Фурье позволяет исследовать спектр данных, представленных одномерными и двумерными массивами.
Условия работы
- Частоты спектральных отсчётов задаются шагом исходной сетки. Функции не добавляют подписи Гц и не переводят амплитуды в RMS.
- Поддерживаются произвольные положительные длины: степени двух используют ядро ulab; остальные — алгоритм Блюстейна с кэшированием таблиц.
- norm=None и 'backward': прямое преобразование без масштаба, обратное с 1/N. 'forward': прямое с 1/N, обратное без масштаба. 'ortho': обе стороны с 1/sqrt(N).
numpy.fft.fftnumpy.fft.ifftnumpy.fft.fft2numpy.fft.ifft2numpy.fft.fftПрямое дискретное преобразование Фурье: сумма x[k]·exp(-2j*pi*k*m/N).
numpy.fft.fft
numpy.fft.fft(a, n=None, axis=-1, norm=None)Прямое дискретное преобразование Фурье: сумма x[k]·exp(-2j*pi*k*m/N).
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
a | Входной вектор или матрица, вещественные/комплексные значения. |
n | Положительная длина; None сохраняет длину выбранной оси. Иначе вход обрезается либо дополняется нулями. |
axis | -1 по умолчанию: последняя ось; 0 — строки вектора или столбцы матрицы, 1 — строки матрицы. |
norm | None, 'backward', 'forward' или 'ortho'. |
Возвращаемое значение
complex ndarray; форма входа с заменой длины выбранной оси на n, если n задано.
Особенности вызова
- axis=-1 означает преобразование каждой строки двумерной матрицы. Для преобразования столбцов укажите axis=0.
Пример
"Пример numpy.fft.fft.\nСреда: встроенный MicroPython FEMM 5.\nПрямое дискретное преобразование Фурье: сумма x[k]·exp(-2j*pi*k*m/N).\nРезультат: complex ndarray; форма входа с заменой длины выбранной оси на n, если n задано."
import numpy as np
x=np.array([1,2,3])
y=np.fft.fft(x)
assert len(y)==3 and abs(y[0]-6)<1e-8
print(y)
Ожидаемый результат. Три комплексных спектральных отсчёта; нулевая гармоника равна 6.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
numpy.fft.ifftОбратное дискретное преобразование Фурье.
numpy.fft.ifft
numpy.fft.ifft(a, n=None, axis=-1, norm=None)Обратное дискретное преобразование Фурье.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
a | Входной вектор или матрица, вещественные/комплексные значения. |
n | Положительная длина; None сохраняет длину выбранной оси. Иначе вход обрезается либо дополняется нулями. |
axis | -1 по умолчанию: последняя ось; 0 — строки вектора или столбцы матрицы, 1 — строки матрицы. |
norm | None, 'backward', 'forward' или 'ortho'. |
Возвращаемое значение
complex ndarray; форма входа с заменой длины выбранной оси на n, если n задано.
Особенности вызова
- axis=-1 означает преобразование каждой строки двумерной матрицы. Для преобразования столбцов укажите axis=0.
Пример
"Пример numpy.fft.ifft.\nСреда: встроенный MicroPython FEMM 5.\nОбратное дискретное преобразование Фурье.\nРезультат: complex ndarray; форма входа с заменой длины выбранной оси на n, если n задано."
import numpy as np
x=np.array([1,2,3])
y=np.fft.ifft(np.fft.fft(x))
assert max([abs(y[k]-x[k]) for k in range(3)])<1e-8
print(y)
Ожидаемый результат. Восстановлен исходный вектор [1,2,3].
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
numpy.fft.fft2Прямое двумерное преобразование Фурье последовательным преобразованием двух осей.
numpy.fft.fft2
numpy.fft.fft2(a, s=None, axes=None, norm=None)Прямое двумерное преобразование Фурье последовательным преобразованием двух осей.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
a | Двумерный числовой массив. |
s | None либо пара положительных размеров выходной сетки; вход обрезается/дополняется нулями. |
axes | None, (-2,-1) либо (0,1); остальные варианты не поддержаны. |
norm | None, 'backward', 'forward' или 'ortho'. |
Возвращаемое значение
Двумерный complex ndarray исходной формы либо формы s.
Пример
"Пример numpy.fft.fft2.\nСреда: встроенный MicroPython FEMM 5.\nПрямое двумерное преобразование Фурье последовательным преобразованием двух осей.\nРезультат: Двумерный complex ndarray исходной формы либо формы s."
import numpy as np
A=np.array([[1,2],[3,4]])
Y=np.fft.fft2(A)
assert Y.shape==(2,2) and abs(Y[0,0]-10)<1e-8
print(Y)
Ожидаемый результат. Форма (2,2); нулевая гармоника равна 10.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.
numpy.fft.ifft2Обратное двумерное преобразование Фурье.
numpy.fft.ifft2
numpy.fft.ifft2(a, s=None, axes=None, norm=None)Обратное двумерное преобразование Фурье.
Аргументы
| Имя | Назначение и допустимые значения |
|---|---|
a | Двумерный числовой массив. |
s | None либо пара положительных размеров выходной сетки; вход обрезается/дополняется нулями. |
axes | None, (-2,-1) либо (0,1); остальные варианты не поддержаны. |
norm | None, 'backward', 'forward' или 'ortho'. |
Возвращаемое значение
Двумерный complex ndarray исходной формы либо формы s.
Пример
"Пример numpy.fft.ifft2.\nСреда: встроенный MicroPython FEMM 5.\nОбратное двумерное преобразование Фурье.\nРезультат: Двумерный complex ndarray исходной формы либо формы s."
import numpy as np
A=np.array([[1,2],[3,4]])
Y=np.fft.ifft2(np.fft.fft2(A))
assert abs(Y[1,1]-4)<1e-8
print(Y)
Ожидаемый результат. Восстановлена исходная матрица.
Скачать пример · Ссылка на функцию
Этот пример выполнен в установленном FEMM 5.