快速傅里叶变换(fft
;文档(将"a"变换为其傅里叶谱等价物:
numpy.fft.fft(a, n=None, axis=-1, norm=None)
据我所知,该参数n
表示输出中有多少样本,如果输出小于a
中的样本数,则n
被裁剪,或者如果n
较大,则用零填充。
axis
做什么?这到底是什么意思?我找不到任何明确的使用示例。
np.fft.fft
计算一维离散傅里叶变换。如果您给出一维输入(向量(,它将只计算该输入的转换。但是,如果您的输入具有多个维度(如 2D 矩阵(或更高维度,则 NumPy 会假设您提供了许多向量,并且您希望计算每个向量的变换。axis
参数指示与这些向量对应的维度,默认情况下它是最后一个 (-1
(。因此,例如,对于二维矩阵m
,如果axis=0
则每列m[:, 0]
、m[:, 1]
等将是计算变换的向量,而传递axis=1
(相当于默认axis=-1
(,每一行m[0, :]
、m[1, :]
等将被视为变换的向量。如果要计算输入中所有值的转换,而不考虑维度,则必须平展输入,例如使用np.ravel
。
顺便说一句,这是 NumPy(以及许多其他代数包(中非常常见的约定,其中一维操作可以通过接收指示执行操作的维度的axis
参数来处理多维输入。
numpy.fft.fft()
返回数组的一维傅里叶变换。这意味着如果你有一个形状数组(N,M)
它不会给你一个二维的fft(np.fft.fft2()
这样做(,而是沿着最后一个轴返回fft。如果您希望沿着列而不是行计算 fft,则应传递axis=0
.