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

注释

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

警告

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

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

“The” 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.])