Я пытаюсь использовать numpy.fft.fftn
для выполнения многомерного преобразования Фурье (в основном двумерного), но я не понимаю, как работает параметр s
и axes
даже после прочтения руководства.
https://www.numpy.org/devdocs/reference/generated/numpy.fft.fftn.html
Если я правильно понял, s
просто означает длину выходного массива в каждом измерении, так что выходной массив усекается до требуемой формы?
Может кто-нибудь объяснить, как "оси, по которым вычисляется БПФ", связаны с преобразованием Фурье в математике? И как понять различия между двумя преобразованиями Фурье, использованными в следующем коде?
>>> a = np.mgrid[:3, :3, :3][0]
>>> np.fft.fftn(a, axes=(1, 2))
array([[[ 0.+0.j, 0.+0.j, 0.+0.j], # may vary
[ 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j]],
[[ 9.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j]],
[[18.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j]]])
>>> np.fft.fftn(a, (2, 2), axes=(0, 1))
array([[[ 2.+0.j, 2.+0.j, 2.+0.j], # may vary
[ 0.+0.j, 0.+0.j, 0.+0.j]],
[[-2.+0.j, -2.+0.j, -2.+0.j],
[ 0.+0.j, 0.+0.j, 0.+0.j]]])