原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.fft.fft.html
校对:(虚位以待)
numpy.fft.
fft
(a, n=None, axis=-1, norm=None)[source]计算一维离散傅里叶变换。
该函数使用有效的快速傅立叶变换(FFT)算法[CT]计算一维n点离散傅里叶变换(DFT)。
参数: | a:array_like
n:int,可选
axis:int,可选
norm:{None,“ortho”},可选
|
---|---|
返回: | out:complex ndarray
|
上升: | IndexError
|
也可以看看
笔记
FFT(快速傅里叶变换)是指通过使用计算项中的对称性可以有效地计算离散傅里叶变换(DFT)的方式。当n是2的幂时,对称性最高,因此,对于这些大小,变换是最有效的。
在numpy.fft
模块的文档中,使用此实现中使用的约定来定义DFT。
参考文献
[CT] | Cooley,James W.和John W. Tukey,1965,“An algorithm for the machine calculation of complex Fourier series,”计算。19:297-301。 |
例子
>>> np.fft.fft(np.exp(2j * np.pi * np.arange(8) / 8))
array([ -3.44505240e-16 +1.14383329e-17j,
8.00000000e+00 -5.71092652e-15j,
2.33482938e-16 +1.22460635e-16j,
1.64863782e-15 +1.77635684e-15j,
9.95839695e-17 +2.33482938e-16j,
0.00000000e+00 +1.66837030e-15j,
1.14383329e-17 +1.22460635e-16j,
-1.64863782e-15 +1.77635684e-15j])
>>> import matplotlib.pyplot as plt
>>> t = np.arange(256)
>>> sp = np.fft.fft(np.sin(t))
>>> freq = np.fft.fftfreq(t.shape[-1])
>>> plt.plot(freq, sp.real, freq, sp.imag)
[<matplotlib.lines.Line2D object at 0x...>, <matplotlib.lines.Line2D object at 0x...>]
>>> plt.show()
在该示例中,实数输入具有Hermitian的FFT,即,如在numpy.fft
文档中所描述的,在实部对称并且在虚部中是非对称的。
(源代码)