上一主题

numpy.fft.ifftn

下一主题

numpy.fft.irfft

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的最后一个轴。

也可以看看

numpy.fft
用于定义所使用的DFT和约定。
irfft
rfft的逆。
fft
一维(复数)输入的一维FFT。
fftn
n维FFT。
rfftn
实输入的n维FFT。

笔记

当为纯实数输入计算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])

请注意,对于实际输入,fft输出的最后一个元素是第二个元素的复共轭。对于rfft,该对称性被用于仅计算非负频率项。