scipy.fft.

idct#

scipy.fft.idct(x, type=2, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, orthogonalize=None)[源码]#

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

参数:
xarray_like(类数组)

输入数组。

type{1, 2, 3, 4},可选

DCT 的类型(参见说明)。默认类型为 2。

nint,可选

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

axisint,可选

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

norm{“backward”, “ortho”, “forward”},可选

归一化模式(参见说明)。默认为“backward”。

overwrite_xbool,可选

如果为 True,则 x 的内容可能会被破坏;默认值为 False。

workersint,可选

用于并行计算的最大工作进程数。如果为负数,则该值将从 os.cpu_count() 环绕。有关更多详细信息,请参见 fft

orthogonalizebool,可选

是否使用正交化 IDCT 变体(参见说明)。当 norm="ortho" 时默认为 True,否则为 False

在 1.8.0 版本中添加。

返回:
idct实数 ndarray

变换后的输入数组。

另请参阅

dct

正向 DCT

说明

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

警告

对于 type in {1, 2, 3}norm="ortho" 会破坏与逆直接傅里叶变换的直接对应关系。要恢复它,您必须指定 orthogonalize=False

对于 norm="ortho"dctidct 都按相同比例因子在两个方向上缩放。默认情况下,该变换也经过正交化,对于类型 1、2 和 3,这意味着变换定义被修改以使 IDCT 矩阵正交(有关完整定义,请参见 dct)。

“标准”IDCT 是 IDCT-II,它与归一化的 DCT-III 相同。

IDCT 除了归一化和类型外,与普通 DCT 等效。DCT 类型 1 和 4 互为自身逆变换,而 DCT 2 和 3 互为彼此的逆变换。

示例

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

>>> from scipy.fft 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)
array([  4.,   3.,   5.,  10.])