numpy.fft.rfft¶
-
numpy.fft.
rfft
(a, n=None, axis=-1, norm=None)[source]¶ 计算实数输入的一维离散傅里叶变换。
该函数通过称为快速傅里叶变换(FFT)的有效算法来计算实值数组的一维n点离散傅里叶变换(DFT)。
参数: a:array_like
输入数组
n:int,可选
要使用的输入中沿变换轴的点数。如果n小于输入的长度,则输入被裁剪。如果它较大,输入用零填充。如果未给出n,则使用沿由轴指定的轴的输入长度。
axis:int,可选
用于计算FFT的轴。如果未给出,则使用最后一个轴。
norm:{None,“ortho”},可选
版本1.10.0中的新功能。
规范化模式(参见
numpy.fft
)。默认值为None。返回: out:complex ndarray
未指定沿轴指示的轴变换的截断或零填充输入,如果轴指定最后一个输入。If n is even, the length of the transformed axis is
(n/2)+1
. 如果n是奇数,则长度为(n+1)/2
。上升: IndexError
如果axis大于a的最后一个轴。
笔记
当为纯实数输入计算DFT时,输出是埃尔米特对称的,即负频率项仅是相应正频率项的复共轭,因此负频率项是多余的。该函数不计算负频率项,因此输出的变换轴的长度为
n // 2 + 1
。当
A = rfft(a)
且fs是采样频率时,A[0]
如果n是偶数,则
A[-1]
包含表示正和负奈奎斯特频率(+ fs / 2和-fs / 2)的项,纯粹真实。如果n是奇数,则在fs / 2处没有项;A[-1]
包含最大的正频率(fs / 2 *(n-1)/ n),并且在一般情况下是复数。如果输入a包含虚部,它将被静默丢弃。
例子
>>> np.fft.fft([0, 1, 0, 0]) array([ 1.+0.j, 0.-1.j, -1.+0.j, 0.+1.j]) >>> np.fft.rfft([0, 1, 0, 0]) array([ 1.+0.j, 0.-1.j, -1.+0.j])