如何使用pyFFTW类进行二维傅里叶变换?

2024-04-19 01:36:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用pyFFTW来创建一个二维fft和ifft。然而,这些文件有点混乱: https://pyfftw.readthedocs.io/en/latest/source/tutorial.html#the-workhorse-pyfftw-fftw-class

因此,基本上,代码:

a = pyfftw.empty_aligned(128, dtype='complex128')
b = pyfftw.empty_aligned(128, dtype='complex128')

fft_object = pyfftw.FFTW(a, b)

我不明白什么是fft\u对象,为什么它需要a和b作为输入,甚至不明白a和b在这里做什么。它们只是用来模拟输入和输出数据的空模板吗?这个过程的作用是什么?你知道吗

import numpy

# Generate some data
ar, ai = numpy.random.randn(2, 128)
a[:] = ar + 1j*ai

fft_a = fft_object()

我也不明白a是用哪种方式转换成fft的,甚至没有函数调用。函数如何知道a是输入?(我看了整页,发现书里有一个字pyfftw.建筑商你知道吗

fft_object = pyfftw.builders.fft(a)

不过,fft\u对象是由什么定义的pyfftw.builders.fft文件(a) 什么?建筑商在做什么?)你知道吗

另外,如果fft是

pyfftw.FFTW(a, b, axes=(0,1))

如果不是的话

pyfftw.FFTW(a, b, direction='FFTW_BACKWARD', axes=(0,1))#or
pyfftw.FFTW(a, b, direction='FFTW_BACKWARD', axes=(1,0))#or
pyfftw.FFTW(b, a, direction='FFTW_BACKWARD', axes=(0,1))#or
pyfftw.FFTW(b, a, direction='FFTW_BACKWARD', axes=(1,0))

什么?你知道吗

假设我有一个3乘3的矩阵x=np.ones公司([3,3])

如何进行fft2(x)和ifft2(x)?你知道吗

此外,如何进行rfft2(x)和irfft2(x)?(rfft2和irfft2表示实域中的快速傅里叶变换)。你知道吗


Tags: or文件对象fftnumpyobjectemptydtype