scipy.fftpack.

irfft#

scipy.fftpack.irfft(x, n=None, axis=-1, overwrite_x=False)[源代码]#

返回实数序列 x 的逆离散傅里叶变换。

x 的内容被解释为 rfft 函数的输出。

参数:
x类数组

要反转的已变换数据。

nint,可选

逆傅里叶变换的长度。如果 n < x.shape[axis],则 x 被截断。如果 n > x.shape[axis],则以零填充 x。默认为 n = x.shape[axis]。

axisint,可选

计算 ifft 的轴;默认为最后一个轴(即 axis=-1)。

overwrite_xbool,可选

如果为 True,x 的内容可以被破坏;默认为 False。

返回:
irfft浮点数组

逆离散傅里叶变换。

另请参见

rfft, ifft, scipy.fft.irfft

注释

返回的实数组包含

[y(0),y(1),...,y(n-1)]

其中,对于 n 为偶数

y(j) = 1/n (sum[k=1..n/2-1] (x[2*k-1]+sqrt(-1)*x[2*k])
                             * exp(sqrt(-1)*j*k* 2*pi/n)
            + c.c. + x[0] + (-1)**(j) x[n-1])

而对于 n 为奇数

y(j) = 1/n (sum[k=1..(n-1)/2] (x[2*k-1]+sqrt(-1)*x[2*k])
                             * exp(sqrt(-1)*j*k* 2*pi/n)
            + c.c. + x[0])

c.c. 表示前面表达式的复共轭。

有关输入参数的详细信息,请参阅 rfft

要使用复数据类型处理(共轭对称的)频域数据,请考虑使用较新的函数 scipy.fft.irfft

示例

>>> from scipy.fftpack import rfft, irfft
>>> a = [1.0, 2.0, 3.0, 4.0, 5.0]
>>> irfft(a)
array([ 2.6       , -3.16405192,  1.24398433, -1.14955713,  1.46962473])
>>> irfft(rfft(a))
array([1., 2., 3., 4., 5.])