scipy.fftpack.

idct#

scipy.fftpack.idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False)[source]#

返回任意类型序列的逆离散余弦变换。

参数:
xarray_like

输入数组。

type{1, 2, 3, 4}, optional

DCT 的类型(见备注)。默认类型为 2。

nint, optional

变换的长度。如果 n < x.shape[axis],则截断 x。如果 n > x.shape[axis],则用零填充 x。默认情况下,n = x.shape[axis]

axisint, optional

计算 idct 的轴;默认情况下,沿着最后一个轴(即 axis=-1)。

norm{None, ‘ortho’}, optional

归一化模式(见备注)。默认值为 None。

overwrite_xbool, optional

如果为 True,则可以销毁 x 的内容;默认值为 False。

返回值:
idctndarray of real

变换后的输入数组。

另见

dct

正向 DCT

备注

对于单维数组 xidct(x, norm='ortho') 等于 MATLAB idct(x)

“IDCT” 指的是类型 2 的 IDCT,它与类型 3 的 DCT 相同。

类型 1 的 IDCT 等于类型 1 的 DCT,类型 2 的 IDCT 等于类型 3 的 DCT,类型 3 的 IDCT 等于类型 2 的 DCT。类型 4 的 IDCT 等于类型 4 的 DCT。有关这些类型的定义,请参阅 dct

示例

类型 1 DCT 等于对于实数、偶对称输入的 DFT。输出也是实数且偶对称。一半的 IFFT 输入用于生成一半的 IFFT 输出。

>>> from scipy.fftpack import ifft, idct
>>> import numpy as np
>>> ifft(np.array([ 30.,  -8.,   6.,  -2.,   6.,  -8.])).real
array([  4.,   3.,   5.,  10.,   5.,   3.])
>>> idct(np.array([ 30.,  -8.,   6.,  -2.]), 1) / 6
array([  4.,   3.,   5.,  10.])